RabbitMQ là gì ?

RabbitMQ là một hệ thống Message Broker, cho phép các thành phần trong hệ thống giao tiếp với nhau bằng cách gửi và nhận các tin nhắn thông qua các hàng đợi.

Các thành phần chính trong RabbitMQ

Producer là nơi gửi tin nhắn vào RabbitMQ (có thể là một api gửi yêu cầu gửi mail)

Exchange là nơi nhận tin nhắn từ Producer và đẩy chúng vào queue dựa trên quy tắc của từng loại Exchange

Queue là nơi lưu trữ các tin nhắn chờ được xử lý

Consumer là nơi lấy tin nhắn từ queue và xử lý nó

Các loại Exchange

Fanout Exchange: gửi tất cả các message đến queue liên kết

Direct Exchange: gửi tin nhắn đến các queue dựa trên một khóa định tuyến cụ thể

Topic Exchange: gửi tin nhắn đến các queue dựa trên pattern của khóa định tuyến

Cách thức hoạt động

Producer —> Exchange —> Queue <— Consumer

Ưu điểm của RabbitMQ

Là giúp hệ thống hoạt động ổn định khi phải xử lý một khối lượng công việc lớn và còn đảm bảo tin nhắn không bị mất.Ngoài ra RabbitMQ còn hỗ trợ tính năng ưu tiên tin nhắn, cho phép xử lý các tin nhắn quan trọng trước các tin nhắn thông thường.

About the Author

Ngọc Tri

View all author's posts

Leave a Comment

Your email address will not be published. Required fields are marked *

Bài viết khác

Return first

Return first là gì Khi trong hàm gặp một trường hợp đặc biệt (như lỗi, dữ liệu không hợp lệ…), ta trả về kết quả ngay lập tức và kết thúc hàm. Lợi ích khi dùng Return First trong Go Code gọn, dễ đọc Ít phải thụt dòng. Đọc từ trên xuống dưới như một […]

Naming convention

Naming convention là gì? Naming Convention – là một tập hợp các tiêu chuẩn được quy định sẵn dùng để biểu thị cho các thành phần: tên biến, tên hàm, kiểu dữ liệu,… Phong cách đặt tên phổ biến 1. Camel Case Camel Case là kiểu đặt tên con lạc đà. Quy tắc: Chữ cái đầu tiên được viết […]

Seed Data(Goose)

Seed Data là gì? Seed data là tập hợp các cậu lệnh sql hoặc đoạn code để đưa dữ liệu ban đầu vào CSDL. Mục đích Khởi tạo hệ thống với dữ liệu mặc định. Tạo dữ liệu test nhanh chóng. Hỗ trợ kiểm thử tự động (unit test, integration test). Tạo môi trường demo cho […]

Migration

Migration là gì? Migration là một cơ chế cho phép quản lý các thay đổi cấu trúc của cơ sở dữ liệu thông qua các file chứa câu lệnh định nghĩa (SQL hoặc code). Như là tạo bảng mới, thêm, sửa, xóa, cột, thêm index, tạo quan hệ giữa bảng Ưu điểm   Đồng bộ: Mọi […]

Ngôn ngữ lập trình Golang

Golang là gì? Go (hay còn gọi là Golang) là một ngôn ngữ lập trình được thiết kế dựa trên tư duy lập trình hệ thống. Go được phát triển bởi Robert Griesemer, Rob Pike và Ken Thompson tại Google vào năm 2007. Điểm mạnh của Go là bộ thu gom rác và hỗ trợ […]

Tìm hiểu Git và GitHub

Git là gì? Git là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS), nó là một trong những hệ thống quản lý phiên bản phân tán phổ biến nhất hiện nay. Git cung cấp cho mỗi lập trình viên kho lưu trữ (repository) riêng chứa toàn bộ lịch sử thay đổi. Version Control System […]