Mở màn Thiết kế microservice đang dần trở thành một xu thế thiết kế software được các developer ngày nay lựa chọn để xây dựng các ứng dụng của mình thay vì thiết kế nguyên khối (Monolithic) truyề…

Bạn đang xem: message queue là gì

Mở màn

Thiết kế microservice đang dần trở thành một xu thế thiết kế software được các developer ngày nay lựa chọn để xây dựng các ứng dụng của mình thay vì thiết kế nguyên khối (Monolithic) truyền thống. Rất nhiều các nhà phát triển, công ty du học ở khắp nơi như Amazon, Netflix, Spotify hay Uber… từ lâu đã chuyển hóa cách tiếp cận nguyên khối (monolithic) chậm rãi, phức tạp sang thiết kế microservice để đơn giản hóa và mở rộng cấu trúc của họ.

Mình sẽ không lãng phí thêm thời gian của chúng ta để tiếp tục nói về vì sao tất cả chúng ta nên sử dụng microservice, đã có rất nhiều sự ủng hộ giành riêng cho microservice cũng như các thảo luận được chia sẻ, giới thiệu và nói về tính chất, lợi nhuận của microservice.

Tuy nhiên, bên cạnh rất nhiều lợi nhuận thì microservice cũng có những nhược điểm của nó. Một trong những nhược điểm lớn nhất của microservice là sự phức tạp trong tương tác, giao tiếp giữa các service được xây dựng. Khi bạn muốn các service độc lập trong thiết kế microservice của các bạn xử lý toàn bộ các yêu cầu, ngay cả với khối lượng lớn và độ phức tạp cao, thì làm thế nào bạn có thể đảm bảo được điều này và làm thế nào bạn có thể cải tổ về năng suất hệ thống?

Câu trả lời chính là: Message queue (hàng đợi tin nhắn)

Message queue là gì?

Vậy Message queue là gì và nó hoạt động như vậy nào?

Message queue là một thiết kế phân phối giao tiếp không đồng bộ. Ý nghĩa của queue ở đây chính là 1 hàng đợi chứa message chờ để được xử lý tuần tự theo cơ chế vào trước thì ra trước (FIFO – First In First Out). Một message là các dữ liệu cần vận tải giữa người gửi và người nhận. Vậy có thể hiểu đơn giản, message queue giống như một thùng thư tin nhắn hộp thư online của tất cả chúng ta. Thư điện tử có vẻ là ví dụ tốt nhất về giao tiếp không đồng bộ. Khi một tin nhắn hộp thư online được gửi đi, người gửi tiếp tục xử lý những thứ khác mà không cần phản hồi ngay mau lẹ từ người nhận. Cách xử lý tin nhắn này tách người gửi khỏi người nhận để họ không cần phải tương tác với hàng đợi tin nhắn cùng một lúc.

Thiết kế cơ bản của message queue rất đơn giản, bao gồm các thành phần như sau:

  • Message: Thông tin được gửi (có thể là text, binary hoặc JSON)
  • Producer: Service tạo ra thông tin, mang thông tin vào message queue.
  • Message Queue: Nơi chứa những message này, cho phép producer và consumer có thể trao đổi với nhau
  • Consumer: Service nhận message từ message queue và xử lý
  • Một service có thể vừa làm producer, vừa làm consumer
Xem Thêm  [NEW] Đổi màu chữ trong photoshop – Cách đổi màu chữ trong Ps | doi mau trong photoshop - Pickpeup

Các loại message queue

Trong các hệ thống của tất cả chúng ta, nhiều khi ta cần tới hai hoặc nhiều các service độc lập cùng xử một yêu cầu, vậy phải làm thế nào nhỉ? Đừng lo, vì message queue có những cơ chế khác nhau giúp khắc phục vấn đề này.

1. Point-to-point

Message queue có thể là kiểu point-to-point, tức là khi đó ta chỉ có một hàng đợi và một consumer duy nhất dể xử lý các tin nhắn trong hàng đợi:

2. Publisher-Subscriber

Ngoài ra, message queue có thể sử dụng định dạng Publisher-Subscriber, trong đó publisher (nhà sản xuất) gửi tin nhắn đến hàng đợi (trong trường hợp này được gọi là Topic) và toàn bộ subscriber (người đăng ký) vào cùng 1 Topic đều sẽ thu được tin nhắn trong Topic đó:

Message queue trong thiết kế microservice

