Như mình đã nêu ở bài viết trước, nếu so sánh Microservice với xây dựng một căn nhà thì vấn đề giao tiếp trong Microservice chính là những cánh cửa, có thể là những cánh của thông giữa các phòng (Internal) hay cũng có thể những cánh của thông ra ngoài trời (External).
Bạn đọc có thể xem lại tại đây
http://blog.ntechdevelopers.com/lot-ta-ban-chat-cua-kien-truc-microservice-so-voi-kien-truc-xay-dung/
Ở bài viết này mình sẽ làm rõ các vấn đề giao tiếp trong Microservice nhé.
Bắt đầu thôi!
Trong thế giới Microservice, bạn có thể kiến trúc xây dựng nên một ứng dụng thông qua một tập hợp các services. Mỗi service trong tập hợp đó đều phải tuân theo một quy chuẩn tất yếu bao gồm: Dễ dàng tháo lắp (Loosely coupled), Dễ dàng bảo trì và kiểm thử (Maintainable and testable) và phát hành một cách độc lập (Can be independently deployed).
Mỗi service trong kiến trúc Microservice đều giải quyết các vấn đề business riêng của nó trong một ứng dụng phần mềm, hay đôi khi thì có sự hỗ trợ của một vài service khác nếu logic quá phức tạp và khó có thể độc lập.
Lợi ích của microservice thì mình cũng đã nêu rất cụ thể trong bài viết trước rồi. Bạn đọc cũng có thể xem lại tại đây
http://blog.ntechdevelopers.com/microservices-architecture-kien-truc-microservices/
Vấn đề ở đây nằm ở chỗ các services và database đều nằm phân tán. Mỗi thành phần giữa chúng luôn tuân theo nguyên tắc độc lập nhất có thể. Chính vì điều này nên các kiến trúc sư đã đang và sẽ phải rất đau đầu trong việc phân chia các nghiệp vụ nằm trong từng service. Chia quá lớn thì không đảm bảo tính độc lập, chia quá nhỏ thì thành ra nano-service, khó có thể maintain và trao đổi dữ liệu nghiệp vụ khó khăn. Nhưng dù có chia service như nào đi chăng nữa thì việc chúng có những thời điểm, có những nghiệp vụ phải giao tiếp với nhau là chuyện bình thường. Ví dụ như một ứng dụng làm về shopping thường sẽ có các service như account, product, payment, sale. Vậy theo bạn một chức năng đặt hàng thì nằm trong product hay payment hay account. Tất nhiên là chúng phải giao tiếp trao đổi dữ liệu để hình thành một workflow. Người dùng đăng nhập (Account service) sau đó chọn sản phẩm (Product service) rồi thanh toán đặt hàng (Payment service). Đó, dữ liệu sẽ chuyển qua lại giữa các service với nhau, đó chính là lý do phát sinh ra các hình thức giao tiếp nhằm trao đổi dữ liệu giữa các service. Đôi khi còn phải giao tiếp với dịch vụ bên ngoài như gửi email hay sms thì phải thông qua một bên thứ 3 nữa. Dù sao giao tiếp trong microservice là điều không thể tránh khỏi.
–
Đọc tiếp tại
http://blog.ntechdevelopers.com/giao-tiep-trong-microservices/