Thứ hai, 23/12/2013 | 00:00 GMT+7

Hướng dẫn về Giao thức xếp hàng thư nâng cao (AMQP)

Trái ngược với các đối tác nguồn đóng của họ, các ứng dụng nguồn mở miễn phí, tương đối nhanh và có chu kỳ phát triển mạnh mẽ kết hợp với sự hỗ trợ sẵn có của cộng đồng. Điều này khiến chúng trở thành những lựa chọn thay thế rất mạnh mẽ khiến nhiều nhà phát triển, quản lý sản phẩm và user phổ thông phải lựa chọn lâu dài.


Một trong những yếu tố quan trọng mang lại thành công cho các ứng dụng do cộng đồng phát triển (tức là có nhiều người làm việc trong một hoặc nhiều dự án liên kết) thường được thống nhất dựa trên các cơ sở trong quá trình phát triển liên tục - điều khiến các ứng dụng có thể sử dụng được chủ yếu là khả năng trò chuyện với nhau và làm việc cùng nhau.

Trong bài viết DigitalOcean này, ta sẽ thử một cái gì đó mới và giúp các nhà phát triển (và bất kỳ ai khác quan tâm) làm quen hoàn toàn với Giao thức xếp hàng tin nhắn nâng cao . Đó là một tiêu chuẩn [kỹ thuật] mở ( nền tảng chung ) được thiết kế để cho phép phát triển các ứng dụng được điều chỉnh để hoạt động như phần mềm trung gian trong việc message broker giữa các quy trình, ứng dụng khác nhau hoặc thậm chí các hệ thống không liên quan cần phải nói chuyện với nhau và truyền thông điệp .

Tiêu chuẩn kỹ thuật và tiêu chuẩn mở là gì?


Tiêu chuẩn kỹ thuật


Tiêu chuẩn kỹ thuật bao gồm các luật , định mức, định nghĩa, v.v. để phát triển và sử dụng các ứng dụng và hệ thống kỹ thuật khác cung cấp năng lượng cho chúng. Chúng được làm bằng các phương pháp và quy trình được xác định rõ ràng để hoạt động như các khuôn khổ lý thuyết.

Tiêu chuẩn mở


Trong lĩnh vực hệ thống kỹ thuật, các tiêu chuẩn mở là các hướng dẫn có thể được điều chỉnh và sử dụng - miễn phí bản quyền - để triển khai và phát triển các ứng dụng. Tùy thuộc vào cơ quan phát triển chúng, các tiêu chuẩn mở có thể được tạo ra và duy trì bởi một “cơ quan mở” thông qua một “quy trình mở”.

Kết nối hệ thống mở là gì?


Kết nối Hệ thống Mở (OSI) là một tiêu chuẩn ISO (Tổ chức Tiêu chuẩn hóa Quốc tế) được phát triển vào những năm 1970 để “đồng nhất hóa” cách các mạng khác nhau - và do đó các hệ thống máy tính giao tiếp qua chúng - hoạt động cùng nhau.

Tiêu chuẩn này cấu thành một khuôn khổ (tức là cơ sở để phát triển) được tạo ra để triển khai các giao thức truyền thông trong bảy lớp kế tiếp:

  1. Lớp vật lý - tạo thành cơ sở vật lý (tức là phần cứng) để OSI hoạt động.

  2. Lớp liên kết dữ liệu - chuyển dữ liệu giữa các [nút] mạng.

  3. Lớp Mạng - hướng lưu lượng (tức là chuyển tiếp) giữa các nơi.

  4. Lớp vận chuyển - hoạt động đảm bảo độ tin cậy, kiểm soát stream dữ liệu (tức là tốc độ) và stream của nó.

  5. Tầng phiên - chịu trách nhiệm quản lý phiên làm việc giữa các ứng dụng.

  6. Lớp Trình bày (Cú pháp) - làm việc để định hình và trình bày dữ liệu được xử lý.

  7. Lớp Ứng dụng - cài đặt và đảm bảo các cơ sở chung - tiếp cận các ứng dụng - để giao tiếp. (Đây là nơi AMQP sống!)

Lớp ứng dụng là gì?


Lớp ứng dụng - nơi AMQP sống - là một trong những phần trên tạo thành tiêu chuẩn Kết nối Hệ thống Mở. Nếu ta đã trình bày kỹ hơn, lớp ứng dụng có thể được coi là lớp [duy nhất] mà user tương tác và là lớp xác định cách thức giao tiếp giữa quá trình xử lý (hoặc ứng dụng với ứng dụng) diễn ra.

Một số ví dụ [phổ biến] cho lớp ứng dụng - ngoài AMQP - sẽ là:

  • IRC
  • DNS
  • FTP
  • IMAP
  • SSH
  • và nhiều hơn nữa.

Giao thức truyền thông là gì?


Mỗi giao thức giao tiếp được tạo ra từ các luật và quy định được xác định rõ ràng để tạo thành một ngôn ngữ dùng chung được nói giữa các ứng dụng khác nhau với kết quả cuối cùng là có thể giao tiếp dù chúng có thể được cài đặt hoạt động như thế nào ban đầu.

