fbpx
close

RabbitMQ là gì? 6 lợi ích và tính năng nổi bật của RabbitMQ

Tác giả: TinoHost Ngày cập nhật: 23/11/2021 Chuyên mục: Webmasters
Disclosure
Website Wiki.tino.org được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Wiki.tino.org có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Wiki.tino.org sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại wiki.tino.org được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Làm sao để các ứng dụng khác nhau có thể giao tiếp được với nhau? Message broker là gì? RabbitMQ là gì? Vì sao nên sử dụng RabbitMQ? Những thắc mắc này của bạn sẽ được Tino Group giải đáp ngay trong bài viết nhé!

RabbitMQ là gì?

RabbitMQ là một chương trình phần mềm trung gian giúp các ứng dụng, hệ thống hay server khác nhau có thể giao tiếp, trao đổi dữ liệu với nhau. Nhiệm vụ của RabbitMQ được hiểu đơn giản là: nhận message từ nhiều nguồn => lưu trữ, sắp xếp sao cho hợp lý => đẩy tới đích đến.

rabbitmq-la-gi

Là một message broker mã nguồn mở, có dung lượng nhẹ, dễ dàng triển khai trên rất nhiều hệ điều hành lẫn Cloud, vì thế RabbitMQ vô cùng được ưa chuộng và trở nên phổ biến trong thời gian qua.

Không chỉ những doanh nghiệp nhỏ muốn tiết kiệm chi phí sử dụng, ngay cả những doanh nghiệp lớn, họ cũng đang sử dụng RabbitMQ cho công việc.

Message broker là gì?

Hiểu một cách đơn giản, message broker là một chương trình trung gian được phát triển nhằm để phục vụ nhu cầu giao tiếp giữa các ứng dụng khác nhau với nhau một cách dễ dàng. Bạn cũng có thể hiểu message broker là một chương trình phần mềm trung chuyển tin nhắn.

Chương trình message broker sẽ đảm nhận việc validating (xác thực), transforming (tạm dịch: chuyển đổi) và routing (định tuyến) cho messages giữa các ứng dụng với nhau.

Cách thức hoạt động của message broker như sau:

Producer (ứng dụng gửi) sẽ gửi một message đến một server process (trong bài là RabbitMQ) có khả năng sắp xếp, định tuyến, translation, persistence và delivery (gửi) đến consumer (ứng dụng nhận).

Một số thuật ngữ liên quan đến RabbitMQ

Để đảm bảo bài viết truyền tải được nội dung chính xác nhất, Tino Group sẽ giữ nguyên rất nhiều từ tiếng Anh. Tuy nhiên, bạn có thể tham khảo những khái niệm, những từ tiếng Anh Tino Group giữ nguyên tại đây:

  • Producer: Ứng dụng/ chương trình gửi message.
  • Consumer: Ứng dụng/ chương trình nhận message.
  • Queue: Hoạt động lưu trữ các message.
  • Message: hay tin nhắn là thông tin được Producer truyền đến Consumer thông qua message broker (trong bài viết là RabbitMQ).
  • Connection: là kết nối TCP giữa ứng dụng/ chương trình và message broker.
  • Channel: là kết nối ảo trong một Connection là môi trường để thực hiện các hoạt động như publishing, consuming message từ queue.
  • Exchange: Là nơi nhận message được publish từ Producer và đẩy chúng vào queue dựa vào quy tắc của từng loại Exchange. Sẽ phân tích rõ hơn ở phần sau.
  • Binding: là quy tắcrule, Exchange có nhiệm vụ liên kết và routing message đến queue.
  • Routing key: Một key mà Exchange dựa vào đó để quyết định cách để định tuyến message đến queue. Có thể hiểu nôm na, Routing key là địa chỉ dành cho message.
  • AMQP Advanced Message Queuing Protocol: là một giao thức (protocol) truyền message được sử dụng trong RabbitMQ.
  • User: hay người dùng, mỗi người dùng sẽ có tài khoản, mật khẩu khác nhau và những quyền hạn nhất định được phân cụ thể trong RabbitMQ.
  • Virtual host hay viết tắt là Vhost: hay máy chủ ảo, là một phương thức cho phép lưu trữ các ứng dụng khác nhau dùng chung RabbitMQ instance. User khác nhau sẽ có quyền khác nhau với các Vhost; Queue và Exchange sẽ chỉ tồn tại trong một Vhost.

