Cơ chế kết nối trong SOML

Một phần của tài liệu (LUẬN văn THẠC sĩ) phát triển phần mềm dựa trên microservices (Trang 38 - 41)

Chương 2. Xây dựng ứng dụng SOML trên microservices

2.2. Mô hình hoá các micoservice trong SOML

2.2.4. Cơ chế kết nối trong SOML

Khi xây dựng các microservice ta cần phải xác định được cơ chế giao tiếp (IPC – Inter Process Communication) giữa các microservice và giữa máy trạm với các microservice. Hiện nay có hai cơ chế IPC rất phổ biến đó là cơ chế tương tác không đồng bộ dựa trên hệ thống thông điệp và cơ chế tương tác đồng bộ request/response.

 Cơ chế tương tác không đồng bộ dựa trên hệ thống thông điệp cho phép các microservice trao đổi với nhau qua thông điệp (message), microservice sẽ gửi một thông điệp đến microservice khác mà nó muốn kết nối để thực hiện kết nối. Có rất nhiều nền tảng sử dụng cơ chế này là mã nguồn mở như: RabbitMQ7, Apache Kafka8, Apache

7https://www.rabbitmq.com/

8http://kafka.apache.org/

(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices

ActiveMQ9, …

 Cơ chế tương tác đồng bộ request/response cho phép các microservice trong hệ thống giao tiếp với nhau bằng cách microservice muốn kết nối sẽ gửi request đến microservice mà nó muốn kết nối, microservice này sẽ xử lý và trả lại microservice muốn kết nối đến nó một response.

Trong SOML các máy trạm giao tiếp với Users service thông qua các phương thức HTTP với giao thức REST. Để tạo tài khoản mới trong SOML, các máy trạm sẽ gửi một yêu cầu nó được thực hiện bởi phương thức POST của HTTP.

Nếu tài khoản được tạo thành công thì thông tin của tài khoản mới này sẽ được lưu vào UserDB và Users service sẽ trả về các máy trạm một HTTP response có mã trạng thái là 200 (Hình 2.11).

Hình 2.11.Tạo tài khoản người dùng

Để lấy thông tin của người dùng, các máy trạm sẽ thông qua một HTTP request có URL chứa id của người dùng cần truy vấn bằng phương thức GET, Users service sẽ trả về một HTTP responsive có mã trạng thái là 200 và thông điệp chứa thông tin của tài khoản người dùng được truy vấn dưới định dạng JSON (Hình 2.12).

Hình 2.12.Tạo tài khoản người dùng

Ví dụ thông tin của người dùng trong SOML sau khi các máy trạm thực hiện HTTP request: GET/users/2000:

{"user"=>

{"id"=>2000,

"name"=>"Van Pham",

"email"=>" vanpt.mi12@vnu.edu.vn",

"description"=>"This is Van’s account on SOML"

}}}

Các kết nối này được thực hiện tương tự khi các microservice trong SOML

9http://activemq.apache.org/

muốn giao tiếp với nhau. Ví dụ Stories service thực hiện các chức năng hiển thị, tạo, sửa, xóa các story, mỗi người dùng muốn thực hiện các chức năng tạo, sửa, xóa Story thì bắt buột phải đăng nhập cho nên các máy trạm khi gửi các yêu cầu để tạo, sửa, xóa các Story sẽ phải thông qua Users service để xác thực người dùng đã đăng nhập. Để tạo một Story thì các máy trạm sẽ phải thực hiện truy vấn như Hình 2.13.

Hình 2.13.Tạo Story trong SOML

Các máy trạm gửi một yêu cầu HTTP bằng phương thức POST với URL là /stories đến Stories service để tạo một Story, Stories service sau khi nhận được yêu cầu này nó sẽ gửi một yêu cầu đến Users service để kiểm tra người dùng đã đăng nhập hay chưa. Nếu người dùng đã đăng nhập Users service sẽ gửi HTTP response có mã trạng thái là 200 đến Stories service, khi đó Stories services sẽ thực hiện tạo mới một Story vào StoriesDB và gửi một HTTP response có mã Status code là 201 đến các máy trạm.

Để tạo một Photo thì các máy trạm sẽ phải thực hiện truy vấn như Hình 2.14.

Hình 2.14.Tạo Photo trong SOML

Các máy trạm gửi một yêu cầu HTTP bằng phương thức POST với URL là /stories/story_id/photos đến Photos service để tạo Photo, Photos service sau khi nhận được yêu cầu này sẽ gửi yêu cầu đến Users service và Stories service để xác thực người dùng và Story đã tồn tại trong SOML hay chưa. Nếu người dùng đã đăng nhập và Story đã tồn tại thì Stories service và Users service sẽ gửi HTTP response có mã trạng thái là 200 đến Photos service, khi đó Photos

(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices(LUAN.van.THAC.si).phat.trien.phan.mem.dua.tren.microservices

service sẽ thực hiện tạo mới Photo vào PhotosDB và gửi một HTTP response có mã mã trạng thái là 201 đến các máy trạm để thông báo việc tạo mới Photo đã thành công.

Một phần của tài liệu (LUẬN văn THẠC sĩ) phát triển phần mềm dựa trên microservices (Trang 38 - 41)

Tải bản đầy đủ (PDF)

(55 trang)