我正在为移动客户端实现一个后端,它提供聊天服务,包括向用户提供多个聊天室。
我决定使用Kafka来进行聊天、消息订阅和发布,因为我不能使用STOMP (我选择的是Servlet而不是Servlet)。

根据我的计划,聊天消息的交换是通过以下过程进行的。(假设Clients A and B在同一个聊天室。)
client A通过WebSocket.client B连接到chat server 1,通过WebSocket.chat server1 and 2连接到chat server 2,订阅Kafka topic 'chat'client A将聊天消息发送到chat server 1.chat server1,首先存储聊天消息到DB,然后将消息发布到Kafka topic 'chat'。消息包含聊天室id、聊天内容、发送方id.chat server2接收来自Kafka主题的'chat'.chat server2过滤消息,其中有joined.chat server2聊天室id的client B.发送过滤消息给client B.。
我的问题是
我担心这不是通常的做法。普通人是做什么的?
发布于 2021-01-17 00:44:19
我不认为卡夫卡会扩大规模,如果你有大量的小组聊天,即使你可以在理论上做到。如果您理解kafka正确,每个消费者需要一个副本分区,以消费者排他性,这意味着您需要很多分区(冗余)的聊天消息。我觉得不太理想。此外,还需要与IM应用程序集成系统的其他部分。然而,肯定有工作的地方。举个例子,一个消费者对消费者一整组聊天。
https://stackoverflow.com/questions/64236990
复制相似问题