RabbitMQ có tính năng và lợi ích như thế nào?

Asynchronous Messaging

RabbitMQ hỗ trợ rất nhiều giao thức message như: sắp xếp hàng đợi, gửi message, khả năng định tuyến hàng đợi linh hoạt và nhiều loại exchange khác.

rabbitmq-la-gi

Developer Experience

Với mức độ linh hoạt của RabbitMQ, bạn có thể triển khai trên BOSH, Chef, Docket và cả Puppet. RabbitMQ không chỉ tương thích với ngôn ngữ Erlang “mẹ đẻ”, RabbitMQ còn có khả năng tương thích với hầu hết các ngôn ngữ lập trình thông dụng như: Java, PHP, JavaScript, Go, Ruby, .NET,…

Distributed Deployment

Bạn có thể triển khai RabbitMQ dưới dạng các cluster có tính khả dụng cao và thông lượng lớn từ đó bạn có thể phát triển liên kết toàn cầu qua nhiều khu vực, lãnh thổ.

rabbitmq-la-gi

Enterprise & Cloud Ready

Với những công nghệ xác thực, ủy quyền được phát triển dựa trên TLS và LDAP gia tăng độ bảo mật lên rất cao. RabbitMQ có dung lượng nhẹ và khả năng tương thích và phát triển một cách dễ dàng trên các public cloud cũng như private cloud.

Management & Monitoring

Bạn hoàn toàn có thể sử dụng các HTTP-API, các công cụ dòng lệnh và cả công cụ được phát triển thân thiện với người dùng để quản lý, giám sát RabbitMQ một cách hiệu quả nhất.

Tools & Plugins

RabbitMQ cung cấp rất nhiều tool và plugin được phát triển liên tục với khả năng như: tích hợp, khả năng đo lường và tương thích với các hệ thống khác của doanh nghiệp.

rabbitmq-la-gi

RabbitMQ hoạt động ra sao?

Ví dụ về cách RabbitMQ hoạt động

Ví dụ về message broker ở phía đầu đã nêu có thể khá khó hiểu với nhiều bạn, vì thế, Tino Group sẽ giới thiệu đến bạn một ví dụ dễ hiểu hơn như sau:

Bạn lên một trang web tạo CV online miễn phí, sau khi bạn điền hết thông tin và bạn gửi yêu cầu xuất một tệp CV dạng PDF. Tất nhiên, việc tạo CV và yêu cầu xuất file PDF ra không phải chỉ duy nhất bạn yêu cầu, nếu xử lý không khéo, server sẽ bị quá tải và nghẽn. Vì thế, các nhà nhà phát triển sẽ sử dụng RabbitMQ để lấy request và tạo hàng chờ. Cơ chế hoạt động lúc này như sau:

Consumer lấy message từ hàng chờ và tạo file PDF; trong cùng lúc, một producer đang gửi thêm các message khác vào hàng chờ. Request có thể được tạo bởi ngôn ngữ này và xử lý bởi ngôn ngữ khác thông qua việc trao đổi bằng message, từ đó làm giảm sự ràng buộc giữa 2 đầu.

rabbitmq-la-gi

Tóm tắt lại, quá trình tạo file CV PDF online của bạn sẽ được RabbitMQ thực hiện như sau:

  • Bạn yêu cầu website tạo một file CV PDF
  • Website sẽ tạo message đến RabbitMQ với các nội dung như Họ tên và email của bạn.
  • Một exchange sẽ đồng ý và xử lý message từ producer và routing message đó vào đúng hàng đợi tạo PDF.
  • Một worker xử lý PDF sẽ nhận task và tạo PDF giúp bạn.

Các loại Exchange trong RabbitMQ

Phần giải thích bên dưới sẽ có phần hơi trừu tượng, tuy nhiên, bạn có thể xem ảnh này và hiểu hơn về 3 loại Exchange chính trong RabbitMQ.

rabbitmq-la-gi

Direct exchange

Với cách này, message sẽ được truyền trực tiếp đến hàng đợi dựa trên routing key – khóa định tuyến. Ví dụ dễ hiểu: nếu một hàng đợi exchange có blinding key là Tao_PDF, message có routing key là Tao_PDF sẽ được đẩy vào hàng đợi của của exchange đó.

Fanout exchange

