Невозможно заставить работать / подключаться STOMP в Spring-Boot на кластере GKE - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь запустить приложение в GKE. Я использую экземпляр RabbitMQ из cloudamqp. Я использую этот экземпляр для всех внутренних сообщений между моими микросервисами через AMQP.

Теперь я хочу отправлять сообщения в браузер, используя STOMP через SockJS, используя stompRelay. Когда я подключаюсь к экземпляру локально (на моей dev-машине), все работает как шарм. Сообщения отправляются и подтверждаются, ...

Когда я перемещаю приложение в рабочую среду (GKE), все очереди AMQP работают правильно, но у меня не получается, чтобы STOMP работал с реле ... Когда я использую simpleBroker, все работает правильно.

Я почти уверен, что код корректен, так как он корректно работает с моего ПК для разработки. Я думаю, что это связано с перехватом брандмауэров GKE.

Я попытался добавить дополнительные правила к брандмауэру на gce, разрешив весь входящий / исходящий трафик по TCP 61613,61614.

Ошибка

o.s.m.s.s.StompBrokerRelayMessageHandler : TCP connection failure in session _system_: No CONNECTED frame received in 60000 ms.
r.io.net.impl.netty.tcp.NettyTcpClient   : CLOSED: [id: 0x5d96aa8d, /10.20.6.78:47136 :> xxxxxxxxxx.rmq.cloudamqp.com/35.195.232.78:61613]

Мой докер-файл

FROM openjdk:8-jre-alpine

RUN apk add --no-cache tzdata
ENV TZ Europe/Brussels

ENV SPRING_PROFILES_ACTIVE production

WORKDIR /app
ADD target/application.jar /app/application.jar

EXPOSE 8080

CMD ["java", "-jar", "application.jar"]

Моя конфигурация реле

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableStompBrokerRelay("/topic", "/queue")
                .setRelayHost(relayHost)
                .setRelayPort(relayPort)
                .setSystemLogin(relayLogin)
                .setSystemPasscode(relayPasscode)
                .setVirtualHost(relayVHost)
                .setClientLogin(relayLogin)
                .setClientPasscode(relayPasscode);
    }

Я боролся уже 2 дня, пытаясь запустить это ...

У кого-нибудь есть STOMP в Spring-boot, работающий на GKE с внешним rabbitMQ?

1 Ответ

0 голосов
/ 29 марта 2019

После повторного просмотра конфигурации я обнаружил опечатку, которая вызывала проблемы с подключением к RabbitMQ.

@Value("${app.stomp.username:guest}")
private String relayLogin;

Но конфигурация была

app:
  stomp:
    user: xxxxxxxx
...