消息队列(例如RabbitMQ)或用于微服务的Kafka?

问题描述 投票:0回答:1

我们正在开始一个新项目,我们在其中评估用于微服务之间异步通信的技术堆栈吗?我们正在为此考虑使用RabbitMQ和Kafka。

谁能阐明在这两者之间决定一个的关键考虑因素?

谢谢

apache-kafka rabbitmq microservices
1个回答
0
投票

选择取决于您的微服务的确切需求。与其他相比,两者都有不同之处。

<< RabbitMQ简而言之

谁是玩家:

    消费者
  1. 发布者
  2. Exchange
  3. 路线
  • 该流程从发布者开始,该发布者发送消息以进行交换,Exchange是一个中间件层,它知道将消息路由到队列,使用者可以定义他们从中使用哪个队列(通过定义绑定),RabbitMQ推送消息发送给消费者,并且一旦消费并收到确认,便从队列中删除消息。该系统中的任何部分都可以扩展:生产者,消费者以及RabbitMQ本身都可以被集群化,并且高度可用。

    Kafka

  • 谁是玩家

      消费者/消费者群体
    1. 制作人
    2. Kafka源连接
    3. 卡夫卡水槽连接
    4. 主题和主题分区
    5. 卡夫卡流
    6. 经纪人
    7. Zookeeper
  • Kafka是一个强大的系统,在游戏中有多个成员。但是一旦您很好地了解了流程,就可以轻松进行管理和使用。生产者将消息记录发送到主题,主题是将记录发布到的类别或提要名称,可以对其进行分区,以提高性能,当主题为时,消费者订阅了主题并开始从中提取消息。分区,然后每个分区都有自己的使用者实例,我们将同一使用者的所有实例称为使用者组。在Kafka中,消息总是被保留在主题中,即使消息已被使用(限制时间由保留策略定义)另外,Kafka使用顺序磁盘I / O,这种方法提高了Kafka的性能,使其成为队列实现中的领导者选项,并且是大数据用例的安全选择。

    Comparing

    如果需要,请使用Kafka

    1. 时间旅行/耐用/提交日志
    2. 许多消费者使用同一条消息
    3. 高吞吐量
    4. 流处理
    5. 可复制性
    6. 高可用性
    7. 消息顺序
  • 如果需要,请使用RabbitMq:

    1. 灵活路由
    2. 优先级队列
    3. 标准协议消息队列
  • For more info
  • © www.soinside.com 2019 - 2024. All rights reserved.