Poll consumer information (Not recommended for large # of consumers if ZK is used for offsets tracking on older Kafka versions)
这个勾选了吗?
Poll consumer information (Not recommended for large # of consumers if ZK is used for offsets tracking on older Kafka versions)
这个勾选了吗?
springframework提供生成producer的DefaultKafkaProducerFactory工厂类,
它实现了DisposableBean的destroy方法,在应用结束时该destroy方法被调用,
在该方法中对producer进行优雅关闭,尽量将缓冲池的中的消息发送到kafka,避免消息的丢失。
———自己的观察:实际项目里关于生产者使用完如何关闭(【总结不对的地方请尽情指出】)
同样的异常:但是消费组里的Lag=0,不是消费者耗时导致了。
文档的Efficiency小节讲述了一个问题:kafka如何设计达到高吞吐量、低延迟?
kafka消息发送时,
a) kafka每次写入操作都只是把数据写入到操作系统的页缓存中,由操作系统自己把页缓存中的数据写回磁盘。操作系统页缓存是在内存中分配,消息写入速度非常快。
b) kafka写入操作采用追加方式,只能在日志文件末尾追加写入新的消息,且不允许修改已写入的消息,而磁盘顺序访问操作速度可与内存的随即访问相媲美。
kafka消费端消费时,kafka在读取消息时会首先尝试从OS的页缓存中读取,如果命中便把消息经页缓存直接发送到网络的socket上。
概括的讲,
a) 大量使用操作系统页缓存,内存操作速度快且命中率高
b) Kafka不直接参与物理I/O操作,而是交由最擅长此事的操作系统来完成
c) 采用追加写入方式,摒弃了缓慢地磁盘随机读/写操作
d) 使用以sendfile为代表的零拷贝技术加强网络间的数据传输效率
————摘自《Apache kafka实战》
Poll consumer information (Not recommended for large # of consumers if ZK is used for offsets tracking on older Kafka versions)
这个勾选了吗?
advertised.listeners:
它和listeners类似,该参数也是用于发布给clients的监听器,
不过该参数主要用于IaaS环境,比如云上的机器通常都配有多块网卡(私网网卡和公网网卡)。
对于这种机器,用户可以设置该参数绑定公网IP供外部clients使用,
然后配置listeners来绑定私网IP供broker间通信使用。
当然不设置该参数也是可以的,只是云上的机器很容易出现clients无法获取数据的问题,
原因就是listeners绑定的是默认网卡,而默认网卡通常都是绑定私网IP的。
在实际使用场景中,对于配有多块网卡的机器而言,这个参数通常都是需要配置的。
(摘自《Apache Kafka 实战》)