- Nó thường được dùng để các service (service là chương trình hoặc là 1 server) giao tiếp được với nhau. Ví dụ nếu em có 1 service web để user tạo đơn hàng, em có thể thông qua kafka, MQ để gửi thông tin đơn hàng đến service xử lý đơn hàng.
- Phải làm rõ cách hiểu về service
a. service hiểu theo nghiệp vụ thì nó thường có cả web lẫn API, ví dụ khi nói MỘT service quản lý đơn hàng thì có thể nó sẽ bao gồm: giao diện để user nhập đơn hàng, API để tiếp nhận đơn hàng, giao diện để admin duyệt đơn hàng
b. service hiểu theo kỹ thuật thì nó là một chương trình chạy độc lập, ví dụ phần quản lý đơn hàng kia thì có CÁC service: website giao diện cho user, API server để tiếp nhận đơn hàng, website giao diện.
Nên em cần nói rõ là em đang nhắc đến khái niệm service nào thì anh mới trả lời tiếp được.
- Công nghệ thì:
Code: anh đang dùng spring-boot hoặc ezyfox, redis, kafka, MySQL
DevOps: anh dùng cả k8s và server thường
kiểu servicehiểu theo kỹ thuật.
- 1 service web giao diện người dùng (WUI) viết bằng ReactJS
- 1 service sẽ xử lý Authen cho phép login = account của hệ thống và kể cả FB,Google.
- 1 service Api Gateway (AG)nếu cần thiết
- Một số service khác (liên quan đến nghiệp vụ ) để cung cấp API cho client (ReactJS) có thể là public hoặc private (trường hợp này cần phải xác thực thông qua auth service phía trên thì mới gọi API private này đc )
Em đang muốn hỏi anh về cơ chế xác thực của hệ thống như trên.
- Đối với chức năng login bằng FB,Google được triển khai như thế nào với hế thống này thì ổn (em có tìm hiểu thì có 2 hướng là: service WUI sẽ gọi đến FB,Google để lấy thông tin user sau đó gửi thông tin unique thường là id đến Auth service để xác thực hoặc là Auth service sẽ làm hết chức năng này cụ thể là WUI sẽ vào link do Auth service cung cấp kèm theo url của WUI sẽ chuyển đến khi login thành công -> đăng nhập fb, google -> redirect về url callback auth service -> authe service xử lý -> hoàn tất đăng nhập -> redirect về url WUI đã đính kèm theo trước đó )
- Làm thế nào để các service nghiệp vụ biết là request đã xác thực rồi.Có phải là trước khi vào các service nghiệp vụ thì request đó phải thông qua AG trước (theo em hiểu AG sẽ là thằng cầm token đi xác thực với Authe service) ? Mong anh giải đáp thắc mắc cho em.
- Như hệ thống mà em nói ở trên thì có cần áp dụng cơ chế Oauth2 hay ko a ? (em đang rất rối về cái cơ chế Oauth2 này trong hệ thống Microservices, có thật sự cần thiết để dùng cơ chế này hay không ).Mong anh có thể nói rõ cho em hiểu về cái này.
–
Lâm Văn Đời
1671238357000