kafka
盼望成长
当你对一个事情掌控不足的时候,你需要做的就是“梳理”,并制定相应的规章制度,并使资源各司其职。
如果一件事情你觉得难的完不成,你可以把它分为若干步,并不断寻找合适的方法。最后你会发现你是个超人。不要给自己找麻烦,但遇到麻烦绝不怕,更不要退缩。
展开
-
Kafka开发问题解决思路
消息丢失解决方案:首先对 kafka 进行限速, 其次启用重试机制,重试间隔时间设置长一些,最后 Kafka 设置acks=all,即需要相应的所有处于 ISR 的分区都确认收到该消息后,才算发送成功消息重复解决方案:消息可以使用唯一 id 标识生产者(ack=all 代表至少成功发送一次)消费者 (offset 手动提交,业务逻辑成功处理后,提交 offset)落表(主键或者唯一索引的方式,避免重复数据)业务逻辑处理(选择唯一主键存储到 Redis 或者 mongdb 中,先查询是否存在,若原创 2020-12-11 09:19:19 · 332 阅读 · 0 评论 -
获取 Tcopic 主题列表
bin/kafka-topics.sh --list --zookeeper itcast:2181原创 2020-12-10 10:38:45 · 78 阅读 · 0 评论 -
Kafka 是咋样实现消息顺序性
kafka 每个 partition 中的消息在写入时都是有序的,消费时, 每个 partition 只能被每一个 group 中的一个消费者消费,保证了消费时也是有序的。整个 topic 不保证有序。如果为了保证 topic 整个有序,那么将 partition 调整为 1...原创 2020-12-10 10:37:38 · 909 阅读 · 0 评论 -
Kafka中的 ISR 、RAR 又代表什么? ISR 的伸缩又指什么
ISR:In-Sync Replicas 副本同步队列AR:Assigned Replicas 所有副本ISR 是由 leader 维护,follower 从 leader 同步数据有一些延迟(包括延迟时间replica.lag.time.max.ms 和延迟条数 replica.lag.max.messages 两个维度, 当前最新的版本0.10.x中只支持replica.lag.time.max.ms这个维度) , 任意一个超过阈值都会把follower剔除出 ISR, 存入 OSR(Outo原创 2020-12-10 10:35:17 · 243 阅读 · 0 评论 -
Kafka 和rbroker 进行基本优化
1. 网络和 IO 操作线程配置优化# broker 处理消息的最大线程数(默认为 3)num.network.threads=cpu 核数+1# broker 处理磁盘 IO 的线程数num.io.threads=cpu 核数*22. log 数据文件策略# 每间隔 1 秒钟时间,刷数据到磁盘log.flush.interval.ms=10003. 日志保存策略# 保留三天,也可以更短 (log.cleaner.delete.retention.ms)log.retention.hou原创 2020-12-10 10:29:10 · 193 阅读 · 0 评论 -
Kafka 的消息数据积 解决
数据积压主要可以从两个角度去分析:1. 如果是 Kafka 消费能力不足,则可以考虑增加 Topic 的分区数,并且同时提升消费 组的消费者数量,消费者数=分区数。 (两者缺一不可)2. 如果是下游的数据处理不及时:提高每批次拉取的数量。如果是因为批次拉取数据过少(拉取 数据/处理时间<生产速度) ,也会使处理的数据小于生产的数据,造成数据积压。...原创 2020-12-10 10:23:45 · 173 阅读 · 0 评论 -
kafka 需要用到选举吗?都有那些选举策略
一共有两处需要用到选举,首先是 partition 的 leader,用到的选举策略是 ISR;然后 是 kafka Controller,用先原创 2020-12-10 10:18:50 · 312 阅读 · 1 评论 -
生产过程中 tcopic 的数量不足或者有空闲可以增加或 者减少吗?为什么?
topic 的分区数只能增加不能减少,因为减少掉的分区也就是被删除的分区的数据难以处理。bin/kafka-topics.sh --zookeeper itcast:2181/kafka --alter \ --topic topic-config--partitions 3原创 2020-12-10 10:16:46 · 173 阅读 · 0 评论 -
Kafka 的压测
Kafka 官 方 提 供 了 压 测 脚 本 kafka-consumer-perf-test.sh 、kafka-producer-perf-test.sh。通过脚本执行可以检查是否存在一些瓶颈;producer 压测:/opt/cloudera/parcels/CDH/lib/kafka/bin/kafka-producer-perf-test.sh \--topic test --record-size 1000 --num-records 1000000 --throughput原创 2020-12-10 10:14:21 · 256 阅读 · 0 评论 -
Kafka 是怎么维护 offset
1.维护 offset 的原因:由于 consumer 在消费过程中可能会出现断电宕机等故障,consumer 恢复后,需要从故障前的位置的继续消费,所以 consumer 需要实时记录自己消费到了哪个 offset,以便故障恢复后继续消费。2. 维护 offset 的方式:Kafka 0.9 版本之前,consumer 默认将 offset 保存在Zookeeper 中, 从 0.9 版本开始, consumer 默认将 offset 保存在 Kafka 一个内置的 topic中,该 topic原创 2020-12-10 10:12:27 · 1328 阅读 · 0 评论 -
Kafka 集群的硬盘一共多大?日志保存多久?用什么监控 的?
集群硬盘大小:数据量线上项目每天/70%*日志保存天数;日志保存天数:7 天监控 kafka 方式:1:有些研发能力比较强的公司自己开发 kafka 监控;或者有些采用 cdh 配套的监控器2:采用第三方开源监控器:Kafka Manager、KafkaOffsetMonitor、Kafka WebConslole...原创 2020-12-10 10:11:01 · 496 阅读 · 0 评论 -
Kafka的使用(重要的场景)与传统队列的区别
1.Kafka 作为存储系统: 任何允许发布与使用无关的消息发布的消息队列都有效地充当了运行中消息的存储系统。Kafka 的不同之处在于它是一个非常好的存储系统。写入 Kafka 的数据将写入磁盘并进行复制以实现容错功能。Kafka 允许生产者等待确认,以便直到完全复制并确保即使写入服务器失败的情况下写入也不会完成。Kafka 的磁盘结构可以很好地扩展使用-无论服务器上有 50KB 还是 50TB 的持久数据,Kafka 都将执行相同的操作。由于认真对待存储并允许客户端控制其读取...原创 2020-11-20 16:36:48 · 413 阅读 · 0 评论 -
Kafka 于其他 MQ 对比
①RabbitMQ: RabbitMQ 是使用 Erlang 编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP,SMTP,STOMP,也正因如此,它非常重量级,更适合于企业级的开发同时实现了 Broker 构架,这意味着消息在发送给客户端时先在中心队列排队。对路由,负载均衡或者数据持久化都有很好的支持②Redis:Redis 是一个基于 Key-Value 对的 NoSQL 数据库,开发维护很活跃。虽然它是一个 Key-Value 数据库存储系统,但它本身支持 M...原创 2020-11-19 16:55:15 · 458 阅读 · 0 评论 -
查看kafka的版本号
find ./libs/ -name \*kafka_\* | head -1 | grep -o '\kafka[^\n]*'kafka_2.12-2.4.1.jar结果:就可以看到kafka的具体版本了。其中,2.12为scala版本,2.4.1为kafka版本。原创 2020-11-03 15:13:04 · 13466 阅读 · 0 评论 -
Kafka 如何优化内存缓冲机制造成的频繁 GC 问题?
Kafka 如何优化内存缓冲机制造成的频繁 GC 问题?目录 1、Kafka的客户端缓冲机制 2、内存缓冲造成的频繁GC问题 3、Kafka设计者实现的缓冲池机制4、总结一下“ 这篇文章,给大家聊一个硬核的技术知识,我们通过Kafka内核源码中的一些设计思想,来看你设计Kafka架构的技术大牛,是怎么优化JVM的GC问题的?1、Kafka的客户端缓冲机制首先,先得给大家明确一个事情,...原创 2019-10-24 18:08:52 · 599 阅读 · 0 评论