![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kafka
文章平均质量分 72
HanJuly9569
热衷于探索世界的程序猿一枚…
展开
-
Kafka文章目录
Kafka文章目录 Kafka 解决了什么问题 生产者原理 Kafka 存储机制 Leader的选举及副本同步机制 Kafka HW及Epoch Kafka幂等性及事务原创 2021-03-06 16:17:36 · 73 阅读 · 0 评论 -
Kafka幂等性及事务
Kafka事务 事务就是保住消息消费的原子性和稳定性。 消息语义 at most once: 最多一次,发了就不管了,爱去哪里去哪里 at least once: 至少一次,一定要你给我回复了,我才停止发送 exactly once: 恰好一次,每条消息被精确的发送 以上前两种都是可以使用生产者ACK机制来实现的,但是精准的一次需要幂等性来协助。 注意幂等性不等于就实现了精确的一次,实际业务中还需要考虑消费者端的问题:比如消息写入数据库失败了之类的问题。 幂等性 每个生产者会被分配一个Pro原创 2021-03-06 16:07:14 · 236 阅读 · 0 评论 -
Kafka HW及Epoch
引用:HW与Epoch的讨论 HW存在的意义:(为了保持副本间可消费数据一致的标记) 保证多个副本之间的数据一致,否则因为同步的延迟的问题会出现多个副本间数据不一致的问题。 如果Leader重新选举,对于消费者来说还会出现跳跃消费数据,丢失数据的情况 保证当出现Leader切换后,能够消费的数据一致 HW存在的基础: LEO 日志末端位移,表示日志末端下一条数据的位移,如果它的值为10那么分区中存在0~9 10条数据,下一条的位移量是10 怎么样更新HW 简单的说:取LEO的最小值,就是保证所有的副本.原创 2021-03-06 15:45:24 · 682 阅读 · 0 评论 -
Leader的选举及同步机制
个人总结,请以官网为准 如有错误,欢迎指出 Leader的选举 Kafka Leader 选举分为三种 broker Leader 选举 副本 Leader 选举 消费组 Leader 选举 Broker 一个Broker即可以理解为一台机器,Broker主要负责监控管理分区和副本的状态。在分区与副本的状态发生变化时,做出对应的操作。比如:分区的Leader副本出现了故障,那么broker需要进行Leader 副本的选举。Broker中的Leader Broker 称为Controller控制器。.原创 2021-03-05 00:20:07 · 440 阅读 · 5 评论 -
Kafka 存储机制
个人总结,以官网为准 如有错误,欢迎指出 存储方式 在底层的硬盘上,kafka会在对应的配置目录下,创建topic-partitionId的目录,如下。如果是多broker的情况下,会使用partitionId % broker数量的值决定在哪个broker上。 副本分配算法如下: 将所有N Broker和待分配的i个Partition排序. 将第i个Partition分配到第(i mod n)个Broker上. 将第i个Partition的第j个副本分配到第((i + j) mod n)个Broke.原创 2021-03-04 23:29:28 · 895 阅读 · 1 评论 -
生产者原理
以下为个人总结,以官网为准 如有错误,欢迎指出 Kafka生产者有两个线程,一个为主线程,一个为Sender线程(它是一个守护线程) 消息发送后首先经历拦截器,在拦截器中可以对消息做一些统一的操作,比如:加上统一的标识 然后会被序列化为字节流 到达分区器,分区器主要是对消息去哪个分区做规划 做好分区规划后,消息到达了消息累加器,累加器是一个双端队列(每一个队列对应一个分区),然后将消息封装到ProducerBatch,ProducerBatch也是一个多消息的容器,它是可以不断想里.原创 2021-03-04 23:10:36 · 118 阅读 · 1 评论 -
Kafka 解决了什么问题
Kafka 解决了什么问题: 系统解耦(异步) 在复杂的分布式系统中,需要将系统拆解为多个小系统,小系统之间通过RPC通讯调用。 在复杂的调用链中,总是会出现前面的系统等待后面的系统的结果,这是由于各系统间的处理信息的速度不一致导致。 如果使用Kafka,就可以做到发送消息给kafka后就返回消息给用户,然后后面的系统异步的去处理。 削峰 在秒杀的系统中就需要减少后面系统处理消息的数量,不然就会崩溃。有人会问,难道Kafka就不会崩溃,理论它是什么也没做只是收发数据,所以肯定是比业务系统的能.原创 2021-03-04 22:52:41 · 401 阅读 · 1 评论