【发布时间】:2020-10-07 03:59:24
【问题描述】:
我正在为提供聊天服务的移动客户端实现一个后端,包括向用户提供多个聊天室。(使用 Spring 启动)
我决定使用 Kafka 进行聊天消息订阅和发布,因为我不能将 STOMP 与 Spring Webflux(我选择它而不是 Servlet)一起使用。
根据我的计划,聊天消息的交换通过以下过程进行。 (假设Clients A and B在同一个聊天室。)
-
client A通过 WebSocket 连接到chat server 1。 -
client B通过 WebSocket 连接到chat server 2。 -
chat server1 and 2订阅Kafka topic 'chat' -
client A发送聊天消息到chat server 1。 -
chat server1首先将聊天消息存储到DB,然后将消息发布到Kafka topic 'chat'。消息包含聊天室 ID、聊天内容、发件人 ID。 -
chat server2接收来自 Kafka 主题“聊天”的消息。 -
chat server2过滤聊天室 ID 为client B的消息已加入。 -
chat server2将过滤后的消息发送至client B。
我的问题是
我担心这不是通常的方式。普通人是做什么的?
【问题讨论】:
标签: apache-kafka chat publish-subscribe