1 Star 0 Fork 219

fankuopen / springboot2-open

forked from cowboy yu / springboot2-open 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
阅读笔记.md 2.50 KB
一键复制 编辑 原始数据 按行查看 历史

RabbitMq

关键词

异步 解耦 消息缓冲 消息分发 发送确认(confirm) 消费确认(ack) 持久化 correlationId (标识号,去重和幂等的依据,避免重复的消息进入队列) RPC(远程过程调用) 元数据 幂等性

概念

RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步解耦,同时也能起到消息缓冲消息分发的作用 。

虚拟主机:一个虚拟主机持有一组交换机、队列和绑定。作为不同权限隔离的手段 。

交换机:Exchange 用于转发消息,但是它不会做存储 。

绑定:也就是交换机需要和队列相绑定 。

Prefetch: prefetchCount=1,则Queue每次给每个消费者发送一条消息;消费者处理完这条消息后Queue会再给该消费者发送一条消息

注意

RabbitMQ cluster 中至少存在一个 disk node

queue 中存放的 message 是无限制,因为限制取决于机器的内存,但是消息过多会导致处理效率的下降 。可以设置队列最大长度,当达到长度的时候,最先入队的消息将被丢弃

保证 message 被可靠持久化的条件是 queue 和 exchange 具有 durable 属性,同时 message 具有 persistent 属性才行

不应该对所有的 message 都使用持久化机制

避免消息重复投递或重复消费

消息正确地发送至RabbitMQ

img

资源

https://chaser520.iteye.com/blog/2428253

http://blog.51cto.com/4925054/2088410

Kafka

关键词

topic 顺序读写 partition

知识点

磁盘的顺序读写速度和内存持平 ,磁盘顺序读写速度超过内存随机读写

分区数也限制了consumer的并行度,即限制了并行consumer消息的线程数不能大于分区数

consumer 往一个叫做_consumer_offset的特殊主题发送消息,消息里面包含每个分区的偏移量。 如果消费者一直处于运行状态,那么偏移量就没有什么用处。不过,如果消费者发生崩溃或者有新的消费者加入群组,就会触发rebanlance(再均衡),完成在均衡之后,每个消费者可能分配到新的分区,而不是之前处理的那个,为了能够继续之前的工作,消费者需要读取每个分区最后一次提交的偏移量,然后从偏移量指定的地方继续处理。

注意

相关

资源

https://www.cnblogs.com/xiaodf/p/6093261.html#6

https://www.jianshu.com/p/6c80c8501cfc

1
https://gitee.com/fankuopen/springboot2-open.git
git@gitee.com:fankuopen/springboot2-open.git
fankuopen
springboot2-open
springboot2-open
master

搜索帮助