Site icon Nhạc lý căn bản – nhacly.com

Message Brokers là gì?. Mesage Brokers trong design system – KieBlog

Tiếp theo chuỗi về System Design và System Architecture, bài viết này trình làng với đồng đội về khái niệm Message Brokers. Khái niệm này cũng nằm trong nhóm bài viết về Large Scale Systems Architectural Building Blocks .

Tuần trước hay trước nữa gì đó là bài viết về API Gateway – Cần biết khi thiết kế hệ thống, anh em có nhu cầu cứ feel free ghé đọc nha.

Ok, mở màn thôi nào !

1. Message Brokers là gì?

Applications ngày nay càng ngày càng lớn, càng ngày càng phức tạp. Thời gian và cách thức để giao tiếp giữa các Services lớn đã trở thành một bài toán lớn. Rất may ta đã có một solutions khá tốt tên Message Brokers.

Luôn khởi đầu với khái niệm loằng ngoằng lèo nghèo

message broker is a piece of software, which enables services and applications to communicate with each other using messages. The message structure is formally defined and independent from the services that send them.

Message broker là một phần của phần mềm, cho phép services và applicaiton giao tiếp với nhau thông qua messages. Cấu trúc message thông thường được định nghĩa sẵn và nó động lập hoàn toàn khỏi services gửi nó.

Thêm nữa

This allows applications to share information with one another, even if they’re written in different programming languages !Message Brokers còn cho phép ứng dụng chia sẻ thông tin với một cái khác, kể cả là 2 con services viết trên 2 ngôn ngữ lập trình khác nhau!

Rồi kèm thêm quả 3 khái niệm chất chơi Producer, ConsumerQueue/topic nữa. Loạn hết đầu, khó hiểu nhân đôi.

May thay ở Kieblog luôn có ví dụ đơn cử tận tình cho bạn bè .
Thật sự phân vân – LOL

2. Message Brokers Motivation

Trước khi mở màn với Message Brokers thì ta điểm xuyết qua tí về Load Balancer. Anh em nào chưa biết về Load Balancer hoàn toàn có thể tìm hiểu thêm bài này .
Rồi, mở màn với ví dụ, tiên phong là

2.1 Synchronous Communication

Synchoronous là đồng nhất. Synchronous Communication nghĩa là tiếp xúc đồng nhất. Sender và Receiver sẽ tiếp xúc với nhau trải qua Direct Communication ( liên kết trực tiếp ) .
Ngoài liên kết trực tiếp ( Direct Communication ), cũng hoàn toàn có thể trải qua Load Balancer như hình dưới
Giao tiếp kiểu này thường nhu yếu cả Sender và Receiver đều phải work ( healthy ). Trường hợp một trong hai ngủm thì tính là ngủm .

2.2 Drawbacks

Trường hợp tiếp xúc trực tiếp ( Direct Communication ), sẽ có nhu yếu cho cả 2 services

Both application instances have to remain healthy and maintain this connection to complete transactionCả hai application đều phải đảm bảo ổn và duy trì connection để có thể hoàn thành một transaction.

Cũng không có yếu tố gì phát sinh để ta phải dùng Message Brokers nếu cả hai services đều nhỏ, ít xử lí và cho thời hạn phản hồi nhanh .
Nhưng đời không như là mơ, trường hợp receiver services xử lí cồng kềnh và tốn nhiều thời hạn thì sao ?
Nói là làm, ví dụ ngay và luôn cho bạn bè. Giả sử ta đang build một mạng lưới hệ thống xử lí vé ( ticket ), đã là vé thì có mua và bán, có thanh toán giao dịch trực tuyến, có xử lí đặt chỗ .
Fullfilment Services sẽ thực thi nhiều actions, kiểm tra thẻ, giao dịch thanh toán và gửi email thông tin thành công xuất sắc cho user. Nếu cả 3 thứ này đều tốn thời hạn ?

Bài toán đặt ra lúc này là user cần có response nhanh nhất?. Không thể chờ tới khi tất cả các services hoàn thành (giảm performance). Chính lúc này là lúc Message Brokers ra tay.

À tí quên, chưa kể là trường hợp có nhiều user truy vấn cùng lúc và Services xử lí lần lượt từng request .

2.3 Message Brokers là gì?

Lý thuyết, không hề không đọc .

A software architectural building block that uses the queue data structure to store messages between sender and receiverKiến trúc phần mềm theo các khối sử dụng queue để lưu trữ message giữa người gửi là người nhận là Message Brokers

Tới đây đã rõ, Brokers có nghĩa là môi giới và siêu đúng trong trường hợp này. Đứng giữa sender và receicer để nhận messages, đem nó vào queue. Ngon

Đứng giữa hai thằng là ông Brokers, sender lúc này gửi request tới ông trung gian và có ngay hiệu quả. Đôi khi là ngay lập tức. Đặt hàng phát là có thông tin đặt hàng thành công xuất sắc luôn. Quá đã .

Sau khi đã done và Broker trả về cho Sender, lúc này Message Brokers mới tiếp xúc thật sự với Receiver. Đi triển khai nốt cho xong những việc làm .

Với kiến trúc này, ta cũng hoàn toàn có thể chia nhỏ những services với nhiều brokers

Tới đây là bạn bè hiểu hết rồi đúng không ?. Giờ chuyển qua phần mê hoặc không kém. Benefits

3. Message Brokers Benefits

Chính vì chính sách đứng trung gian giữa Sender và Receiver nên :

Most message brokers implemetation offer the publish / subscrible patternHầu hết các message brokers đều implement dựa trên publish/subscrible pattern.

Về pattern này thì đồng đội hoàn toàn có thể đọc bài này để hiểu hơn .

  • Publish messages to a particular channel (gửi tin nhắn tới một kênh cụ thể)
  • Subscrible to that channel (đăng kí một kênh)
  • Get notified when a new event is published (nhận thông báo khi có event mới được publish)

4. Message Capabalities

Về những thứ Message Brokers hoàn toàn có thể làm, hoặc gọi chung là benefit đi. Bao gồm 1 số ít điểm sau :

  • Storing/temporarily buffering the messages
  • Message routing
  • Transformation validation


Với message brokers, ta cũng hoàn toàn có thể đăng kí với những services khác, thông tin tới end user khi một sự kiện nào đó đã hoàn thành xong .

4.1 Fault Tolerance

Khả năng chịu lỗi là điểm đáng ghờm mà Mesage Brokers đem lại .

It allows different services to communicate with each other white some of them maybe unavailable temporarilyNó cho phép các services khác nhau giao tiếp với nhau trong khi một trong số chúng đã ngủm củ tỏi

Thua, vậy lại chả tăng tính chịu lỗi, hàng không có nhưng anh brokers môi giới đã cho đặt luôn rồi .

4.2 Availability và Scalabality

Tính sẵn sàng (availability) và tính mở rộng (scalabality) cũng là 2 điểm mà Mesage Brokers đem tới. Trường hợp có rất nhiều traffic, thanh niên môi giới này có thể trả về kết quả nhanh chóng, sau đó đi xử lí từ từ.

We pay a little in performance when it comes to latencyTăng performance và giảm độ trễ của hệ thống

Tới đây mong đồng đội đã hiểu rõ về Message Brokers. Một số bài viết hay để ở tìm hiểu thêm nha .

5. Tham khảo

My pleasure when you spend a time to read my post – Wish all the best for you and your family – Happy Coding!

Exit mobile version