RocketMQ

  1. 关于事务,RocketMQ会定时(1分钟)回查生产者发送的事务消息,如果是 prepared 状态则会向 Producer 发起 CheckTransaction 请求,根据返回结果来决定是回滚还是继续执行
  2. 消费超时会一直重试

RabbitMQ

  1. 消息发送到交换机,然后根据消息的 routing_key 和交换机类型,自动发送到相应的 队列
  2. 若交换机没有相关联的队列,或关联的队列不存在,则消息会 被抛弃
  3. 所谓的几种类型的交换机,其实只是交换机查找对应队列的方式:

    • Direct: 直连,将消息发送到 路由键 同名的队列上(不能指定交换机名称) -- 只全等判断路由键,不关心 绑定 关系(一对一)
    • Fanout: 扇形,将消息发送到 与当前交换机有绑定关系 的队列上 -- 只判断 绑定 关系,不关心 路由键(一对多)
    • Topic: 主题,将消息发送到 消息的 路由键 与 队列绑定的 路由键 相匹配的队列上 -- 在 绑定 关系基础上再匹配 路由键 (多对多)