如何才能证明你对kafka了如指掌()
1.kafka基本运行原理及架构
关键词
prducer:生产者
consumer:消费者
consumer group:消费者组
【如何才能证明你对kafka了如指掌()】cluster:kafka集群
broker:kafka节点
topic:主题
partation:消息分区(一个topic可以为多个partation组成)
relica:副本(partation会有多个副本分布在多个beoker上,保障数据不丢)
两种消费模式
点对点模式:消息不存储,消费成功立即删除,一个消息只能消费一次
发布订阅模式:消息被消费后不会删除
工作流程
消息的生产和消费都是面向topic。topic是一个逻辑上的概念,其实物理上就是一个或多个partation,一个partation由多个segment文件组成,segment由.log和.index文件组成。log存储数据,kafka采用文件末尾追加存储的方式。每条数据都有自己的offset,方便消费者灵活选择位置消费。index文件出差农户索引信息。kafka采用分片索引机制。
ACK
0:producer发送消息后,不等待ack直接返回成功
1:等待当前partation的leader落盘成功返回ack,不等待follower
-1(all):等待所有partation落盘成功返回
2.相对于其它消息队列中间件,kafka有哪些优势与劣势?
速度快,并发强。结构设计简单,方便定制扩展。
3.消息队列常见问题
重复消费:
借用数据库事务,新加一张消息表。用id或流水号去重。
消息丢失(消息可靠性传输)
producer发送时丢失:ack机制保证(三个级别:0,1,-1)
kafka自己丢失:同上,保证落盘,再发送ack应答。
consumer消费发生错误丢失:同上,消费成功且不报错,再发送ack。
顺序消费:
producer保证发送有序
kafka将需要保证顺序的消息落在同一个队列中
consumer消费时,为了保证有序,只能有一个线程去消费
如幂等消息,延迟消费等等问题,在kafka中是如何解决的
参考:https://www.cnblogs.com/jiuju...
https://blog.csdn.net/yuanlon...
推荐阅读
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 如何寻找情感问答App的分析切入点
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus使用queryWrapper如何实现复杂查询
- 如何在Mac中的文件选择框中打开系统隐藏文件夹
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- java中如何实现重建二叉树
- Linux下面如何查看tomcat已经使用多少线程
- thinkphp|thinkphp 3.2 如何调用第三方类库
- 2019女表什么牌子好(如何挑选女士手表?)