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

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

    Содержание

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

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

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

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

    1. Обратитесь к Методы доступа, чтобы получить конкретный адрес доступа.
    2. Обратитесь к Управление пользователями, чтобы получить имя пользователя и пароль для экземпляра.
    Совет

    Убедитесь, что вы заменили <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] Отправлено '" + message + "'");
            }
            channel.close();
            connection.close();
        }
    }

    Для получения дополнительных примеров на Java, пожалуйста, обратитесь к Руководству по API клиента Java.

    Для использования других клиентов, пожалуйста, обратитесь к Учебникам RabbitMQ.