1.producer可以控制发送message到哪个partition吗?发送到leader还是follower?
2.batching可以看作是什么的tradeoff?
batching可以看作speed-throughput tradeoff。
3.producer有哪些配置项?
bootstrap.servers只用写一个broker就可以,kafka会自动找到其它的broker。
也可以写多个,防止写一个broker而这个broker恰好挂了。
client.id就是一个字符串,比如’producer1’,主要是看日志时debug用的,该字段可选。
ack=0并不等broker确认收到,所以有可能丢失信息。但是这种方式可以得到最大的吞吐量。
ack=1的话只要leader收到消息并写到磁盘上了就确认,如果在follower replicate之前leader挂了,消息就丢失了。
ack=all的话则可以保证消息不丢失,但吞吐量肯定不行。
所以ack相当于是durability-throughput tradeoff.
4.配置producer的例子?
5.KafkaProducer的使用?