1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo tìm hiểu về Microservicer Trường ĐH CNTT và TT

37 46 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 1,12 MB
File đính kèm MICROSERVICE_báo cáo.rar (1 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

hêlo xin chào các b đây là bài báo cáo môn kiến trúc và thiết kế phần mềm của mình trong thời gian học tại trường của mình. bài này mình đã báo cáo và đã đạt điểm cao trong lúc đấy này mình share lại cho các b b nào có mong muốn mua lại toàn bộ : code + word + pp thì liên hệ với mình qua zalo:0383817845 nhé facebook: fb.commink.logn.ad

Trang 2

Mục Lục

MỞ ĐẦU 4

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 5

1.1.Tổng quan kiến trúc Microservice 5

1.2 Kiến trúc Mcoservice là gì:? 5

1.3 Tại sao dùng kiến trúc Microservice 7

1.4 Cân nhắc lựa chọn Microservice 7

1.5 Các đặc điểm của mô hình Microservice 8

1.6 Đặc Trưng của Kiến trúc Microservice 9

1.6.1 Micro-service 9

1.6.2 Tính độc lập 9

1.6.3 Tính chuyên biệt 9

1.6.4 Phòng chống lỗi 10

1.7.Ưu nhược điểm của kiến trúc Microservice 10

1.7.1 Ưu điểm 10

1.7.2 Nhược điểm 11

1.8 So sánh kiến trúc Microservice và Monolithic 12

1.9.thiết kế phần mềm theo kiến trúc Microservice 13

1.9.1 Mỗi microservice nên có một database riêng biệt 13

1.9.2 Giữ source code của microservice ở mức hợp lý 15

1.9.3 Tạo build script cho mỗi microservice 15

Trang 3

1.9.4 Triển khai mỗi microservice bên trong một app (docker container) 15

1.9.5 Stateless server 15

1.10 Ứng dụng của kiến trúc microservice 16

CHƯƠNG 2: TÀI LIỆU KIẾN TRÚC PHẦN MỀM 19

2.1 Mục tiêu 19

2.2 Phạm vi 19

2.3 Mô tả bài toán 19

2.4 Khung nhìn Use case 19

2.5 Khung nhìn logic 23

2.5 khung nhìn quy trình 23

2.6 Khung nhìn triển khai 27

2.7 Biểu đồ thành phần 28

CHƯƠNG 3: XÂY DỰNG DEMO 29

3.1 Ngôn ngữ lập trình và công cụ sử dụng 29

3.1.1 JavaScript 29

3.1.2 NodeJs 29

3.1.3 Express js 30

3.1.3 Hệ quản trị cơ sở dữ liệu MongoDB 30

3.1.4 Visual Studio code 30

3.1.5 Docker 31

3.2 Hình ảnh demo giao diện 31

3.2.1 Giao diện trang chủ 31

Trang 4

3.2.2 Giao diện tạo bài viết 32

3.2.3 giao diện quản lý bài viết 32

KẾT LUẬN 33

TÀI LIỆU THAM KHẢO 34

Trang 5

MỞ ĐẦU

Kiến trúc Microservice là một trong những xu hướng kiến trúc phần mềm đượcthảo luận nhiều nhất tại thời điểm này và nó đã thay đổi mãi mãi cách thức xây dựngcác ứng dụng doanh nghiệp

Thay vì cách tiếp cận nguyên khối (monolithic) chậm chạp, phức tạp trong quákhứ, các nhà phát triển và công ty ở khắp mọi nơi đang chuyển sang kiến trúcmicroservice để đơn giản hóa và mở rộng cấu trúc của họ

Trên thực tế, ngay cả các công ty như Amazon, Netflix, Spotify và Uber cũng

đã thực hiện quá trình chuyển đổi này từ lâu rồi

Cho dù bạn muốn bắt đầu với microservice hay bạn chỉ tò mò về cuộc tranhluận xung quanh nó, bạn đang ở đúng nơi Hôm nay, tôi sẽ hướng dẫn bạn mọi thứ bạncần biết về microservice, từ các ví dụ thực tế đến các mẫu kiến trúc và hơn thế nữa

Trang 6

Bảng phân công công việc

Trần Minh Long So sánh với kiến trúc Monolithic , khung nhìn

usecase, khung nhìn quy trình, khung nhìn logic,khung nhìn thành phần

Hoàn thành

Dương Văn Định ưu nhược điểm của kiến trúc, khung nhìn triển

khai, xây dụng demo

Hoàn thành

Nguyễn Văn Hiếu thiết kế phần mềm theo kiến trúc Mcrosevice,

xâu dụng khung nhìn quy trình

Hoàn thành

Trần Đức Long Tổng quan về kiến trúc Microservice, ứng dụng

của kiến trúc

Hoàn thành

Trang 7

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1.Tổng quan kiến trúc Microservice

Cuối năm 2006, kiến trúc hướng dịch vụ (SOA) là một cơn sốt Các công ty đã nhảyvào cuộc và nắm lấy SOA trước khi hiểu hết những ưu và nhược điểm của phong cáchkiến trúc rất phức tạp này Những công ty bắt tay vào các dự án SOA thường gặp khókhăn liên tục với mức độ chi tiết của dịch vụ, hiệu suất, di chuyển dữ liệu và đặc biệt

là sự thay đổi về tổ chức xảy ra với SOA Do đó, nhiều công ty hoặc từ bỏ các nỗ lựcSOA của họ hoặc xây dựng các kiến trúc kết hợp không thực hiện tất cả các lời hứacủa SOA

Mô hình kiến trúc microservices đang nhanh chóng chiếm được vị thế trong ngànhnhư một giải pháp thay thế khả thi cho các ứng dụng nguyên khối và kiến trúc hướngdịch vụ Bởi vì mô hình kiến trúc này vẫn đang phát triển, có rất nhiều sự nhầm lẫntrong ngành về nội dung của mô hình này và cách nó được triển khai Tài liệu này sẽcung cấp cho bạn các khái niệm chính và kiến thức nền tảng cần thiết để hiểu được lợiích (và sự đánh đổi) của mẫu kiến trúc quan trọng này và liệu nó có phải là mẫu phùhợp cho ứng dụng của bạn hay không

Trang 8

Chúng hoạt động với tốc độ nhanh hơn và đáng tin cậy hơn nhiều so với các ứngdụng nguyên khối, phức tạp truyền thống Sử dụng kiến trúc microservice, một tổ chức

có kích thước bất kỳ có thể phát triển các ngăn xếp công nghệ phù hợp với khả năngcủa họ

Có nhiều lợi ích hữu hình khi sử dụng microservice, chúng ta sẽ thảo luận sau,nhưng vẫn còn một số tranh cãi về việc liệu các công ty có nên chuyển từ kiến trúcnguyên khối sang kiến trúc microservice hay không Hãy xem xét sự khác biệt giữa haikiến trúc để hiểu cuộc tranh luận

Các tính năng của Microservices:

Tách biệt - Các dịch vụ trong một hệ thống phần lớn được tách biệt Vì vậy,

toàn bộ ứng dụng có thể dễ dàng được xây dựng, thay đổi và mở rộng quy mô

Thành phần hóa - Các dịch vụ vi mô được coi như các thành phần độc lập có

thể dễ dàng thay thế và nâng cấp

Khả năng kinh doanh - Dịch vụ vi mô rất đơn giản và tập trung vào một khả

năng duy nhất

Trang 9

Quyền tự chủ - Các nhà phát triển và nhóm có thể làm việc độc lập với nhau,

do đó tăng tốc độ

Phân phối liên tục - Cho phép phát hành phần mềm thường xuyên, thông qua

hệ thống tự động hóa việc tạo, kiểm tra và phê duyệt phần mềm

Trách nhiệm - Microservices không tập trung vào các ứng dụng như các dự

án Thay vào đó, họ coi các ứng dụng là sản phẩm mà họ chịu trách nhiệm

Quản trị phi tập trung - Trọng tâm là sử dụng đúng công cụ cho đúng công

việc Điều đó có nghĩa là không có khuôn mẫu tiêu chuẩn hóa hoặc bất kỳkhuôn mẫu công nghệ nào Các nhà phát triển có quyền tự do lựa chọn các công

cụ hữu ích tốt nhất để giải quyết vấn đề của họ

Nhanh nhẹn - Mọi tính năng mới có thể được phát triển nhanh chóng và lại bị

loại bỏ

1.3 Tại sao dùng kiến trúc Microservice

Khi phát triển phiên bản đầu tiên của ứng dụng, bạn thường không gặp phải các vấn

đề mà Microservices giải quyết Hơn nữa, sử dụng một kiến trúc phân tán, phức tạp sẽlàm chậm quá trình phát triển Đây là một vấn đề rất lớn đối với các start-up vì họ cầnphát triển nhanh mô hình kinh doanh cùng ứng dụng đi kèm

Vì vậy, theo tôi, trừ khi bạn có một hệ thống quá phức tạp để quản lý bằngMonolithic Architecture, hoặc bạn xác định tương lai của ứng dụng sẽ trở nên như vậy.Thì kiến trúc Monolithic vẫn đủ tốt đối với bạn

1.4 Cân nhắc lựa chọn Microservice

Khi thực hiện dự án microservice cần tính toán thật kỹ kích thước của 1 microservice

Về tính bảo mật: Khi người lập trình viên lựa chọn việc sử dụng mã nguồn mở hay sửdụng công cụ hỗ trợ khác

Trang 10

Về hiệu năng: Các microservice thường (nên) được triển khai bên trong dockercontainer và giao tiếp với nhau qua REST API Việc này làm hiệu năng của toàn bộchương trình ứng dụng giảm xuống đáng kể do giới hạn tốc độ truyền tải của các giaothức và tốc độ mạng Hơn nữa việc giao tiếp giữa các microservice có thể bị lỗi khi cáckết nối bị lỗi.

Đây có phải là sản phẩm phát triển lâu dài hay không ?

Mức độ scale của hệ thống có lớn không (scale về lược người dùng và về dữ liệu) ?

Nhóm phát triển có sẵn sang đối đầu với những khó khan khi chuyển sang mô hìnhnày hay không ?

Các vẫn đề phức tạp bao gồm bảo trì, bảo mật, tính khả dụng của hệ thống từ xa, xácthực và ủy quyền truy cập từ xa ?

1.5 Các đặc điểm của mô hình Microservice

 Tập hợp một nhóm nhỏ các service: mức độ chi tiết của một service là nhỏ vàmỗi service này sẽ chịu một trách nhiệm cụ thể (single responsiblity) và chỉ tậptrung vào nhiệm vụ đó Ví dụ: storage service sẽ chịu riêng trách nhiệm về lưutrữ

 Việc phát triển và mở rộng một service là hoàn toàn độc lập Điều này mang lạitính linh hoạt cho hệ thống Quá trình deliver feature, release version sẽ dễdàng và nhanh chóng Hơn nữa sẽ không còn tình trạng bị block như ở mô hìnhmonolithic

 Giảm tải được các mối quan ngại về công nghệ sử dụng Chọn một công nghệphù hợp với vấn đề của doanh nghiệp có thể được giải quyết dễ dàng Cácservice giáp tiếp với nhau thông qua API, do vậy mỗi service có thể dùng mộtngôn ngữ riêng biệt Service A dùng Java, Service B dùng Javascript

 Đối với team, microservice đem lại tính độc lập và tự quản lí cho team Mộtteam sẽ có trách nhiệm toàn bộ với life-cycle của một hay nhiều service Họlàm việc trong việc context biệt lập, có thể tự quản lí các quyết định của mình

Trang 11

1.6 Đặc Trưng của Kiến trúc Microservice

1.6.1 Micro-service.

Đặc trưng này được thể hiện ngay từ tên của kiến trúc Nó là microservice chứkhông phải là miniservice hay nanoservice Trên thực tế không tồn tại mô hình kiếntrúc cho miniservice hay nanoservice Từ microservice được sử dụng để giúp ngườithiết kế có cách tiếp cận đúng đắn Một ứng dụng lớn cần được chia nhỏ ra thành nhiềuthành phần, các thành phần đó cần tách biệt về mặt dữ liệu (database) và phải đủ nhỏ

cả về mặt kích cỡ và độ ảnh hưởng của nó trong hệ thống, khi thêm một microservicevào hệ thống cũng nên đảm bảo rằng nó đủ nhỏ để dễ dàng tháo gỡ, xóa bỏ khỏi hệthống mà không ảnh hưởng nhiều tới các thành phần khác

1.6.2 Tính độc lập.

Các microservice hoạt động tách biệt nhau trong hệ thống, do vậy việc build mộtmicroservice cũng độc lập với việc build các microservice khác Thông thường, để tiệncho việc phát triển và duy trì các microservice, người phát triển nên viết các builtscript khác nhau cho mỗi microservice

Do tính tách biệt này mà mỗi microservice đều dễ dàng thay thế và mở rộng Hơnthế nữa, nó còn giúp việc phát triển các microservice linh động hơn, các microservice

có thể được phát triển bởi các team khác nhau, dùng các ngôn ngữ khác nhau và tiến

độ phát triển dự án cũng nhanh hơn do không có sự phụ thuộc giữa các team, mỗi team

có thể chủ động quản lý phần việc riêng của mình

1.6.3 Tính chuyên biệt.

Mỗi microservice là một dịch vụ chuyên biệt, có thể hoạt động độc lập, thôngthường mỗi microservice đại diện cho một tính năng mà các công ty/ doanh nghiệpmuốn cung cấp tới người dùng, do vậy người thiết kế hệ thống microservice cần hiểu

rõ về hoạt động kinh doanh của công ty Các đầu vào đầu ra và chức năng của mỗimicroservice cần được định nghĩa rõ ràng

Trang 12

1.6.4 Phòng chống lỗi.

Kiến trúc microservice sinh ra là để dành cho các hệ thống từ lớn đến vô cùng lớn

Nó áp dụng phương pháp chia để trị, phương pháp này giúp việc áp dụng các công cụ,

kỹ thuật cho việc giám sát,phòng chống lỗi phần mềm, lỗi hệ thống hiệu quả

Khi một thành phần trong hệ thống bị lỗi, nó có thể được thay thế bằng các thànhphần dự phòng một cách dễ dàng, trong quá trình thay thế thành phần bị lỗi, các thànhphần khác vẫn hoạt động bình thường, do vậy hoạt động của toàn bộ hệ thống sẽkhông hoặc ít bị gián đoạn

1.7.Ưu nhược điểm của kiến trúc Microservice

1.7.1 Ưu điểm

Thứ nhất, giúp đơn giản hóa hệ thống Với tổng số chức năng không đổi, kiến trúcMicroservices chia nhỏ hệ thống ra làm nhiều dịch vụ nhỏ lẽ dể dàng quản lý và triểnkhai từng phần so với kiến trúc nguyên khối Mỗi dịch vụ thì được định nghĩa để giaotiếp với các dịch vụ khác thông qua RPC (Remote Procedure Call) hay message-drivenAPI Kiến trúc Microservices thúc đẩy việc phân tách rạch ròi các dịch vụ nhỏ, việckhó có thể làm nếu xây dựng ứng dụng bằng kiến trúc một khối Trên hết với mỗi dịch

vụ nhỏ, chúng ta sẽ có thời gian phát triển nhanh hơn, dễ nắm bắt cũng như bảo trìhơn

Thứ hai, kiến trúc này cho phép việc mỗi dịch vụ được phát triển độc lập bởi nhữngteam khác nhau Cũng như cho phép developer có thể tự do chọn lựa technology stackcho mỗi dịch vụ mình phát triển Dĩ nhiên tự do lựa chọn nhưng không phải là tạo ramột mớ hỗn độn về technology, điều này thì không có một dự án hay sản phẩm nàomong muốn cả Tuy nhiên, sự tự do này có nghĩa là các developer không còn phải bắtbuộc phải sử dụng các công nghệ lỗi thời có thể đã tồn tại vào lúc bắt đầu dự án Khiviết một dịch vụ mới, họ có tùy chọn của việc sử dụng công nghệ bắt kịp với xu thế.Hơn nữa, vì dịch vụ là tương đối nhỏ, việc viết lại một dịch vụ cũ dựa trên nền tảngcông nghệ mới hơn là hoàn toàn khả thi

Trang 13

Thứ ba, kiến trúc Microservices cho phép mỗi dịch vụ có thể được triển khai mộtcách độc lập Cùng với đó thì việc triển khai hệ thống theo kiểu continuousdeployment là hoàn toàn có thể.

Cuối cùng, kiến trúc Microservices cho phép mỗi dịch vụ có thể thực hiện việcscale một cách độc lập Bạn có thể scale dễ dàng bằng cách tăng số instance phục vụcho mỗi dịch vụ lên và phân tải bằng load balancer Ngoài ra bạn cũng có thể tối ưuchi phí vận hành dịch vụ bằng cách triển khai mỗi dịch vụ lên server có resource thíchhợp

1.7.2 Nhược điểm

Microservice nhấn mạnh kích thước nhỏ gọn của dịch vụ Một số lập trình đề xuấtdịch vụ siêu nhỏ cỡ dưới 100 dòng code Nhưng làm sao để chia nhỏ, và chia làm sao

để khi chia quá nhiều sẽ dẫn đến manh mún, vụn vặt, khó kiểm soát

Nhược điểm thứ hai của Microservices đến từ đặc điểm hệ thống phân tán(distributed system) Lập trình viên cần phải lựa chọn phát triển mỗi dịch vụ nhỏ giaotiếp với các dịch vụ khác bằng cách nào messaging hay là RPC Hơn thế nữa, họ phải

xử lý sự cố khi kết nối chậm, lỗi khi thông điệp không gửi được hoặc thông điệp gửiđến nhiều đích đến vào các thời điểm khác nhau

Thứ ba, phải đảm bảo giao dịch phân tán (distributed transaction) cập nhật dữ liệuđúng đắn (all or none) vào nhiều dịch vụ nhỏ khác nhau khó hơn rất nhiều, đôi khi làkhông thể so với đảm bảo giao dịch cập nhật vào nhiều bảng trong một cơ sở dữ liệutrung tâm Theo nguyên tắc CAP (CAP theorem) thì giao dịch phân tán sẽ không thểthỏa mãn cả 3 điều kiện: consistency (dữ liệu ở điểm khác nhau trong mạng phải giốngnhau), availablity (yêu cầu gửi đi phải có phúc đáp), partition tolerance (hệ thống vẫnhoạt động được ngay cả khi mạng bị lỗi) Những công nghệ cơ sở dữ liệu phi quan hệ(NoSQL) hay môi giới thông điệp (message broker) tốt nhất hiện nay cũng chưa vượtqua nguyên tắc CAP

Thứ tư, testing một dịch vụ trong kiến trúc microservices đôi khi yêu cầu phải chạy

cả các dịch vụ nhỏ khác mà nó phụ thuộc Do đó khi phân rã ứng dụng một khối thành

Trang 14

microservices cần luôn kiểm tra mức độ ràng buộc giữa các dịch vụ Nếu các dịch vụnhỏ thiết kế phục thuộc vào nhau theo chuỗi A gọi B, B gọi C, C gọi D Nếu một mắtxích có giao tiếp API thay đổi, liệu các mắt xích khác có phải thay đổi theo không?Nếu có thì việc bảo trì, kiểm thử sẽ phức tạp tương tự ứng dụng một khối Thiết kếdịch vụ tốt sẽ giảm tối đa ảnh hưởng lan truyền đến các dịch vụ khác.

Cuối cùng, triển khai dịch vụ microservices nếu làm thủ công theo cách đã làm vớiứng dụng một khối phức tạp hơn rất nhiều Ứng dụng một khối bổ sung các server mớigiống hệt nhau đằng sau load balancer Trong khi ở kiến trúc microservices, các dịchvụ

nhỏ nằm trên nhiều máy ảo hay Docker container khác nhau, hoặc một dịch vụ cónhiều thực thể phân tán ra nhiều vị trí

1.8 So sánh kiến trúc Microservice và Monolithic

Khái niệm Với kiến trúc Microservices

mỗi dịch vụ sẽ được chia nhỏ thành nhiều thành phần khác nhau, mỗi thành phần sẽ hoạt động độc lập, được phát triển độc lập và chỉ xử lý các nghiệp vụ chức năng của nó

Mỗi thành phần cũng sẽ không lệ thuộc vào công nghệ phát triển với các thành phần khác

Với cách triển khai truyền thống, sẽ sử dụng kiến trúc monolithic, mỗi dịch vụ sẽ hoạt động độc lập và đầy đủ các chức năng từ Xác thực, Định danh người dùng, Logging các request cho đến xử lý nghiệp vụcủa dịch vụ Mỗi dịch vụ được

mở rộng bằng cách tạo thêm một node dịch vụ mới và phân tải request vào các node dịch vụ

Trang 15

Phạm vi Ứng dụng có phạm vi lớn và

bạn xác định các tính năng sẽ được phát triển rất mạnh theo thời gian Ví dụ: cửa hàng thương mại điện tử trực tuyến, dịch vụ truyền thông xã hội, dịch vụ truyền phát video với sốlượng người dùng lơn, dịch vụ cung cấp API,…

Phạm vi ứng dụng là nhỏ và đượcxác định rõ Bạn chắc chắn ứng dụng sẽ không phát triển mạnh

về các tính năng Ví dụ: blog, web mua sắm trực tuyến đơn giản, ứng dụng CRUD đơn giản…

Thành viên Team-size lớn, có đủ thành viên

để phát triển các component riêng lẻ một cách hiệu quả

Team-size nhỏ, thường ít hơn 8 người

Kĩ năng của

thành viên

Mặt bằng kỹ năng của team tốt

và các thành viên tự tin về các mẫu thiết kế microservice nâng cao

Mặt bằng kỹ năng của các thành viên trong team thường không cao

Mở rộng Số lượng người sử dụng lớn,

tiềm năng mở rộng cao

Số lượng người dùng sử dụng nhỏ, tiềm năng sử dụng

1.9.thiết kế phần mềm theo kiến trúc Microservice

1.9.1 Mỗi microservice nên có một database riêng biệt

Việc này đảm bảo cho microservice có tính đóng gói cao Tuy vậy việc phân táchnơi chứa dữ liệu cho mỗi microservice không hề đơn giản, nó là phần khó nhất trongviệc thiết kế ứng dụng phần mềm theo kiến trúc microservice Do đó, rất nhiều ngườichọn lựa thiết kế sử dụng chung database cho nhiều microservice

Trang 16

Cách này tồn tại một hạn chế là khi database schema cần thay đổi chomicroservice1 thì nó sẽ làm ảnh hưởng và gây lỗi cho các microservice khác sử dụngchung database này Để sửa lỗi, ta cần sửa đổi, cập nhật toàn bộ microservice còn lại

để chúng có thể hoạt động với schema mới

Trang 17

microservice2 phụ thuộc vào microservice1, khi microservice1 có lỗi thìmicroservice2 cũng bị lỗi theo.

Việc chọn cách tiếp cận nào phụ thuộc rất nhiều vào tình hình thực tế của dự án.Cần cân nhắc thiệt hơn của mỗi phương án để đưa ra lựa chọn cuối cùng

1.9.2 Giữ source code của microservice ở mức hợp lý

Như đã đề cập ở phần ưu và nhược điểm của microservice Kích thước source codecủa một microservice không nên quá nhỏ hoặc quá lớn Tuy nhiên cái khó ở đây làkhông có một con số định lượng cho kích thước của một microservice, nên thôngthường việc quyết định kích thước của một microservice là do kinh nghiệm, cảm tính

1.9.3 Tạo build script cho mỗi microservice

Build script có thể là một file bash hoặc Dockerfile để đóng gói microservice vàobên trong một docker image

1.9.4 Triển khai mỗi microservice bên trong một app (docker container)

Việc triển khai mỗi microservice trong một docker container đem lại rất nhiều lợiích cho việc triển khai và mở rộng ứng dụng cũng như việc phân chia tài nguyên phầncứng cho mỗi microservice Hiện nay có rất nhiều công cụ hỗ trợ cho việc liên tục tíchhợp, liên tục triển khai hệ thống microservice Các công cụ này giúp tăng hiệu quả làmviệc cho các lập trình viên, giảm thời gian phôi phối sản phẩm phần mềm, và các công

cụ này đòi hỏi mỗi microservice được đóng gói trong một docker image và triển khaitrên app

1.9.5 Stateless server

Khi một yêu cầu được gửi đến server thì một phiên làm việc (session) được mở ra,kèm theo đó là các thông tin của phiên Stateless server là server không lưu thông tincủa phiên Mà thông tin về phiên được lưu ở một nơi khác, như caching server chẳnghạn

Trang 18

Việc này rất quan trọng, bởi vì mỗi microservice thường được đóng gói thành mộtdocker image Khi muốn cập nhật một microservice, ta cập nhật docker image của nó,

và khi chạy docker image mới (xóa bỏ container cũ và tạo container mới dựa trênimage mới) thì toàn bộ thông tin của các phiên hoạt động trên container cũ sẽ bị mất,thông tin phiên thường bao gồm thông tin mà client gửi tới server, mất thông tin này làmột lỗi vô cùng nghiêm trọng Nếu container là stateless thì nó không lưu thông tincủa các phiên nên không có gì để mất cả

1.10 Ứng dụng của kiến trúc microservice

Hầu hết các công ty xây dựng hệ thống của họ bằng cách sử dụng kiến trúc nguyênkhối Họ bắt đầu theo cách này trong giai đoạn đầu của dự án, vì việc thiết lập mộtkiến trúc nguyên khối và đưa doanh nghiệp đi vào hoạt động sẽ nhanh hơn nhiều Tuynhiên, dự đoán sự tăng trưởng trong tương lai, một số thương hiệu đã đưa ra cácphương pháp mới để xử lý sự phức tạp

1 số công ty sử dụng kiến trúc Microservice:

Amazon

Amazon là một trong những công ty đầu tiên mà microservices đóng vai trò quantrọng trong việc chuyển đổi toàn bộ hoạt động kinh doanh Tất cả các dịch vụ và thànhphần của nó được kết hợp chặt chẽ với nhau Do đó, tất cả các thay đổi mã lớn đã bị

Ngày đăng: 08/07/2022, 19:22

HÌNH ẢNH LIÊN QUAN

Bảng phân công công việc - Báo cáo tìm hiểu về Microservicer Trường ĐH CNTT và TT
Bảng ph ân công công việc (Trang 5)
Có nhiều lợi ích hữu hình khi sử dụng microservice, chúng ta sẽ thảo luận sau, nhưng vẫn còn một số tranh cãi về việc liệu các công ty có nên chuyển từ kiến trúc nguyên khối sang kiến trúc microservice hay không - Báo cáo tìm hiểu về Microservicer Trường ĐH CNTT và TT
nhi ều lợi ích hữu hình khi sử dụng microservice, chúng ta sẽ thảo luận sau, nhưng vẫn còn một số tranh cãi về việc liệu các công ty có nên chuyển từ kiến trúc nguyên khối sang kiến trúc microservice hay không (Trang 7)
2.7. Biểu đồ thành phần - Báo cáo tìm hiểu về Microservicer Trường ĐH CNTT và TT
2.7. Biểu đồ thành phần (Trang 29)
Các biểu đồ thành phần thường được vẽ để giúp chi tiết việc triển khai mô hình và kiểm tra kỹ xem mọi khía cạnh của các chức năng yêu cầu của hệ thống đều được bao phủ bởi sự phát triển có kế hoạch. - Báo cáo tìm hiểu về Microservicer Trường ĐH CNTT và TT
c biểu đồ thành phần thường được vẽ để giúp chi tiết việc triển khai mô hình và kiểm tra kỹ xem mọi khía cạnh của các chức năng yêu cầu của hệ thống đều được bao phủ bởi sự phát triển có kế hoạch (Trang 29)
3.2 Hình ảnh demo giao diện 3.2.1 Giao diện trang chủ3.2.1 Giao diện trang chủ - Báo cáo tìm hiểu về Microservicer Trường ĐH CNTT và TT
3.2 Hình ảnh demo giao diện 3.2.1 Giao diện trang chủ3.2.1 Giao diện trang chủ (Trang 33)
3.2 Hình ảnh demo giao diện 3.2.1 Giao diện trang chủ3.2.1 Giao diện trang chủ - Báo cáo tìm hiểu về Microservicer Trường ĐH CNTT và TT
3.2 Hình ảnh demo giao diện 3.2.1 Giao diện trang chủ3.2.1 Giao diện trang chủ (Trang 33)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w