Fanout exchange sẽ đẩy message đến toàn bộ hàng đợi được gắng với exchange đó. Hiểu một cách đơn giản, bản copy của message sẽ được gửi tới tất cả các hàng đợi và bỏ qua routing key.

rabbitmq-la-gi

Topic exchange

Topic exchange sẽ là một wildcard hay lá bài để gắng routing key với một routing pattern khi khai báo trong blinding. Consumer có thể tự chọn những topic phù hợp với cú pháp sử dụng * hoặc #.

Ví dụ như: Tao.* hoặc Tao.# để đăng ký toàn bộ key bắt đầu bằng Tao.

Headers exchange

Header exchange khá giống với cách thức hoạt động của Topic exchange. Tuy nhiên, header exchange sử dụng thuộc tính của các message để routing. Message đó sẽ hợp lệ nếu giá trị tiêu đề đúng với giá trị ràng buộc (giống như ví dụ của Topic exchange).

rabbitmq-la-gi

Qua bài viết, Tino Group hy vọng đã giúp bạn có thêm nhiều kiến thức về RabbitMQ, hiểu RabbitMQ là gì cũng cách RabbitMQ hoạt động ra sao. Tino Group chúc bạn sẽ có nhiều thành công trên con đường phát triển sự nghiệp lập trình viên của mình!
Bài viết có tham khảo nội dung từ rabbitmq.com và cloudamqp.com.

Những câu hỏi thường gặp về RabbitMQ

Nhà cung cấp dịch vụ Message Queues nào dễ triển khai?

Nếu bạn muốn tìm một nhà cung cấp dịch vụ Message Queue đơn giản, dễ dàng triển khai và lập trình, bạn có thể tham khảo thử dịch vụ Amazon Simple Queue Service của AWS. Bạn có thể đăng ký sử dụng thử dịch vụ AWS miễn phí 1 năm, trong gói AWS Free Tier, bạn sẽ được miễn phí sử dụng đến 1 triệu requests.

Tài liệu tham khảo RabbitMQ ở đâu?

Để tìm hiểu thêm về RabbitMQ, bạn có thể truy cập ngay vào RabbitMQ Documentation để xem toàn bộ tài liệu hướng dẫn sử dụng và các mẫu ví dụ đơn giản về RabbitMQ. Từ các bước tải đơn giản nhất cho đến cài đặt trên từng loại hệ điều hành và cả việc kết hợp cùng những nền tảng Cloud như thế nào.

Dead Letter Exchange là gì?

Trong trường hợp RabbitMQ không tìm thấy một hàng đợi phù hợp cho message, message sẽ tự động bị hủy và tạo Snapshots cho message đó. Tiện ích này được gọi là Dead Letter Exchange.

Tải RabbitMQ phiên bản mới nhất ở đâu?

Để tải phiên bản RabbitMQ mới nhất, bạn hãy truy cập vào Downloading and Installing RabbitMQ. Tại đây, RabbitMQ sẽ thường xuyên cập nhật các thông tin, nội dung và các bản cập nhật một cách chi tiết giúp bạn.

5/5 - (1 bình chọn)

Chia sẻ một chút thông tin về bạn. Những thông tin này có thể được công khai.

Xem thêm bài viết

Bài viết liên quan

Mục lục

Xem nhiều

