Kafka 入门知识

zookeeper搭建
kafka下载
kafka manager

MQ 的优势:

1 解耦
2 可恢复性(突然消费端宕机,不造成消息丢失)
3 削峰,缓冲
4 灵活性(扩容)
5 异步

消息订阅模式(一个消息多个消费者消费,消息不会立刻清除)
1 主动推送(推送消息速度难达到最佳,如消费能力不足或者消费能力过强)
2 客户端拉取消息(消费者长轮询访问队列,浪费资源访问队列中的消息)

生产 存放 topic
消费者 消费 消息

kafka 主动拉取消息,消费者的消费速度由自己决定

kafka架构:

1 broker 节点/实例
2 topic 主题/队列
3 partion 分区(提高负载均衡与并发,避免个别实例下某个topic过大)
4 topic leader,follow ,每个topic 分区都有leader和follow 且不在一个实例上
在这里插入图片描述
(一个消费者组内的消费者不能同时消费同一个分区)(分区数等于消费者组内消费者个数)

zookeeper 保存消息消费的进度,0.9 之后,offset存在kafka 本地磁盘中

副本数不能超过broker数,分区数可以超过broker 数

topic操作
create
delete
describe

offset 作为 一个topic 存未知,50个分区一个副本,历史最大保留7天

如果保证消息一致性(存储一致性(HW))
如何保证数据不丢失(ACK)

数据可靠性:
生产者发送消息,kafka 返回ack 确认收到
producer 可以设置acks 参数:
0 不需要leader等待follow 确认,
1 只等待leader 确认
-1 需要等待全部follow(ISR) 同步

producer
由于 leader 需要和follow 进行同步,什么时候发送确认消息

1 半数确认
优点:响应速度块
缺点:选举新leader时容忍n台宕机时,需要2n+1台副本(保证至少有一个副本收到消息)
2 全部确认
优点:重新选取leader,容许n台宕机,只需要n台副本
缺点:响应慢,

kafka 选择第二种方案
但是当同步时一个副本宕机,无法完成同步,就无法发送ack

ISR(同步副本):ISR确认,就可以返回ACK
follow (存活,响应最快,数据最多) 新版本中以响应最快为选取ISR副本条件,长时间未同步leader会移除ISR
生产者批量发送数据(leader), 每次发送,leader与ISR副本数据差值,会移除ISR,等同步完成后又移入ISR,多次操作消耗内存,所以去除数据量条件

当acks 为-1 时会不会丢失数据?
ISR 中只有一个leader , 当leader 确认后宕机,就会丢失数据

当acks 为-1 时 重复数据
follow 同步完成,还未确认时,leader 宕机,follow 中数据为新数据,但是生产者未收到ack ,则重发消息时会重复数据

当有三个follow , leader 宕机
队列1 数据8 条
队列2 数据10条

当队列1 为leader ,但是队列2 复活,这是队列数据出现差距,
LEO 最后同步位置,ISr 中每个副本中最小的LEO 为HW
HW 高水位 最小同步值(可见最大数据,消费者只能看到的最大数据)
最后一个数据 当新leader起来后,其他副本截取至hw位置

exactly once 精准一致性, 消息幂等性
(会话级别幂等)

消费者
消费者消费队列时,队列为空,会返回一个timeout ,消费者会等待一段时间消费

消费组与分区策略(消费者发生改变时,会触发分配策略)
轮询策略 消费者会将所有主题内的分区进行轮询
缺点 同一个组内有组员订阅 了不同的topic,出现消息混乱
range策略 默认策略,按主题发送给消费者

KAFKA保存offset
根据消费者组,分区,topic 保存offset

https://www.cnblogs.com/bigben0123/p/10900639.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值