kafka的配置
1、kafka的配置
advertised.listeners=PLAINTEXT://10.109.30.170:9092 #这个是kafka发给客户端的配置,就是客户端需要用这个配置连接kafka,在虚拟环境下这个配置是很重要的,就是有那种内外网的环境
advertised.host.name
advertised.port
2、topic的配置
3、producer的配置
4、consumer的配置
props.put("consumer.timeout.ms", "100");
这个配置很重要,关乎取消息的阻塞的时间
默认-1,consumer在没有新消息时无限期的block。如果设置一个正值, 一个超时异常会抛出
kafka:异步、解耦、流量削峰、日志处理、消息通讯、缓冲能力、伸缩性、扩展性、可恢复性(可允许一部分组件短时间不可用)
kafka:ack机制和isr机制
kafka消息的拉取
kafka提交offset:
自动提交
异步提交
同步提交
自己维护offset(data与offset放在同一个事务里)【offset表的主键consumerGroup+Topic+Partition,offset】
kafka生产者分区策略:
指定分区
指定key
轮询
kafka的优点:1、索引加载到内存 2、追加磁盘的快速性 3、天生支持分布式 4、0拷贝复制 5、持久化 6、批量操作 7、pagecache 8、使用mmap技术,所以写入的时候不是直接写入磁盘的
kafka的缺点:实时性、全局有序性、依赖zookeeper、不支持amqp协议
Kafka为什么那么快
1、利用partition实现并行处理
2、顺序写磁盘
顺序写磁盘(删除策略:将partition分为多个Segment,每个Segment对应一个物理文件通过删除整个文件的方式删除partion内的数据)
3、page cache
page cache(对文件系统的缓冲),buffer cache(对磁盘扇区的缓冲);一个page cache包括多个buffer cache。kafka充分的利用了page cache。(完全可以由 Kafka 层面的 Replication 机制去保证可靠性)
4、零拷贝技术
(1)网络数据持久化到磁盘
mmap技术
(2)磁盘文件通过网络发送
send file技术
5、批处理技术
6、数据压缩技术
参考文献:
kafka的配置参数:https://www.cnblogs.com/metoy/p/4573880.html
kafka的配置文档:http://kafka.apache.org/documentation/#configuration