Các giao thức này có các yếu tố như định dạng dữ liệu, định nghĩa các bên sử dụng giao thức, định tuyến và kiểm soát stream (tốc độ).

Giao thức xếp hàng thư nâng cao là gì?


Giao thức xếp hàng thư nâng cao (AMQP) tạo ra khả năng tương tác giữa client và nhà broker (tức là phần mềm trung gian nhắn tin). Mục tiêu sáng tạo của nó là cho phép một loạt các ứng dụng và hệ thống khác nhau có thể hoạt động cùng nhau, dù thiết kế bên trong của chúng như thế nào, chuẩn hóa thông điệp doanh nghiệp trên quy mô công nghiệp.

AMQP bao gồm các định nghĩa cho cả cách mạng diễn ra và cách các ứng dụng message broker hoạt động. Điều này nghĩa là các thông số kỹ thuật cho:

  • Các hoạt động định tuyến và lưu trữ thông báo với broker thông điệp và tập hợp các luật để xác định cách các thành phần liên quan hoạt động

  • Và một giao thức dây để triển khai cách thức giao tiếp giữa khách hàng và nhà broker thực hiện các hoạt động trên

Lý do tạo ra và sử dụng AMQP


Trước AMQP, đã từng có các ứng dụng broker và chuyển giao tin nhắn khác nhau được tạo và cài đặt bởi các nhà cung cấp khác nhau. Tuy nhiên, họ có một vấn đề lớn và đó là thiếu khả năng tương tác. Đơn giản là không có cách nào để người này làm việc với người khác. Phương pháp duy nhất được dùng để làm cho các hệ thống khác nhau sử dụng các giao thức khác nhau hoạt động là giới thiệu một lớp bổ sung để chuyển đổi các thông điệp được gọi là cầu nối nhắn tin . Các hệ thống này, sử dụng các bộ điều hợp riêng lẻ để có thể nhận tin nhắn như các client thông thường, sẽ được sử dụng để kết nối nhiều hệ thống nhắn tin khác nhau (ví dụ như WebSphere MQ và một hệ thống khác).

AMQP, bằng cách đưa ra các luật và hướng dẫn được xác định rõ ràng như ta đã giải thích ở trên, tạo ra một nền tảng chung được dùng cho tất cả các ứng dụng xếp hàng và message broker hoạt động và tương tác với nhau.

Các trường hợp sử dụng AMQP là gì?


Khi nào có nhu cầu phân phối thông điệp chất lượng cao và an toàn giữa các ứng dụng và quy trình, AMQP triển khai các giải pháp broker thông điệp có thể được xem xét sử dụng.

AMQP đảm bảo


  • Độ tin cậy của việc gửi thông điệp

  • Gửi tin nhắn nhanh chóng và đảm bảo

  • Xác nhận tin nhắn

Những khả năng này làm cho nó trở nên lý tưởng cho


  • Giám sát và chia sẻ global cập nhật

  • Kết nối các hệ thống khác nhau để nói chuyện với nhau

  • Cho phép server phản hồi các yêu cầu tức thì một cách nhanh chóng và ủy thác các việc tốn thời gian để xử lý sau

  • Phân phối một tin nhắn cho nhiều người nhận để sử dụng

  • Cho phép các ứng dụng client offline tìm nạp dữ liệu sau đó

  • Giới thiệu chức năng hoàn toàn không đồng bộ cho hệ thống

  • Tăng độ tin cậy và thời gian hoạt động của việc triển khai ứng dụng

AMQP Assembly và thuật ngữ


Hiểu và làm việc với AMQP liên quan đến việc làm quen với khá nhiều thuật ngữ và thuật ngữ khác nhau. Trong phần này, ta sẽ xem xét các phần chính sau:

  • Broker ( Server ): Một ứng dụng - triển khai mô hình AMQP - chấp nhận các kết nối từ client để định tuyến thư, xếp hàng, v.v.

  • Thông báo: Nội dung dữ liệu được chuyển / định tuyến bao gồm thông tin như thuộc tính tải trọng và thông báo.

  • Người tiêu dùng: Một ứng dụng nhận (các) tin nhắn - do nhà production đưa ra - từ các hàng đợi.

  • Producer: Một ứng dụng đưa tin nhắn vào hàng đợi thông qua trao đổi.

Lưu ý: Dung lượng tin nhắn không được AMQP xác định; Do đó, có thể chuyển các loại dữ liệu khác nhau và khác nhau bằng giao thức.

Các thành phần AMQP chính


Mô hình AMQP xác định cách các thông báo được nhận, định tuyến, lưu trữ, xếp hàng đợi và cách các phần ứng dụng xử lý các việc này hoạt động dựa trên các định nghĩa được cài đặt rõ ràng của các thành phần dưới đây:

  • Trao đổi: Một phần của nhà broker (tức là server ) nhận tin nhắn và định tuyến chúng đến hàng đợi

  • Hàng đợi (hàng đợi tin nhắn): Một thực thể được đặt tên có liên kết với các tin nhắn và từ nơi người tiêu dùng nhận được chúng

  • Ràng buộc: Luật phân phối thông điệp từ trao đổi đến hàng đợi

