Изучение нескольких методов установки AMQP или AMQPS в качестве протокола

В этой статье блога мы рассмотрим различные способы установки AMQP (расширенного протокола очереди сообщений) или AMQPS (AMQP Secure) в качестве протокола. Мы будем использовать разговорный язык и приведем примеры кода, чтобы облегчить понимание процесса. Итак, приступим!

Метод 1: использование URI AMQP
Один из способов установить протокол — включить его в универсальный идентификатор ресурса AMQP (URI) при установлении соединения. Вот пример на Python с использованием библиотеки pika:

import pika
credentials = pika.PlainCredentials('username', 'password')
parameters = pika.ConnectionParameters('localhost', 5672, '/', credentials, 'amqps')
connection = pika.BlockingConnection(parameters)
channel = connection.channel()

В приведенном выше примере мы установили протокол amqpsв объекте ConnectionParameters.

Метод 2: настройка RabbitMQ
Если вы используете RabbitMQ в качестве брокера AMQP, вы можете настроить его на использование желаемого протокола. Найдите файл rabbitmq.config(обычно он находится в каталоге установки RabbitMQ) и добавьте следующую конфигурацию:

[
  {rabbit, [
    {tcp_listeners, [{"0.0.0.0", 5672}]},
    {ssl_listeners, [{"0.0.0.0", 5671}]},
    {ssl_options, [{cacertfile,"/path/to/ca_certificate.pem"},
                   {certfile,"/path/to/server_certificate.pem"},
                   {keyfile,"/path/to/server_key.pem"},
                   {verify,verify_peer},
                   {fail_if_no_peer_cert,true}]}
  ]}
].

В приведенной выше конфигурации мы включили как tcp_listeners, так и ssl_listeners, причем последний использует нужный протокол (amqps).

stream {
    server {
        listen 5672;
        proxy_pass backend_amqp;
    }

    upstream backend_amqp {
        server localhost:5671;
    }
}

В приведенном выше примере NGINX прослушивает порт 5672 (AMQP) и перенаправляет трафик на внутренний сервер, работающий на порту 5671 (AMQPS).

Настроить AMQP или AMQPS в качестве протокола можно различными способами. Вы можете использовать URI AMQP, настроить RabbitMQ или использовать прокси-сервер, например NGINX. Выберите метод, который лучше всего соответствует вашим требованиям, и легко интегрируйте его в свой проект.