Chà, message queue là một thiết kế tuyệt vời cho giao tiếp không đồng bộ. Vậy trong hệ thống microservice, khi mà ta cần các microservice vừa độc lập lại vừa có thể tương tác với nhau mà không cần ghép nối thì message queue là một lựa chọn hàng đầu. Giao tiếp được thực hiện bằng cách gửi tin nhắn có chứa thông tin hoặc lệnh cần được xử lý. Người gửi là Producer. Những tin nhắn này sau đó được mang vào trong một hàng đợi và được xử lý bởi một microservice khác ( Consumer). Sau đó, khi một tin nhắn được xử lý, nó sẽ bị xóa hoặc vô hiệu hóa, điều này đảm nói rằng nó chỉ được xử lý một lần duy nhất.

Một ví dụ sử dụng đơn giản của message queue

Hãy tưởng tượng rằng bạn có một dịch vụ website thu được nhiều yêu cầu mỗi giây, toàn bộ các yêu cầu cần đảm bảo không bị mất và cần được xử lý bởi một hàm có thông lượng cao. Nói cách khác, dịch vụ website của các bạn luôn phải ở trạng thái sẵn sàng cao và sẵn sàng nhận một yêu cầu mới thay vì bị khóa bởi quá trình xử lý các yêu cầu đã nhận trước đó.

Trong trường hợp này, đặt một message queuq giữa dịch vụ website và dịch vụ xử lý là lý tưởng. Dịch vụ website có thể đặt thông báo “bắt đầu xử lý” vào một hàng đợi và dịch vụ khác có thể nhận và xử lý thông báo theo thứ tự. Hai quá trình được tách rời khỏi nhau và không cần chờ đợi. Nếu bạn có nhiều yêu cầu đến trong một thời gian ngắn, hệ thống xử lý sẽ có thể xử lý toàn bộ. Hàng đợi sẽ tồn tại với các yêu cầu ngay cả khi số lượng của chúng tăng trưởng.

Xem Thêm  Top 19 kết quả tìm kiếm máy rửa bát có sạch không mới nhất 2022

Sau đó, hãy tưởng tượng rằng dịch vụ của các bạn đang phát triển, khổi lượng yêu cầu cần xử lý tăng trưởng và hệ thống cần được mở rộng. Toàn bộ những gì bạn cần làm là thêm nhiều consumer để khắc phục hàng đợi nhanh hơn.

Ưu thế

Message Queue là một thành phần cực kì trọng yếu, không thể thiếu trong các hệ thống lớn cũng như trong thiết kế microservice nhờ các ưu thế sau:

  • Dự trữ: Sau thời điểm lưu trữ tin nhắn, hàng đợi đảm bảo tin nhắn sẽ chỉ bị loại bỏ khi quá trình đọc nó xác nhận thành công trong việc đọc và xử lý. Nếu có gì sai sót, tin nhắn sẽ không bị mất và được xử lý lại sau này.
  • Nhắn tin không đồng bộ: Trong trường hợp ứng dụng của các bạn không yêu cầu phản hồi đúng cách cho một quy trình, các consumer có thể nhận và xử lý theo logic và vận tốc riêng của nó.
  • Khả năng phục hồi: Ví dụ: giả sử hệ thống của các bạn bao gồm 2 microservice, một để xử lý đơn đặt mua và một dịch vụ khác để gửi tin nhắn hộp thư online. Có một hàng đợi cho biết rằng một tin nhắn hộp thư online cần được gửi đi có nghĩa là ngay cả khi hệ thống tin nhắn hộp thư online của các bạn không hoạt động, dịch vụ xử lý đơn đặt mua vẫn có thể tiếp tục nhận và xử lý đơn đặt mua. Khi dịch vụ tin nhắn hộp thư online trực tuyến trở lại, nó có thể khởi đầu đọc tin nhắn và gửi tin nhắn hộp thư online.
  • Khả năng mở rộng: Hàng đợi cho phép bạn tách hệ thống của mình thành các microservices khác nhau và chia tỷ lệ chúng theo nhu cầu.

Nhược điểm

Và tất nhiên, không có gì là hoàn hảo 😄 bên cạnh nhiều lợi nhuận thì message queue cũng có những nhược điểm của nó:

  • Làm phức tạp hệ thống
  • Phải có message format: Từ 2 phía producer và consumer cần phải thống nhất format message để có thể gửi và nhận message.
  • Monitor Queue là thiết yếu: Bạn cần phải theo dõi queue của mình để đảm bảo queue không quá nhiều hay đầy queue.
  • Khó xử lý đồng bộ: Không phải lúc nào message queue cũng là lựa chọn hàng đầu khi tất cả chúng ta xây dựng hệ thống. Sẽ có nhiều trường hợp hệ thống bắt buộc cần phải xử lý đồng bộ giữa các service, khi đó ta sẽ cần lựa chọn những cơ chế thích hợp hơn như Remote Procedure Invocation (RPI).

