Невозможно установить соединитель как AMQP при подключении к ActiveMQ с помощью MassTransit - PullRequest
1 голос
/ 27 марта 2019

Использование MassTransit Я пытаюсь подключиться к ActiveMQ через разъем AMQP. MassTransit настроен для подключения с использованием коннектора OpenWire к порту 61616.

Создал локальный контейнер для ActiveMq, используя следующую команду

docker run --rm -d -p 5672:5672 -p 8161:8161 rmohr/activemq:5.15.6-alpine

Теперь при попытке подключения к MassTransit я прохожу порт 5672

var uriBuilder = new UriBuilder("amqp://localhost")
                {
                    Port = 5672
                };

                var serviceBusHost = cfg.Host(
                    uriBuilder.Uri, settings =>
                    {
                        settings.Password(credentials[0]);
                        settings.Username(credentials[1]);
                    });

При использовании указанного выше кода в activeMqBusFactory я сталкиваюсь со следующим исключением: MassTransit.ActiveMqTransport.ActiveMqTransportConfigurationException: 'Схема адреса неверна: amqp'

При изменении вышеуказанного кода на

var uriBuilder = new UriBuilder("activemq://localhost")
                {
                    Port = 5672
                };

                var serviceBusHost = cfg.Host(
                    uriBuilder.Uri, settings =>
                    {
                        settings.Password(credentials[0]);
                        settings.Username(credentials[1]);
                    });

Я не получаю исключения, но webApp застревает с сообщением Начиная автобус хозяев ... Подключение: admin @ localhost: 5672

Просто чтобы уточнить, выставляю ли я порт 61616 при запуске док-контейнера и использую следующий код

var uriBuilder = new UriBuilder("activemq://localhost")
                {
                    Port = 61616
                };

                var serviceBusHost = cfg.Host(
                    uriBuilder.Uri, settings =>
                    {
                        settings.Password(credentials[0]);
                        settings.Username(credentials[1]);
                    });

Я могу подключиться к activeMQ с помощью OpenWire Connector. Я ищу способ подключения через разъем AMQP.

Спасибо

1 Ответ

1 голос
/ 28 марта 2019

Если посмотреть на источник для MassTransit, может показаться, что вы не можете использовать соединение AMQP с брокером ActiveMQ прямо сейчас.Код использует библиотеку NMS.ActiveMQ, которая является только openwire, поэтому вам нужно придерживаться этого.Авторам необходимо поддерживать AMQP в качестве соединителя протокола, используя что-то вроде клиента AmqpNetLite в качестве соединителя AMQP общего назначения для любой платформы сообщений, которая его поддерживает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...