giá tốt, chất lượng cao mình rất hài lòng
chất lượng dịch vụ tốt lắm...á
chất lượng dịch vụ rất tốt.
giá tốt, chất lượng cao mình rất hài lòng
Dịch vụ chăm sóc khách hàng tốt
Dùng rất oke nha mọi người
Dịch vụ chăm sóc khách hàng tốt, mình rất hài lòng về dịch vụ của TINOHOST
Đã mua rất nhiều tên miền tại Tinohost. Chất lượng tốt
dịch vụ và chăm sóc khách hàng rất tốt , mình rất thích tinohost , mình đã sử dụng nhiều dịch vụ của tinohost rồi
tuyệt vời chăm sóc khách hàng quá tốt
dịch vụ và chăm sóc khách hàng rất tốt , mình rất thích tinohost , mình đã sử dụng nhiều dịch vụ của tinohost rồi
Quá tốt - Quá xuất sắc và tuyệt
Hỗ trợ nhiệt tình. dịch vụ chất lượng
Đội ngũ support rất nhiệt tình.
Sử dụng dịch vụ của bạn Tinohost 2 3 năm nay chưa khi nào phải thất vọng.
host dùng chất lượng, miền giá rẻ
dịch vụ hỗ trợ rất nhanh, tốc độ hosting tốt
Hộ trợ tốt, nhanh. Tuyệt vời 🥰
tuyệt vời, dịch vụ cực tốt và hỗ trợ siêu nhanh
Làm việc nhanh chóng, giá thành hợp lí.
Hosting rẻ và nhanh thích hợp cho học sinh sinh viên như mình
dịch vu tốt ! Sẽ sử dụng thưởng xuyên !
Mỗi lần cần gì, nhắn Tino là được hỗ trợ ngay. Nên một đứa không biết gì về web như mình cũng tạo được blog. Cơ bản mình chỉ lo viết, mọi thứ có anh IT của Tino lo hết.
Nhìn chung thì Tino xứng đáng là một trong những nhà cung cấp host giá rẻ #1 tại VN. Bên này support khá nhanh và nhiệt tình nên quá trình sử dụng diễn ra tương đối trơn tru.
Chất lượng quá ok so với mức giá. Các SME có thể tham khảo để dựng web nhé.
uy tín chất lượng chuẩn cho 5 sao
Dịch vụ nhanh chóng thanh toán tiện lợi
Dịch vụ nhanh chóng, giá cả hợp lý
Chất lượng phục vụ ok, support khá nhanh chóng và chất lượng gói lớn tốt, gói nhỏ cần tốt hơn.
Dịch vụ tốt, giá cả hợp lý👍
Rất hay, rất tốt, rất hữu ích
Hỗ trợ rất nhanh và nhiệt tình
Chất lượng phục vụ ok, support khá nhanh chóng và chất lượng gói lớn tốt, gói nhỏ cần tốt hơn.
dịch vụ tốt, thanh toán nhanh chống
Hài lòng dịch vụ của tinohost
Sau khi sử dụng dịch vụ của TinoHost. Mình thấy website load nhanh hơn hẳn so với sử dụng ở nhà cung cấp cũ. Giá cả do mình đc mua với giá sale 99% của TinoHost nên rất là rẻ. Gói mình mua là gòi Hosting Bussiness 20GB. Thông số cấu hình cao nên web load khá mượt
Chúc TinoHost phát triển!
domain rẻ, có nhiều gói hữu ích thích hợp cho sinh viên
Hài lòng về dịch vụ và tư vấn
Dịch vụ tốt . Support nhiệt tình
Chất lượng OK
Nhanh chóng
dịch vụ rất tốt
Nhân viên support nhanh, hỗ trợ nhiệt tình, giao dịch tự động nên khá tiện
Đã dùng nhiều dịch vụ tại Tinohost, chất lượng tốt, rất hài lòng ...😀
Sự dụng rất hài lòng với các dịch vụ của tinohost
Dịch vụ tốt, uy tín chất lượng
Tino dịch vụ quá tuyệt vời
Giá rẻ, dịch vụ tốt, hỗ trợ nhanh chóng
dịch vụ rất tốt rất tuyệt vời
Giá hợp lý cho người mới dùng
Mình thấy Tinohost có giao diện thân thiện, dễ đăng ký sử dụng cho người mới tập tành làm web như mình. Hosting hỗ trợ có nhiều lựa chọn về dung lượng và giá cả! Thanh toán qua momo thuận tiện. Recommended!
wed quá ok làm việc nhanh ngọn
Dịch vụ tốt. Khá hài lòng vì support nhiệt tình
Dịch vụ quá tuyệt vời danh cho các bạn
Xin cảm ơn đội ngủ kỹ thuật. Các bạn rất chuyên nghiệp và thân thiện. Tôi sẽ giới thiệu các bạn cho bạn bè của mình.
Dịch vụ hỗ trợ tốt, ổn định, thanh toán dễ dàng.
Mình từng dùng VPS bên Vietel IDC, hay gặp lỗi vặt và bảo trì liên tục. Nhưng Tino thì rất ok
dùng tốt, nhanh, dễ sử dụng
Giao diện đẹp mắt, dễ sử dụng
Đề nghị xem lại vấn đề phục vụ khách hàng (livchat)!
Good. Tốc độ cao. Tùy chỉnh nhiều trên shared hosting.
hosting ngon, giá luôn rẻ, tôi làm code nhưng rất thích sài host tino
Tino cung cấp host rất chuyên nghiệp. Đội ngũ kỹ thuật hỗ trợ rất tận tâm và nhiệt tình. Mình sẽ tiếp tục ủng hộ Tino 🥰.
Rất tuyệt vời🙆🙆🙆🙆🙆🙆🙆🙆🙆
Xét về tầm giá thì TinoHost rất đáng để mua và sử dụng lâu dài.
Dịch vụ chất lượng, ủng hộ 1 năm nay rồi
tuyệt vời quá đi,tuyệt vời quá đi
Tốc độ ổn định, tư vấn nhiệt tình
mới tham gia, mong mọi người hỗ trợ thêm
Tốc độ khá tốt với gói rẻ nhất 9k
Giao dịch nhanh,support nhanh và tận tình,chuyển miền nhanh,Hosting Ok
mua sản phẩm dịch vụ tinhot rất tốt tặng ad 5tr ** luon nè🥰🥰🥰
tinohost
một truong những nơi bán hosting rẻ, chất lượng dành cho anh em nào cần để làm web
mua tại : tinohost.com
mình đã mua 2 tên miền + hosting của Tino Host . quả nhiên hiệu quả SEO cải thiện đáng kể và chứng chỉ bảo mật HTTPS miễn phí của Tino Host cũng ko kém phần quang trọng cho việc SEO website của mình
Tino host là một trong nhà cung cấp tốt nhất mình từng sử dụng. Với ưu đãi khuyến mại nhiều, giá thành rẻ kèm theo đó là sự support tuyệt vời của các admin. Nếu ai chưa lựa chọn được nhà cung cấp cho bản thân mình thì Tinohost sẽ là câu trả lời tốt nhất.
dịch vụ tốt, đội ngũ support nhiệt tình, cảm ơn #tinohost
Uy tín, chất lượng, nhân viên hỗ trợ nhiệt tình
mua 2 domain tại tinohost dùng rất chất lượng
Đã mua 02 domain và hosting tại TinoHost, hài lòng cách tư vấn và chăm sóc khách hàng của TinoHost :)
Giá rẻ cấu hình mạnh, black friday là sự bùng nổ của Tino
Hay web bán tài nguyên rất ngon
dịch vụ tốt, mua luôn host chất lượng cao của công ty nhân dịp blackfriday, cảm ơn #tinohost
Dịch vụ rất tốt, nhân viên tận tình.
Hỗ trợ nhiệt tình nhất trong các nhà cung cấp mih từng dùng. Không những server mạnh, ưu đãi có 1 không 2 mà còn nhiều plugin pro bản quyền đính kèm nữa. Quyết định gắn bó "Lifetime" với tino 😁
Dịch vụ tốt hỗ trợ nhanh chóng
Thích cách tư vấn tận tình và nhanh gọn của Tino mỗi khi có vấn đề trục trặc. Hosting ổn định, giá rẻ tốt lắm nhé mọi người
mình có mua 2 tên msiền của tino, mình rât thích cách tư vấn và chăm sóc khách hàng tại đây. Ngoài ra giá domain khá rẻ, phù hợp cho mọi người. 5 sao
Dịch vụ tốt, support nhiệt tình
tinohost tuyệt vời giá cả hợp lý
domain mua rất rẻ :))))
tốt, chất lượng, hostingok
Hosting tốt, giá cả cạnh tranh
Tuyệt vời , Hosting quá ổn
Chất lượng lắm ạ. Domain mua rẻ nhất thị trường
Dịch vụ tốt và chất lượng
Chất lượng lắm ạ. Domain mua rẻ nhất thị trường
Tino Host dùng quá ngon đi !💥💥💥💥💥
Tôi đã mua domain và hosting của các nhà cung cấp khác rồi, nhưng thực sự thấy không tốt bằng Tino, ngoài ra còn hỗ trợ rất tốt. Cảm ơn tino nhiều!
Next Reviews
CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn,  Phường Bến Nghé, Q. 1, TP. Hồ Chí Minh

Văn phòng kinh doanh: Số 42 Trần Phú, Phường 4, Quận 5, TP HCM
GPKD số 0315679836 do Sở KH và ĐT TP Hồ Chí Minh cấp
Hotline: 0364 333 333
Góp ý/Phản ánh dịch vụ: 0933 000 886