kafka点滴

~Kafka的目的就是要成为一个队列平台,仅仅使用它就能够既支持离线又支持在线使用这两种情况

~consumer group是接收消息的最小单位,也就是consumer group消费的消息只由其中的一个consumer接收。

~每个kafka队列都有分区数,每个分区在物理上对应一个文件夹, 以”topicName_partitionIndex”的命名方式命名,该文件夹下存储这个分区的所有消息(.log)和索引文件(.index),这 使得Kafka的吞吐率可以水平扩展。

~同一Topic的一条消息只能被同一个Consumer Group内的一个Consumer消费,但所有监听此topic的Consumer Group都会消费这一消息。consumer group同时实现其他MQ的队列和主题的特性。

~kafka的生产者是push,消费者是pull方式。

push模式很难适应消费速率不同的消费者,因为消息发送速率是由broker决定的。push模式的目标是尽可能以最快速度传递消息,但是这样很容易造成Consumer来不及处理消息,典型的表现就是拒绝服务以及网络拥塞。而pull模式则可以根据Consumer的消费能力以适当的速率消费消息。

~一个topic的分区数在创建时指定,当一个consumer group的consumer instance不大于分区数时,每个消费者的消费的消息是有序的。但不同分区上的消费者消费的消息是不保证有序的。

 

 

 

http://blog.csdn.net/derekjiang/article/details/9053863/

 

猜你喜欢

转载自qgl.iteye.com/blog/2317362