Microservice

Q: Chào anh, Anh có thể chia sẻ về việc sử dụng esb trong esb và các cách liên lạc giữa các service cũng như API Gateway được không a.

A: ESB là khái niệm trong SOA, microservice không dùng cái đó. Bản thân các service khi gọi nhau phải hiểu được giao thức & format dữ liệu của nhau. Đơn giản nhất là các microservice gọi nhau qua Rest API sử dụng Json.

Còn API Gateway đóng vai trò như 1 cửa ngõ chung để các ứng dụng bên ngoài gọi vào các microservice bên trong. Các microservice gọi trực tiếp nhau không thông qua API Gateway. Vấn đề là làm thế nào để các microservice (và cả API Gateway) biết được thông tin của microservice khác để gọi. Khi đó trong hệ thống cần có 1 thành phần gọi là Service Discovery.

Q: Câu hỏi của mình đây (và có thể là câu hỏi mong muốn của nhiều bạn): áp dụng microserver có điểm gì dở nhất cho việc phát triển một hệ thống phần mềm, và ngoài kiểu Rest call giữa các microservice, thì còn kiểu nào nữa? Mỗi kiểu áp dụng cho trường hợp nào?

A: Mình xin trả lời nhé:

Về điểm dở của Microservices đó là việc phát triển ứng dụng khó hơn, vận hành & xử lý lỗi cũng khó hơn nhiều. Stack công nghệ cũng thay đổi rất nhiều so với làm ứng dụng Monolithic.

Bạn cần xác định trước 1 số yếu tố khi triển khai microservice:

Đâ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ượng người dùng hoặc về dữ liệu)?

Team có sẵn sàng đối đầu với những khó khăn khi chuyển sang mô hình này không? Khi bọn mình bắt đầu làm cho sản phẩm Bizweb thì 2 câu hỏi đầu đã xác định được luôn rồi. Câu số 3 thì cũng ko gặp vấn đề gì vì cả team đều rất máu chiến, mặc dù lúc đó chưa biết gì.

Microservice có một số mô hình phát triển:

 - MH 1: là dùng Restful thuần túy, sử dụng format JSON (hoặc Protobuf, Avro…). Các service gọi service khác đồng bộ hoặc bất đồng bộ.

- MH 2: là theo mô hình message queue, sử dụng các hệ thống message như RabbitMQ, Kafka… để tương tác giữa các microservice. Cách này là bất đồng bộ hoàn toàn.

- MH 3: là dùng Event Sourcing Pattern, phân tách phần đọc & ghi. Mô hình này thì bên mình chưa triển khai.

Độ khó thì tăng dần từ mô hình 1 -> 3

 

Đọc full ở link phía dưới nhé

https://kipalog.com/posts/Nhung-thac-mac-ki-thuat-quan-trong-ve-Microservices?fbclid=IwAR1Fd35Xy5GB-Y626k5MRym9NK5-IxXvm1UdhV8OcDjNqSip6aUooDyYM8E