聊一聊rabbitMQ和kafka的应用场景
发布网友
发布时间:2022-12-20 20:05
我来回答
共1个回答
热心网友
时间:2023-09-29 12:33
我们知道常用的2款消息中间件是rabbitmq和kafka,他们2者都有什么各自的特点和应用场景呢?我们下面就聊一聊。
rabbitmq消息的发送,首先经过exchange,然后由exchange根据路由把消息投递到绑定的队列中,exchange有3中类型:
fanout:完全模式,消息会投递到和exchange绑定的所以队列中,使用于多个消费者应用的场景。
direct:直接模式,消息投递根据发送的routingkey和bindingkey完全匹配的队列中,使用单消费者场景。
topic:topic模式,消息投递模糊匹配路由规则,可以投递到多个匹配的队列中。
rabbitmq的消息可以持久化,也可以不持久化,消息消费完就被删除,不能重复消费。
rabbitmq cluster消息的存储,一个队列只能在一台机器上存储,无法实现分片存储。
kafka消息发送topic,topic可以多个分区,同一个topic的消息可以分片保存在不同的机器上,消息持久化存储在磁盘上,一个消息可以重复消费,不用像rabbitmq一样,有几个消费者来消费这个消息,就需要几个消息队列来存储这个消息。