消息队列知识点
所属分类 architecture
浏览量 1518
消息队列
解耦、异步、削峰。
缺点
引入消息队列系统,可用性
增加复杂度
数据一致性问题
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原理