在我们的场景中,我们有一组微服务,这些微服务通过发送事件消息与其他服务进行交互。我们预计在高峰期每天有数百万条消息。每条消息都针对一种或多种侦听器类型。 我们的要求如下:
我们考虑2种选择:
为此目的使用 JMS 或 Kafka 的利弊是什么?
答案 0 :(得分:1)
您的第一个要求是“零邮件丢失”。但是,如果您希望发布-订阅语义(即JMS中的主题),但不能保证在分派消息时侦听器仍处于活动状态,则JMS并不是启动器,因为这些消息将被简单地丢弃(即丢失)。
答案 1 :(得分:0)
我建议使用Kafka,因为它具有容错机制,即使某些消息丢失或未被任何侦听器捕获,您也可以轻松地从Kafka集群中检索它。
除此之外,您可以轻松地在组中添加新的侦听器/侦听器,并且kafka和zookeeper会很好地进行管理。
总而言之,Kafka是一个分布式的发布-订阅消息传递系统,旨在实现快速,可扩展和持久的功能。像许多发布订阅消息传递系统一样,Kafka维护主题中消息的提要。生产者将数据写入主题,而消费者则从主题中读取数据。
非常容易集成。