Я разрабатываю модуль чата для веб-платформы, используя протокол веб-сокета и 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.
Любая помощьбыл бы признателен.