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

Cách cài đặt và quản lý Apache Qpid

Khi nói đến việc gửi và nhận tin nhắn giữa các ứng dụng và quy trình, có nhiều giải pháp bạn có thể chọn. Tất cả chúng đều có ưu và nhược điểm, do đó điều tốt nhất cần làm là kiểm tra chéo các yêu cầu của bạn và so khớp chúng với các giải pháp có sẵn khác nhau.


Apache Qpid là một trong những hệ thống nhắn tin open-souce triển khai Giao thức xếp hàng tin nhắn nâng cao (AMQP) để giúp bạn giải quyết nhu cầu nhắn tin nâng cao giữa các phần tử khác nhau của ngăn xếp triển khai.

Nhắn tin, Người message broker và Hàng đợi


Nhắn tin là một cách trao đổi dữ liệu nhất định giữa các quy trình, ứng dụng và server (ảo và vật lý). Những thông điệp này được trao đổi, giúp đáp ứng các nhu cầu kỹ thuật nhất định, có thể bao gồm bất kỳ thứ gì từ tin nhắn văn bản thuần túy đến các đốm dữ liệu binary phục vụ để giải quyết các nhu cầu khác nhau. Để điều này hoạt động, cần có một giao diện được quản lý bởi chương trình của bên thứ ba (một phần mềm trung gian) - chào mừng các nhà message broker .

Nhà message broker thường là ứng dụng với các phần chuyên dụng bao gồm từng giai đoạn của cài đặt trao đổi. Từ việc chấp nhận một thông điệp tới xếp hàng nó và phân phối nó đến bên yêu cầu, broker xử lý các nhiệm vụ mà thông thường sẽ khó khăn hơn hoặc cồng kềnh nhiều việc phải làm với các giải pháp phi chuyên dụng hoặc hacks đơn giản như sử dụng một database , công việc cron, vv Họ chỉ đơn giản làm việc bằng cách xử lý các hàng đợi về mặt kỹ thuật tạo thành cache vô hạn, để đưa các thông điệp và cửa sổ bật lên và gửi chúng sau đó sẽ được xử lý tự động hoặc bằng cách bỏ phiếu.

Tại sao sử dụng chúng?


Các giải pháp phân tích thông điệp này hoạt động giống như một người trung gian cho các dịch vụ khác nhau (ví dụ: ứng dụng web của bạn). Chúng được dùng để giảm đáng kể tải và thời gian phân phối của server ứng dụng web vì các việc thường mất khá nhiều thời gian để xử lý, có thể được ủy quyền cho bên thứ ba có công việc duy nhất là thực hiện chúng (tức là công nhân). Chúng cũng có ích khi cần có sự bền bỉ “đảm bảo” hơn để truyền thông tin từ nơi này sang nơi khác.

Khi nào sử dụng chúng?


Tất cả kết hợp lại với nhau, chức năng cốt lõi được giải thích mở rộng để bao gồm vô số lĩnh vực, bao gồm nhưng-không-giới-hạn-ở :

  • Cho phép web server phản hồi các yêu cầu một cách nhanh chóng thay vì bị buộc phải thực hiện các quy trình tốn nhiều tài nguyên ngay tại chỗ

  • Phân phối một tin nhắn cho nhiều người nhận để sử dụng (tức là xử lý)

  • Cho phép các bên offline (ví dụ như user bị ngắt kết nối) tìm nạp dữ liệu sau đó thay vì mất dữ liệu vĩnh viễn

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

  • Sắp xếp thứ tự và ưu tiên nhiệm vụ

  • Cân bằng tải giữa các công nhân

  • Tăng đáng kể độ tin cậy và thời gian hoạt động của ứng dụng của bạn

  • và nhiều hơn nữa.

Apache Qpid