Tóm tắt

Để tổng kết, nếu bạn đang nghĩ tới việc xây dựng hệ thống microservices hoặc nếu bạn cần cải tổ năng suất của chúng và business logic của các bạn không yêu cầu chúng phải được xử lý ngay mau lẹ, thì Message queue là thứ bạn cần. Chúng sẽ đảm nói rằng toàn bộ các yêu cầu thu được đều được xử lý trong lúc tách khỏi các microservices khác và nếu cần, chúng cho phép bạn đơn giản mở rộng quy mô trong những khoảng thời gian có nhu cầu cao.

Xem Thêm  Clay, Fiber, Paste là gì? Các chất sáp phổ biến nhất hiện nay - paste là gì


Xem thêm những thông tin liên quan đến đề tài message queue là gì

What is α Message Queue?

alt

  • Tác giả: IBM Technology
  • Ngày đăng: 2022-01-10
  • Nhận xét: 4 ⭐ ( 9316 lượt nhận xét )
  • Khớp với kết quả tìm kiếm: Learn more about Message Queues → http://ibm.biz/message-queues-guide
    Test out IBM MQ → http://ibm.biz/product-ibm-mq
    Test out IBM Cloud Pak for Integration → http://ibm.biz/prod-cloud-pak-integration

    𝓐 message queue is α component of messaging middleware solutions that enables independent applications and services to exchange information and are used across numerous deployment options, including optimized physical appliances, cloud services, mainframes, and as software.

    In this lightboard video, Jamil Spain with IBM, visually breaks down and explains the different components of α message queuing solution architecture, different styles of message queuing, typical business use cases, and benefits provided to α developer.

    Get started on IBM Cloud at no cost → https://ibm.biz/Bdfw4q
    Subscribe to see more videos like this in the future → http://ibm.biz/subscribe-now

    MessageQueues AsynchronousMessaging Microservices

Phân Loại Giữa Các Hệ Thống Message Queue

  • Tác giả: hethongbokhoe.com
  • Nhận xét: 3 ⭐ ( 6426 lượt nhận xét )
  • Khớp với kết quả tìm kiếm: Message Queue Là Gì – Phân Loại Giữa Các Hệ Thống Message Queue

Message queue là gì

  • Tác giả: mindovermetal.org
  • Nhận xét: 4 ⭐ ( 1333 lượt nhận xét )
  • Khớp với kết quả tìm kiếm:

Message queue là gì

  • Tác giả: camnangtienganh.vn
  • Nhận xét: 5 ⭐ ( 7575 lượt nhận xét )
  • Khớp với kết quả tìm kiếm:

Cách triển khai và sử dụng Message Queue trong game của các bạn

  • Tác giả: gamedevelopment.tutsplus.com
  • Nhận xét: 3 ⭐ ( 3993 lượt nhận xét )
  • Khớp với kết quả tìm kiếm: Game thường do một số thực thể khác biệt tạo thành, chúng tương tác với nhau. Những tương tác này rất sôi nổi và có kết nối rõ rệt đến gameplay (lối chơi). Hướng dẫn này nói đến các khai niệm và…

Message Queue Là Gì ? Định Nghĩa Và Giải Thích Ý Nghĩa Nghĩa Của Từ Queue

  • Tác giả: chamichi.com.vn
  • Nhận xét: 4 ⭐ ( 7060 lượt nhận xét )
  • Khớp với kết quả tìm kiếm: Anh-Việt Việt-Anh Nga-Việt Việt-Nga Lào-Việt Việt-Lào Trung-Việt Việt-Trung Pháp-ViệtViệt-Pháp Hàn-Việt Nhật-Việt Italia-Việt Séc-Việt Tây Ban Nha-Việt Bồ Đào Nha-Việt Đức-Việt Na Uy-Việt Khmer-Việt Việt-KhmerViệt-Việt queuequeue /kju:/ danh từ đuôi sam hàng (người, xe ô tô ở ngã tư khi có đèn đỏ,

Message queue là gì?

  • Tác giả: lcdung.top
  • Nhận xét: 3 ⭐ ( 7606 lượt nhận xét )
  • Khớp với kết quả tìm kiếm:

Xem thêm các nội dung khác thuộc thể loại: Thủ thuật máy tính

By ads_php