Nhà message broker AMQP hoạt động như thế nào?


Trong AMQP, "nhà broker thông điệp" dịch sang các ứng dụng nhận thông điệp thực tế và định tuyến (tức là chuyển) chúng đến các bên liên quan.

APPLICATION       EXCHANGE        TASK LIST        WORKER    [DATA] -------> [DATA] ---> [D]+[D][D][D] --->  [DATA]  Publisher        EXCHANGE          Queue         Consumer 

Sở giao dịch AMQP hoạt động như thế nào?


Sau khi nhận được tin nhắn từ nhà xuất bản (tức là khách hàng), các sàn giao dịch sẽ xử lý chúng và chuyển chúng đến một hoặc nhiều hàng đợi. Loại định tuyến được thực hiện tùy thuộc vào loại sàn giao dịch và hiện có bốn loại trong số đó.

Trao đổi trực tiếp


Kiểu trao đổi trực tiếp liên quan đến việc gửi thông điệp đến hàng đợi dựa trên các khóa định tuyến. Các khóa định tuyến có thể được coi là dữ liệu bổ sung được xác định để đặt thông báo sẽ đi đến đâu.

Trường hợp sử dụng điển hình để trao đổi trực tiếp là các nhiệm vụ cân bằng tải theo cách thức vòng tròn giữa các công nhân.

Sàn giao dịch Fanout


Trao đổi Fanout hoàn toàn bỏ qua khóa định tuyến và gửi bất kỳ thông báo nào đến tất cả các hàng đợi liên kết với nó.

Các trường hợp sử dụng cho trao đổi fanout thường liên quan đến việc phân phối thông báo cho nhiều khách hàng cho các mục đích tương tự như thông báo:

  • Chia sẻ tin nhắn (ví dụ: server trò chuyện) và cập nhật (ví dụ: tin tức)

  • Trạng thái ứng dụng (ví dụ: cấu hình)

Trao đổi chủ đề


Trao đổi chủ đề chủ yếu được sử dụng cho các mô hình pub / sub (xuất bản-đăng ký). Sử dụng kiểu truyền này, một khóa định tuyến cùng với ràng buộc các hàng đợi với các trao đổi được sử dụng để khớp và gửi tin nhắn.

Khi nào cần có sự tham gia chuyên biệt của người tiêu dùng (chẳng hạn như một group làm việc duy nhất để thực hiện một loại hành động nhất định), trao đổi chủ đề sẽ có ích để phân phối thông điệp phù hợp dựa trên các khóa và mẫu.

Trao đổi tiêu đề


Trao đổi tiêu đề cấu thành việc sử dụng các tiêu đề bổ sung (tức là thuộc tính thông báo) cùng với thông báo thay vì phụ thuộc vào các khóa định tuyến để định tuyến đến hàng đợi.

Có thể sử dụng các loại dữ liệu không phải chuỗi (chính là khóa định tuyến), trao đổi tiêu đề cho phép cơ chế định tuyến khác nhau với nhiều khả năng hơn nhưng tương tự như trao đổi trực tiếp thông qua khóa.

Làm thế nào để nhắn tin AMQP phân biệt với e-mail?


Cho rằng việc gửi thư bao gồm việc gửi một thư (tức là xuất bản), việc tiếp nhận và xử lý của nó bởi server thư (tức là broker ) đến các hộp thư có liên quan (tức là hàng đợi), cuối cùng là yêu cầu và nhận được thư đã nói (tức là tiêu thụ), quá trình và nhiệm vụ chuyển các thông điệp được định nghĩa bởi AMQP có thể được xem là tương tự.

Bên cạnh các nguyên tắc cơ bản thực sự khác nhau một chút, điều chính ngăn cách AMQP với gửi thư điện tử là Chất lượng Dịch vụ (QoS) được nhắm đến . AMQP, về bản chất, phấn đấu vì độ tin cậy, bảo mật, tuân theo các tiêu chuẩn và an toàn.

Các tính năng như tính bền bỉ, gửi thông điệp đến nhiều người tiêu dùng, khả năng đảm bảo và ngăn chặn việc tiêu thụ nhiều người và giao thức hoạt động ở tốc độ cao là những yếu tố chính ngăn cách hai yếu tố này.

Đối với việc sử dụng và điều chỉnh ở cấp độ doanh nghiệp, các yêu cầu xác thực để gửi tin nhắn (tức là xuất bản) tới các trao đổi (và hàng đợi) nghĩa là ngăn chặn những thứ không mong muốn (chẳng hạn như thư rác), đóng một role quan trọng để cài đặt QoS.

<div class = “author”> Gửi bởi: <a
href = “https://twitter.com/ostezer”> Hệ điều hành Tezer </a> </div>


Tags:

Các tin liên quan