栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

kafka

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

kafka


每个应用是一个broker
每个broker中可以注册多个topic
每个topic中又可以有多个分区 topic-1、topic-2、topic-3、topic-4
每个分区又可以有多个副本,但不能超过broker的个数
这些副本中只有一个是lead,其余是follow


生产者可以指定topic去生产,消费者也可以指定topic去消费。假如一个topic下有多个partition,它的写是根据负载情况去写入的;消费者也不能去顺序消费。
每一个分区(partition)中消息都是有序的,而kafka也只能保证区内有序,不能保证每一个topic下有序,topic只是一个逻辑上的概念。


生产者发送消息,可能由于网络原因造成数据丢失,所以要kafka回复一个ack,这个ack可以设置半数同步后返回,也可以全部同步后在ack。

半数方案和全部方案

如果有一个副本延迟高,那么就会影像到整个集群。

acks参数配置
0:producer不等待ack 数据丢失
1:lead落盘后ack 数据丢失
-1:等待isr数据都同步后再ack 数据丢失、数据重复
ack可以保证数据不丢失(保证数据的可靠性),消息幂等性,由消费者自己控制。




HW和LEO保证数据一致性

消费者有一个消费者组,每个消费者组中有多个消费者,每个消费者组可以订阅一个或多个topic

生产者可以指定topic的partition去生产,消费者也可以指定topic的partition去消费(假如topic和group中只有一个的时候)

每个消费者消费的分区(partition)是不变的,这能消费分配给你的分区中的数据。只有当消费者增加或者减少的时候才会触发重新分配分区;当消费者比分区还多的时候,有的消费者是不消费数据的,可能你增加了消费者,但真正消费数据的消费者还是原来的那几个,它也是进行了重新分配,只不过命中的还是这几个。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/354315.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号