RabbitMq

1,RabbitMq:
它比kafka成熟,支持AMQP协议(跨语言)处理,在可靠性上,RabbitMq超过kafka,在性能方面超过ActiveMQ。 数据一致性 完整性好
Kafka:
Kafka设计的初衷就是处理日志的,不支持AMQP事务处理,可以看做是一个日志系统,针对性很强,所以它并没有具备一个成熟MQ应该具备的特性
Kafka的性能(吞吐量、tps)比RabbitMq要强,如果用来做大数据量的快速处理storm实时计算 是比RabbitMq有优势的。

2,

消息系统的核心作用就是三点:解耦,异步和并行

3,

rabbitmq消息模型
主要2中 确定消费者数据 简单类型和work work多个消费者 默认均匀消费 可设置每次去一个 能者多劳
不确定消费者模型3种 即发布订阅有三种 有交换机 可控制发给那些队列
fanout 广播 消息发给所有绑定交换机的队列 消息能重复消费(发给了很多队列)
direct 定向 指定路由
topic 通配符 符合路由模式的队列 和direct对比 支持通配符# 多个 *一个 其他和direct一样

rabbitmq消息发送确认 到达交换机回调接口是ConfirmCallback 到达队列是ReturnCallback

消息接收确认 channel.basicAck方法 实现ChannelAwareMessageListener 接口
防止消费者丢失数据 消息确认机制

rabbitmq丢失数据 持久化

生产者丢失数据 生产者启动confirm机制 成功后会有返回, 发送失败 生产者确认机制 mq给生产者一个回执


消息重复消费 解决幂等性即可 比如先查询一下 有就更新 不插入
消息顺序 拆分队列 一个队列对应一个消费者 不拆分队列 用一个消费者 然后消费者用队列排序

posted @ 2019-04-03 16:42  song123666  阅读(137)  评论(0编辑  收藏  举报