![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
kafka核心技术与实战
文章平均质量分 57
kafka核心技术与实战学习笔记
ZyyIsPig
这个作者很懒,什么都没留下…
展开
-
38 调优kafka
swappiness的值是个参考值,是否会发生swap跟当前是哪种page reclaim及系统当前状态都有关系,所以设置了swappiness=0并不代表一定没有swap发生,同时设为0也确实会可能发生OOM。swappniness的值范围是0-100,数值越低,操作系统越倾向于在物理内存中保存进程数据;3.swap空间设置,将swappniness设置成很小的一个值比如1~10,防止linux OOM Killer 开启随意杀掉进程。在linux操作系统中用于限制进程能够打开的文件描述符的最大数目。原创 2024-01-04 00:13:08 · 846 阅读 · 0 评论 -
27高水位和leader epoch
kafka leader epoch原创 2023-12-11 09:04:26 · 72 阅读 · 0 评论 -
24 请求是如何被处理的
当然这里所说的顺序性是指同一个producer发送消息的顺序性,多个producer同时发送消息,本来也无法确定哪个producer发送的消息在前,哪个producer发送的消息在后。3.当 IO 线程处理完请求后,会将生成的响应发送到网络线程池的响应队列中,然后由对应的网络线程负责将 Response 返还给客户端。将网络处理的线程数和IO处理的线程数解耦,达到高性能和资源少占用的目的。因为Kafka会记录请求是被哪个网络线程接收的,因此发送response时还会发往那个网络线程。9.保证分区的顺序性。原创 2023-12-06 00:28:26 · 61 阅读 · 0 评论 -
29 kafka动态配置
线上运行的kafka broker修改配置需要重启的话,影响比较大。需要一个不需要重启就能使参数生效的功能。原创 2023-12-03 23:48:40 · 277 阅读 · 0 评论 -
28 主题管理
因为多个broker都冗余有broker分区的数据,减少分区需要将该分区的数据迁移到其他分区。如果是按key hash选的分区,就不知道要迁移到哪里了。7.怎么优雅停止集群中的broker,一个broker可能是controller,也可能是几个分区的leader,可以考虑减少这台broker的职责。6.新增分区后,如果之前是按key保证消息的有序性,新增后会导致指定key被分配到其他分区。执行kafka-topics脚本,删除操作是异步的,执行完脚本只是把主题标记为已删除。什么是controller?原创 2023-11-30 00:25:19 · 74 阅读 · 0 评论 -
25 kafka消费者组重平衡
1.位置主题&写调整复习 (TODO)2.重平衡是通过心跳线程的心跳请求来通知的,需要重平衡则请求响应REBALANCE_IN_PROGRESS。0.10.1.0版本后心跳线程和消息消费线程分离,避免了消息消费时间长影响心跳。heartbeat.interval.ms参数控制心跳请求频率也控制重平衡频率。原创 2023-11-13 00:26:59 · 586 阅读 · 0 评论 -
14 幂等生产者和事务生产者
2.如何保证消费者精确一次消费:kafka事务只保证Producer到Kafka Broker的消息不重复不丢失,Consumer端由于提交偏移量和消息处理的顺序有前有后,依然可能导致重复消费或者消息丢失,如果要实现消费者端精确一次消费,还需要额外的机制实现偏移量提交和消息消费的事务处理。一个幂等的Producer,保证单分区的幂等性,Producer消息会发给主题的多个分区,每个分区都保证幂等性,实际上就是实现了多分区的幂等性。1.只能保证单分区的幂等性,即只能保证某个主题的某个分区上不出现重复的消息。原创 2023-10-17 01:13:06 · 232 阅读 · 0 评论 -
08 集群参数配置(下)
写入到页缓存即认为成功。如果在flush之前机器就宕机了,的确这条数据在broker上就算丢失了。如果是acks=1而恰恰是leader broker在flush前宕机,那么的确有可能消息就丢失了,而且producer端不会重发——因为它认为是成功了。kafka认为写入成功是指写入页缓存成功还是数据刷到磁盘成功算成功呢?还是上次刷盘宕机失败的问题,页缓存的数据如果刷盘失败,是不是就丢了?这个异常会不会响应给生产者让其重发呢?Kafka Broker不需要太大的堆内存?应该把内存留给页缓存使用?原创 2023-10-07 22:39:07 · 209 阅读 · 0 评论 -
11 无消息丢失配置
kakfa若干年broker成功收到一条消息并写入日志文件后,会告诉生产者程序这条消息已经成功提交。原创 2023-10-01 11:17:26 · 177 阅读 · 0 评论 -
06 Kafka线上集群部署方案
kafka部署在linux上,可以用到linux的零拷贝提升网络传输效率,提高kafka的吞吐量。利用零拷贝可以使数据不经过用户态直接通过网卡发送给接收方,同时通过DMA技术,使CPU得到解放,实现数据的高性能传输。原创 2023-09-03 17:58:04 · 675 阅读 · 0 评论 -
09 生产者分区机制
可以通过key-ording策略解决。kafka可以为每条消息定义消息键,也称为key,通常是带有业务属性的比如用户id之类的。有相同消息键的消息会被发到同一个分区。下面实现了这个策略,对hashcode进行取模来决定发到哪个分区。kafka默认的分区策略,如果key有值就使用key-ordering策略,如果没有值就使用轮训策略。原创 2023-08-29 08:45:32 · 365 阅读 · 0 评论 -
01 消息引擎系统
kafka最经常被提到的作用是是削峰填谷,即解决上下游TPS的错配以及瞬时峰值流量,如果没有消息引擎系统的保护,下游系统的崩溃可能会导致全链路的崩溃。还有一个好处是发送方和接收方的松耦合,一定程度上简化了应用的开发。原创 2023-08-26 23:25:02 · 471 阅读 · 0 评论