Kafka简介
Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:
以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。同时支持离线数据处理和实时数据处理。
微服务处理的速度,不如加入的速度,因此可能造成系统宕机,如果加入Kafka中可能保存数据
Topic指定一个名字是唯一的,传给相应的API,每个topic内部包括多个Partitions.不断增加的ID,
每个partition都有各自的offset,每当写入新的message到parition中后,该message都会赋予一个新的offset,通过offset来定位当前partition读取的位置。
Broker有自己的ID,
LeaderBroker是通过Kafka选举出来的,
和consumer相关,commit offset,at least once, 数据不会丢失,某些message不会被处理,重新处理的过程,如果1,2已经被处理了,第二次1,2,3会被重新处理,会出现重复的项,出现重复项