KafkaProducer剖析

来源:互联网 发布:网络技术支持工程师 编辑:程序博客网 时间:2024/06/09 16:38

KafkaProducer剖析

包含以下重要组成部分
1. accumulator
以[topic,partition]为维度收集应用调用send时的数据,每个维度是一个recordbatch链表,每个recordbatch保存着一批消息,内部采用bytebuffer进行存储,如果而bytebuffer大小刚好等于batch.size,则会使用内存池进行存放
2. sender
一个守护线程,负责监视accumulator中是否有可发送的recordbatch,如果有则以broker为维度收集要发往该broker的[topic, partition]数据;如果没有则会估算有可发送recordbatch的时间,并等待再触发检查accumulator,期间可能有被唤醒的情况
3. NetworkClient
对多路复用IO包装,使用一个selector监视所有broker;sender线程会在每次循环中调用poll方法,处理连接,发送sender收集到的要发往每个broker的数据,读取响应数据,触发回调
4. Mertrics
负责监视消息的大小,发送速度,发送延迟等,监控数据默认支持JMX的方式导出

0 0
原创粉丝点击