You are on page 1of 4

CÔNG TY CỔ PHẦN CÔNG NGHỆ CAO VÀ DỊCH VỤ PHẦN MỀM FACENET

TÀI LIỆU
HƯỚNG DẪN VỀ DISCOVERY TRONG MICROSERVICE
( SPRING BOOT )
LƯU HÀNH NỘI BỘ

Phiên bản: v 1.0


Ngày ban hành: 09/06/2022

1
Discovery trong Microservice ( Spring Boot )

1. Service Discovery (Truy tìm dịch vụ)

 Tại sao cần Service Discovery?

Khi ta cần truy cập đến một dịch vụ, mà dịch vụ này có REST API. Vì vậy,
ta cần phải có thông tin về vị trí mạng (địa chỉ IP và port) của một service instance
để gửi yêu cầu. Trong các ứng dụng Microservices được xây dựng và triển khai
trên nền tảng điện toán đám mây. Mỗi service instance trong một ứng dụng
microservices đều được gán vị trí mạng và chúng có khuynh hướng thay đổi linh
hoạt vì những tác động khác mang đến. Do đó, việc truy tìm dịch vụ trở nên khó
khăn  cần một kỹ thuật tìm kiếm phức tạp hơn.

Service Discovery tương tự như một Domain Name Server: để mỗi service
hoạt động, trước đó cần kết nối đến Service Discovery để đăng ký địa chỉ IP, port,
tên service, đồng thời lấy danh sách các service khác.

 Giúp tìm các microservice đang hoạt động và vị trí location của nó

 Có 2 loại discovery trong mô hình Microservice: 

o Client-side discovery: Mô hình này quy định rằng các client sẽ phải xác
định location của các service khả dụng và yêu cầu cân bằng tải (load
balancing - tối đa hóa thông lượng, giảm thời gian đáp ứng và tránh tình
trạng quá tải trên máy chủ).

2
 Client hoặc API-Gateway sẽ có được location của một service
instance bằng cách truy vấn một service registry. Sau khi biết được
location của service, phía client sử dụng một thuật toán cân bằng tải
để chọn ra service khả dụng để gửi yêu cầu.

 Service Registry: nơi chứa dữ liệu của các microservice instance


(location, host port,…). Các microservice instance được đăng ký với
Service registry khi khởi động và bị hủy đăng ký khi shut down

 REST (REpresentational State Transfer) API:  là một dạng chuyển


đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API. Nó sử dụng
phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy. Vì
vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người
dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE,...
đến một URL để xử lý dữ liệu.

 Mô hình này giúp ta đối phó với việc vị trí mạng không ổn định của mỗi
dịch vụ bằng cách: 

3
 Khi khởi động service, ghi location vào Service Registry và xóa
bỏ khi service instance này kết thúc.

o Server-side discovery: 

 Client hoặc API-Gateway gửi request đến bộ cân bằng tải. Bộ cân bằng tải
đó sẽ gọi đến Service registry để định tuyến mỗi yêu cầu tới một service
instance có sẵn. Cũng giống như mô hình client-side discovery, các
instance service được đăng ký và hủy đăng ký với Service Registry. 

2. Eureka Service
 Là một discovery trong mô hình Microservice của Spring Boot

 Là một thư viện để phục vụ cho hệ thống Microservice

 Eureka server: hỗ trợ tạo Service Registration cho từng dịch vụ

 Eureka Client: giúp Client đăng ký location qua Eureka Server 

You might also like