• Русский
  • Подключение клиента

    Существует несколько способов подключения бизнес-приложений к инстансам RabbitMQ. В этом разделе описывается, как получить доступ к инстансам RabbitMQ с помощью Java и Python.

    Применимые сценарии

    Метод доступаПрименимый сценарий
    Доступ внутри кластераПриложения внутри кластера получают доступ к инстансам RabbitMQ через порты, открытые SVC.
    Доступ вне кластераПриложения вне кластера получают доступ к инстансам RabbitMQ через порты NodePort.
    Доступ к порталу управления осуществляется через соответствующий порт инстанса.

    Подключение к RabbitMQ

    Предварительные требования

    1. Обратитесь к разделу Access Methods для получения конкретного адреса доступа.
    2. Обратитесь к разделу User Management для получения имени пользователя и пароля для инстанса.
    Совет

    Обязательно замените <username> и <password> в коде на фактические учетные данные инстанса.

    Убедитесь, что в коде заменены <ip> и <port> на фактический адрес доступа к инстансу. В случае доступа из вне кластера может быть несколько адресов доступа; вы можете указать их все для повышения надежности подключения.

    Java
    Python

    Пример подключения на Java приведён ниже:

    import com.rabbitmq.client.*;
    
    import java.io.IOException;
    import java.nio.charset.StandardCharsets;
    import java.util.concurrent.TimeoutException;
    import java.util.HashMap;
    import java.util.UUID;
    
    public class ProducerTest {
        public static void main(String[] args) throws Exception {
            Address[] addresses = {
                new Address(<ip 1>,<port 1>),
                new Address(<ip 2>,<port 2>),
                new Address(<ip 3>,<port 3>)
            };
            String username = "<username>";
            String password = "<password>";
            String vhostName = "/";
            String exchangeName = "testExchange";
            String exchangeType = "direct";
            String queueName = "test";
    
            ConnectionFactory factory = new ConnectionFactory();
    
            factory.setUsername(username);
    
            factory.setPassword(password);
    
            factory.setAutomaticRecoveryEnabled(true);
            factory.setNetworkRecoveryInterval(5000);
    
            factory.setVirtualHost(vhostName);
    
            factory.setConnectionTimeout(30 * 1000);
            factory.setHandshakeTimeout(30 * 1000);
            factory.setShutdownTimeout(0);
    
            Connection connection = factory.newConnection(addresses);
            Channel channel = connection.createChannel();
            channel.exchangeDeclare(exchangeName, exchangeType, true, false, false, null);
            channel.queueDeclare(queueName, true, false, false, new HashMap<String, Object>());
            channel.queueBind(queueName, exchangeName, "BindingKeyTest");
    
            for (int i = 0; i < 100; i++  ) {
                    String message = "Hello World!"+ i;
                    channel.basicPublish(exchangeName, "BindingKeyTest", MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBytes());
                    System.out.println(" [x] Sent '" + message + "'");
            }
            channel.close();
            connection.close();
        }
    }

    Для получения дополнительных примеров по Java-клиенту обратитесь к Java Client API Guide.

    Для использования других клиентов обратитесь к RabbitMQ Tutorials.