Kafka
完美缺陷
书到用时方恨少事非经过不知难
展开
-
kafka生产者消息如何分区 和 压缩算法
一、 生产者消息如何分区kafka的消息组织结构是: topic(主题)--partition(分区)--record(消息),topic下的每条record只会保存在某一个partition中。分区的主要作用,就是提供负载均衡的能力,分区是部署在不同节点的机器上,通过加节点来提升系统的吞吐量。在考虑系统的分区策略时,一般有,将消息数据均匀地分配到各个分区上,或者,按具体业务规则实现某...原创 2019-08-28 15:44:42 · 1599 阅读 · 0 评论 -
kafka控制器组件Controller
控制器组件(Controller),是 Apache Kafka 的核心组件。目前,kafka控制器组件Controller依赖Apache ZooKeeper。其主要作用是在 ZooKeeper 的帮助下管理和协调整个 Kafka 集群。集群中任意一台 Broker 都能充当控制器的角色,而且,在运行过程中,有且只有一个 Broker 会成为控制器。那么,哪一个Broker会成为控制...原创 2019-09-09 09:37:40 · 288 阅读 · 0 评论 -
kafka是怎么处理请求的
kafka请求,分2大类:1. 控制类请求:执行特定的kafka内部动作的,比如更新leader和follower副本,leaderAndlsr请求和stopReplica请求。2. 数据类请求:生产和消费请求,有 produce 和fetch请求。控制类请求的优先级高于数据类请求。处理流程如下:1. 客户端(包括ZK,Broker,clients)把请求发到Broker上,S...原创 2019-09-06 10:35:35 · 347 阅读 · 0 评论 -
Kafka消息交付可靠性保障以及精确处理一次语义的实现
kafka对producer和consumer要处理的消息提供3中承诺:at most once: 最多一次,消息可能会丢失,不会重复发送at least once: 至少一次,消息不会丢失,可能重复发送。Kafka 默认这种方式,当网络瞬时抖动,broker的应答无法成功发送给producer端,那么producer不确定消息写入是否成功,会选择重新发送一次。exactly once...原创 2019-09-05 14:50:14 · 492 阅读 · 0 评论 -
消费者组 Consumer Group 和 重平衡 Rebalance
kafka设计了consumer group:具有可扩展性和容错性的consumer机制,consumer group有3个特性:1. Consumer Group 下可以有一个或多个 Consumer 实例。2. Consumer Group有唯一标识Group ID,它是一个字符串。3. Consumer Group 下所有consumer订阅的主题的单个分区,但是只能分配给组内的某...原创 2019-09-04 13:28:08 · 8298 阅读 · 1 评论 -
Kafka 疑问之offset位移
1. offset位移不要搞混,offset位移会存放在2个地方: __consumer_offsets分区位移主题中,和consumer端。__consumer_offsets中:consumer group将位移数据保存在broker partition端的内部主题中,consumer.poll时,拉取消息前会把位移数据作为普通的kafka消息,提交到位移主题(__consum...原创 2019-09-03 16:15:09 · 1489 阅读 · 0 评论 -
kafka集群参数配置
kafka可配置参数有很多,2.2版本中broker就将近200个参数,topic大概25个。绝大多数采用默认值即可,下面就说下一般不采用默认值的一些配置参数的设置。broker参数:log.dirs:信息储存在磁盘哪里,设置多个路径,比如:/home/kafka1,/home/kafka2,/home/kafka3。最好这些dirs是mount到不同物理磁盘上。好处是:提升读写性能、...原创 2019-08-27 11:33:30 · 2696 阅读 · 1 评论 -
什么是kafka
Kafka是一款消息引擎系统,也是分布式流处理平台。顺便说下,作为消息引擎系统Kafka的对手有Pulsar,分布式流处理平台有Flink,略强于kafka。很多人说kafka和传统mq到底有什么区别?太具体的请自行度娘,这里讲几点:1. 从宏观角度讲,传统mq是消息队列,kafka是消息引擎系统和流处理平台,前者小而全,后者大,有些方面考虑的没那么全,比如支持协议,rabbitMQ支...原创 2019-08-23 14:42:02 · 299 阅读 · 0 评论 -
怎么重设消费者组位移
重设策略一、 位移维度Earliest: 把位移调整到当前最早位移处,不一定是0,因为很久以前的消息可能被自动删除了 Latest:把位移调整到当前最新位移处 Current:把位移调整到当前最新提交位移处 Specified-Offset:把位移调整到指定移处 Shift-By-N:把位移调整到指定移处+N处,N允许负数二、时间维度DateTime:把位移调整到...原创 2019-09-10 09:48:51 · 323 阅读 · 0 评论