Реализация протокола STOMP с Кафкой - PullRequest
0 голосов
/ 25 апреля 2019

Я разрабатываю модуль чата для веб-платформы, используя протокол веб-сокета и STOMP в качестве протокола сообщений.

Я впервые использую любой брокер сообщений, и Кафка - тот, который используется на веб-платформе компании (на которую я работаю), для других модулей, я полагаю.И ранее, когда я работал с RabbitMQ, когда я только начинал, теперь я должен переключиться на Kafka.Я видел на веб-сайте RabbitMQ целую статью о том, как использовать STOMP, но на официальном веб-сайте Kafka такого нет.

Но я изучил несколько других источников, множество учебных пособий и ничего не смог найтикасается использования протокола STOMP с Kafka, что заставляет меня спросить, возможно ли это?

Вот мой класс конфигурации websocket:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer{

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/ws").withSockJS();
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        registry.setApplicationDestinationPrefixes("/app");
        registry.enableSimpleBroker("/topic");

//Here's the line I wrote to use Kafka as a MB, but doesn't work        
registry.enableStompBrokerRelay("/topic").setRelayHost("localhost").setRelayPort(9092);

После запуска Kafka, а затем запуска моего приложения Java Spring, я получаю «сброс соединения через одноранговый узел» из java.io.IOException,который не должен выбрасываться, если все работает нормально.

Я использую релиз Kakfa 2.2.0, релиз Zookeeper 3.4.14 и использую STS 3 в качестве моей IDE.

Любая помощьбыл бы признателен.

1 Ответ

1 голос
/ 25 апреля 2019

RabbitMQ изначально не поддерживает STOMP, но имеет плагин STOMP; Kafka не имеет встроенной поддержки STOMP.

...