1 Star 0 Fork 184

zlyu2018 / springboot2-open

forked from cowboy yu / springboot2-open 
Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
阅读笔记.md 2.50 KB
Copy Edit Web IDE Raw Blame History

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

Comment ( 0 )

Sign in for post a comment

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

Search