Cơ chế đăng ký và khám phá dịch vụ được cài đặt thông qua Eureka Service Registry, một thành phần được cung cấp bởi Spring Cloud Netflix45. Quy trình hoạt động của thành phần này diễn ra như sau:
• Mỗi một microservice được định danh bởi một mã gọi là service-id.
• Mỗi một microservice sử dụng thành phần Eureka Client để đăng ký với Eureka Server. Quá trình này được thực hiện qua ba giai đoạn:
- Đăng ký: các dịch vụ được đăng ký thông qua mã định danh, địa chỉ máy và cổng (service-id, host, port).
- Cấp phát mới: hệ thống sử dụng cơ chế heartbeat để định kỳ đăng ký lại nhằm biết được dịch vụ còn hoạt động hay không.
- Lấy danh sách đăng ký: hoạt động này trả về danh sách thông tin (host, port) của các microservices đã đăng ký theo service-id.
Sơ đồ trong hình 3.11 mô tả cơ chế hoạt động ở trên giữa hai microservices là customer service và user service.
54
Hình 3.11. Cơ chế hoạt động của Eureka Service Registry
Sau khi các dịch vụ được đăng ký thành công vào Eureka Server, các yêu cầu từ phía client gửi đến tầng dịch vụ sẽ được thực hiện thông qua cổng API. Phía client không cần phải biết, cũng không cần phải ghi nhớ địa chỉ của từng microservice để gọi và thực hiện cân bằng tải. Các hoạt động này sẽ được thực hiện bởi cổng API. Như đã trình bày ở mục trước, Zuul API Gateway sẽ dùng Ribbon để gọi các microservices qua các thành phần như Eureka Client và Client Load Balancer, và các bước xử lý được thực hiện một cách tự động. Quá trình triệu gọi các microservices được minh họa trong hình 3.12.
Hình 3.12. Quy trình đăng ký và khám phá dịch vụ
Để cấu hình Eureka Server, ta sử dụng chỉ thị @EnableEurekaServer, ví dụ minh họa được thể hiện trong hình 3.13.
55
Hình 3.13. Cấu hình đăng ký dịch vụ sử dụng Eureka Server
Sau khi quá trình đăng ký dịch vụ thành công, các microservices được đăng ký vào Eureka Server. Thông tin các dịch vụ được đăng ký có thể được kiểm tra bằng cách truy cập vào màn hình trang chủ của Eureka Server như minh họa trong hình 3.14.
56