Message Broker là gì?

Message Broker là các module phần mềm nằm trong các giải pháp phần mềm trung gian nhắn tin hay phần mềm gian hướng tin nhắn (MOM). Loại phần mềm trung gian này cung cấp cho các nhà phát triển một phương tiện chuẩn hóa để xử lý luồng dữ liệu giữa các thành phần của ứng dụng, qua đó cho phép họ tập trung vào logic cốt lõi của ứng dụng.

Phần mềm này cho phép các ứng dụng, hệ thống, dịch vụ giao tiếp và trao đổi thông tin với nhau, ngay cả khi chúng được viết bằng các ngôn ngữ hay được thực hiện trên những nền tảng khác nhau. Để thực hiện điều này, Message Broker đã dịch các tin nhắn giữa các giao thức nhắn tin chính thức, từ đó cho phép các dịch vụ “nói chuyện” trực tiếp với nhau.

Ngoài ra, message broker còn đóng vai trò trung gian giữa các ứng dụng, cho phép xác nhận, lưu trữ, định tuyến và gửi tin nhắn đến các điểm đến thích hợp. Người dùng có thể gửi tin nhắn bất kể người nhận đang ở đâu, có bao nhiêu người và đang hoạt động hay không.

Các mô hình Message Broker

  • Nhắn tin point-to-point

Đây là dạng phân phối được sử dụng trong hàng đợi tin nhắn có mối quan hệ 1-1 giữa người gửi và người nhận, mỗi tin nhắn chỉ được gửi đến một người nhận và chỉ được sử dụng một lần.

  • Nhắn tin publisher/subscriber

Mô hình này thường được gọi là “pub/sub”, người sản xuất tin nhắn xuất bản nó theo một chủ đề và nhiều tin nhắn mà người tiêu dùng đăng ký theo chủ đề họ muốn nhận. Đây là một phương pháp phân phối theo kiểu truyền phát, trong đó có mối quan hệ giữa một với nhiều người xuất bản với người tiêu dùng. Tất cả các thông báo được xuất bản cho một chủ đề sẽ được phân phối cho tất cả các người dùng đã đăng ký chủ đề đó.

Sự khác biệt giữa Message Broker và Message Queue

Message Queue tạo điều kiện giao tiếp giữa các ứng dụng bằng cách gửi, nhận và lưu trữ tin nhắn bằng cách sử dụng cấu trúc dữ liệu queue. Mặc dù message queue được dùng để truyền tin nhưng phần mềm này không thể đọc được nội dung những thông điệp đó.Message Broker chỉ đơn giản là một cơ chế mở rộng việc sử dụng Message Queue, nhưng khác với Message Queue, các nhà môi giới tin nhắn có thể đọc nội dung của thông tin được truyền qua chúng. Ngoài ra, các nhà môi giới còn có thể xử lý thông tin từ tất cả các loại nguồn.Tóm lại, Message Broker chịu trách nhiệm thực hiện:

  • Chuyển đổi giữa các giao thức vận chuyển dữ liệu
  • Chuyển đổi định dạng tin nhắn giữa các dịch vụ
  • Định tuyến giao tiếp giữa các nhiệm vụ
  • Phân phối các sự kiện từ nhiều nguồn khác nhau

Như vậy, Message Broker sử dụng Message Queue để truyền thông tin giữa tất cả các bên liên quan. Nói một cách đơn giản, Message Queue là một cấu trúc dữ liệu được tạo ra để tiêu thụ và Message Broker là một phần mềm quản lý hàng đợi tin nhắn.

(https://tinasoft.io/vi/blogs/message-broker-la-gi/)

About the Author

Ha Trung Vi

View all author's posts

Bài viết khác

model quan hệ trong go-pg

1. Giới thiệu Go-pg sử dụng công nghệ ORM (tức Object-relation mapping) giúp ánh xạ bảng cơ sở dữ liệu vào trong struct Điều đấy có nghĩa là với mỗi struct trong golang có thể dùng làm đại diện để truy vấn đến bảng trong postgresql và trả ra đối tượng struct với giá trị […]

GORM

1. ORM là gì? Trước hết để hiểu được thư viện Gorm chúng ta cần tìm hiểu về ORM, một công cụ quan trọng và thường xuyên được áp dụng trong quản trị cơ sở dữ liệu. ORM là tên viết tắt của cụm từ “Object Relational Mapping” đây là tên gọi chỉ việc ánh […]

REST API với Golang, Gin, MinIO và Docker

Đầu tiên, chúng ta sẽ viết một đoạn mã nhỏ bằng chữ Hello World. Bước 1: Tạo thư mục để chứa mã nguồn của dự án Todo App mkdir go-rest-api Bước 2: Khởi tạo Go Modules go mod init TodoApp go get -u github.com/gin-gonic/gin Bước 3: Tạo tệp main.go và viết đầu tiên chương trình […]

REST API cơ bản trong Golang

Cấu trúc project Chúng ta hãy tạo cấu trúc thư mục như hình bên dưới, project này có tên GolangRestApi, có thể clone về với đường link sau: Github Sau khi clone về, đổi tên project thành GolangRestApi. Vào GOPATH, copy vào thư mục src: Code Rest Api Golang entities/user.go Khai báo cấu trúc của […]

Golang

Golang là gì? Go hay còn gọi là Golang là ngôn ngữ lập trình mã nguồn mở, được thiết kế tại Google bởi Robert Griesemer, Rob Pike, and Ken Thompson. Go có cú pháp giống với C và tất nhiên nó là ngôn ngữ lập trình biên dịch (compiled programming language) Cú pháp của ngôn […]

Elasticsearch

Elasticsearch là gì? Elasticsearch là một search engine (công cụ tìm kiếm) rất mạnh mẽ. Elasticsearch cũng có thể coi là một document oriented database, nó chứa dữ liệu giống như một database và thực hiện tìm kiếm trên những dữ liệu đó. Đại khái là thay vì bạn tìm kiếm trên file, trên các […]