kafka使用时的一些总结

1.在kafka最新版kafka_2.12-1.0.0的config文件夹server.properties中可以看到num.partitions=1,这个代表每个topic默认的分区数量。当你创建topic时,如果不指定该topic的partition数量,那么默认就是1个分区。这意味着你的这个topic,最多只能被一个group的一个consumer消费,该group的其他consumer将无法获取到消息,也就是无法通过启动多个consumer进程来并行消费。可以通过在配置kafka时修改该值来设置topic默认的partition数量,视情况来定。

2.kafka的topic如果只有一个group来消费,那就相当于是一个消息队列,一个生产者,一个消费者。要实现如“发布-订阅”这样的功能,可以让多个group来消费同一个topic。

3.对于一个topic,如果被一个group消费,该group中能获得消息的consumer的数量不会超过该topic的partition。就是说某topic有10个partition,你有一个group在消费该topic,那么你最多启动10个consumer实例,再多的consumer将无法获取到任何消息。所以在试图启动多个客户端consumer来批量并行消费某topic时,请先确认该topic下的partition数量要大于等于你的consumer数量。

4.producer在生产消息时可以手工指定写入到哪个partition,如果不指定,producer会根据key来进行路由,如果连key也不指定,系统会根据partition数量进行random nextInt。目的是尽量让消息均匀分散到不同partition。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天涯泪小武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值