Apache Software Foundation có một số giải pháp khi nói đến nhắn tin và một trong số đó là Apache Qpid: Việc triển khai AMQP của nền tảng. Không giống như một số ứng dụng cơ bản nhằm mục đích giúp các nhà phát triển tạo ra các giải pháp của riêng họ, Qpid, tương tự như RabbitMQ, cung cấp một bộ công cụ đẹp có khả năng xếp hàng, bảo mật và quản lý giao dịch, phân cụm, bền bỉ thông qua một lớp có thể cắm được và hơn thế nữa. API của nó, theo mặc định, hỗ trợ nhiều ngôn ngữ lập trình và nó đi kèm với cả C ++ (cho Perl, Python, Ruby, .NET, v.v.) và Java (JMS API). Cùng với RabbitMQ, Qpid có lẽ là lựa chọn phổ biến nhất.

Nó khác với những cái khác gì ?


Các nhà message broker được thành lập hoàn toàn chỉ khác một chút về bề ngoài. Tuy nhiên, một cái nhìn sâu hơn về bên trong sẽ tiết lộ sự thật đằng sau cách mọi thứ hoạt động. Sau đây là những tính năng làm cho Apache Qpid trở nên nổi bật so với những người khác:

  • Phát hiện chuyển đổi dự phòng client và tự động chữa bệnh bằng cách kết nối với một nhà broker khác

  • Phân cụm dễ dàng bằng cách sao chép hàng đợi trên các server khác nhau

  • Xử lý lỗi theo mặc định trong các cụm

  • Tính bền bỉ dễ dàng thông qua kiến trúc có thể cắm được để mang lại tính khả dụng cao

  • và nhiều hơn nữa.

Tóm tắt Giao thức xếp hàng thư nâng cao (AMQP)


AMQP là một tiêu chuẩn nguồn mở được chấp nhận rộng rãi để phân phối và chuyển các thông điệp từ nguồn đến đích. Là một giao thức và tiêu chuẩn, nó đặt nền tảng chung cho các ứng dụng khác nhau và phần mềm trung gian message broker để tương tác với nhau mà không gặp phải các vấn đề do các quyết định thiết kế được cài đặt riêng lẻ.

Cài đặt Apache Qpid


Bắt đầu với Apache Qpid nghĩa là cài đặt hai bộ công cụ khác nhau:

  • Việc triển khai Qpid Broker tùy thuộc vào ngôn ngữ lập trình bạn chọn (ví dụ như C ++ broker cho Python hoặc Java Broker cho Java)

  • Thư viện Qpid Client (ví dụ Qpid Python)

Lưu ý: Ta sẽ thực hiện cài đặt của bạn và các hành động được liệt kê ở đây trên một server mới và mới được tạo vì nhiều lý do. Nếu bạn đang tích cực phục vụ khách hàng và có thể đã sửa đổi hệ thống của bạn , để không làm hỏng bất kỳ thứ gì đang hoạt động và không gặp sự cố, bạn nên thử các hướng dẫn sau trên một hệ thống mới.

Cài đặt trên hệ thống dựa trên CentOS 6 / RHEL


Hãy cập nhật server của ta :

yum -y update 

Và sau đó, hãy chạy phần sau để tải Qpid C ++ Server và các công cụ của nó (bao gồm các liên kết Python):

yum install -y qpid-cpp-server qpid-tools     

Nếu bạn yêu cầu, hãy tiếp tục cài đặt các ràng buộc ngôn ngữ của Qpid cho những người khác như Ruby:

yum install -y ruby-qpid 

Cài đặt trên hệ thống dựa trên Ubuntu 13 / Debian 7


Quá trình download và cài đặt Apache Qpid trên Ubuntu và Debian sẽ tương tự như CentOS.

Hãy bắt đầu với việc cập nhật bộ công cụ ứng dụng mặc định của hệ thống của ta :

apt-get    update  apt-get -y upgrade 

Và sau đó, hãy chạy phần sau để tải Qpid C ++ Server và các công cụ của nó:

apt-get install -y qpidd qpid-tools apt-get install -y libqpidmessaging2-dev python-qpid ruby-qpid 

Lưu ý: Trong quá trình cài đặt, bạn sẽ được yêu cầu nhập password bạn chọn cho administrator daemon Qpid.

Quản lý Apache Qpid


Quản lý trên hệ thống dựa trên CentOS / RHEL


Để bắt đầu, dừng, khởi động lại và kiểm tra trạng thái ứng dụng, hãy sử dụng các bước sau:

# To start the service: /sbin/service qpidd start  # To stop the service: /sbin/service qpidd stop  # To restart the service: /sbin/service qpidd restart  # To check the status: /sbin/service qpidd status  # To force reload: /sbin/service qpidd force-reload 

Quản lý trên hệ thống dựa trên Ubuntu / Debian


Để bắt đầu, dừng, khởi động lại và kiểm tra trạng thái ứng dụng trên Ubuntu và Debian, hãy sử dụng như sau:

# To start the service: service qpidd start  # To stop the service: service qpidd stop  # To restart the service: service qpidd restart  # To check the status: service qpidd status  # To force reload: service qpidd force-reload 

Và đó là nó! Đến đây bạn có nhà message broker Apache Qpid của bạn đang làm việc trên server của bạn.

Để tìm hiểu thêm về Qpid và hàng loạt các tùy chọn cấu hình của nó, hãy xem tài liệu về Triển khai C ++Triển khai Java .

Làm việc với Apache Qpid


Sau khi ta cài đặt Qpid cùng với các ràng buộc ngôn ngữ Python của nó, ta hãy xem xét một ví dụ Qpid đơn giản để hiểu cơ bản về cách làm việc với nó.

Tạo một (mẫu) file hello_world.py bằng nano :

nano hello_world.py 

Dán module tự giải thích bên dưới:

# Import the modules we need from qpid.messaging import *  broker     = "localhost:5672"  address    = "amq.topic"  connection = Connection(broker)  try:     connection.open()      # Define the session     session = connection.session()      # Define a sender *and* a receiver     sender   = session.sender(address)     receiver = session.receiver(address)      # Send a simple "Hello world!" message to the queue     sender.send(Message("Hello world!"));      # Fetch the next message in the queue     message = receiver.fetch()      # Output the message     print message.content      # Check with the server     session.acknowledge()  except MessagingError, err:     print err  finally:     connection.close() 

Nhấn CTRL + X và xác nhận với Y để lưu và thoát.

Khi bạn chạy tập lệnh trên, bạn sẽ thấy thông báo của ta (tức là Hello world!) Là kết quả ngay bây giờ.

python hello_world.py # Hello world! 

Nếu bạn gặp sự cố, hãy đảm bảo qpid đang chạy. Bạn có thể bắt đầu nó bằng các lệnh trên.

<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

Cách chuyển từ web server Apache sang Nginx trên VPS Ubuntu
2013-12-17
Cách cài đặt Apache mod_spdy trên VPS Debian 7
2013-12-12
Cách thiết lập ứng dụng Rails 4 với Apache và Passenger trên CentOS 6
2013-12-06
Cách thiết lập công cụ Railo CFML với Tomcat và Apache trên Debian 7 hoặc Ubuntu 13 VPS
2013-11-19
Cách tạo chứng chỉ SSL trên Apache cho Debian 7
2013-11-11
Cách thiết lập server ảo Apache trên Debian 7
2013-10-29
Cách cấu hình Varnish cho Drupal với Apache trên Debian và Ubuntu
2013-10-21
Cách thiết lập mod_security với Apache trên Debian / Ubuntu
2013-10-21
Cách cài đặt Apache Wave trên VPS CentOS 6.4 x64
2013-09-18
Cách cấu hình bộ nhớ đệm nội dung bằng module Apache trên VPS
2013-08-16