首页  

消息队列知识点     所属分类 architecture 浏览量 1306
消息队列
解耦、异步、削峰。

缺点
引入消息队列系统,可用性
增加复杂度
数据一致性问题

Kafka ActiveMQ RocketMQ RabbitMQ

RabbitMQ  基于 erlang 开发,并发能力很强,性能极好,延时很低


Kafka
高吞吐,一般配合大数据系统进行实时数据计算、日志采集等
topic 数量不要过多 ,否则变成随机读写,性能下降

高可用性

 kafka高可用机制简介 

如何保证消息不被重复消费?(消息消费的幂等性)

 kafka消息投递语义  

消息可靠性(如何处理消息丢失问题)

kafka 设置多个副本

partition  副本 replica
default.replication.factor=N
 (总共N份数据)

min.insync.replicas  大于1 

ack 机制
request.required.acks  三个值 0 1 -1
0 不等待 broker 的 ack,这个延迟最低 
1 等待 leader 副本确认 
-1  所有的 follower 副本 ack 之后 ,leader ack

客户端设置 acks = -1,服务端设置  min.insync.replicas = 2,至少有 2 个副本写入后,broker 才会返回
如果 topic 只有 1 个副本,而 acks = -1,min.insync.replicas = 2,报错 NOT_ENOUGH_REPLICAS 


消息顺序性

Kafka  同一个 partition 内  有序

消息积压 过期失效

上一篇     下一篇
ConcurrentHashMap读操作为什么不需要加锁

java里的协程

一致性算法raft要点

铁娘子董明珠

Redis虚拟槽算法

java关键字volatile原理