BATJ架构

kafka理论概念(01)

2020-06-30  本文已影响0人  裘马轻狂大帅

Kafka 中的术语

broker:中间的kafka cluster,存储消息,是由多个server组成的集群。

topic:kafka给消息提供的分类方式。broker用来存储不同topic的消息数据。

producer:往broker中某个topic里面生产数据consumer:从broker中某个topic获取数据

1.producer选择一个topic,生产消息,消息会通过分配策略append到某个partition末尾

2.consumer选择一个topic,通过id指定从哪个位置开始消费消息。消费完成之后保留id,下次可以从这个位置开始继续消费,也可以从其他任意位置开始消费

id在kafka中称为offset

3.offset独立的意义:

保证了消息不变性,为并发消费提供了线程安全的保证。每个consumer都保留自己的offset,互相之间不干扰,不存在线程安全问题

消息访问的并行高效性。每个topic中的消息被组织成多个partition,partition均匀分配到集群server中。生产、消费消息的时候,会被路由到指定partition,减少竞争,增加了程序的并行能力

增加消息系统的可伸缩性。每个topic中保留的消息可能非常庞大,通过partition将消息切分成多个子消息,并通过负责均衡策略将partition分配到不同server。这样当机器负载满的时候,通过扩容可以将消息重新均匀分配

保证消息可靠性。消息消费完成之后不会删除,可以通过重置offset重新消费,保证了消息不会丢失

灵活的持久化策略。可以通过指定时间段(如最近一天)来保存消息,节省broker存储空间

备份高可用性。消息以partition为单位分配到多个server,并以partition为单位进行备份。备份策略为:1个leader和N个followers,leader接受读写请求,followers被动复制leader。leader和followers会在集群中打散,保证partition高可用

1.每个Topics划分为一个或者多个Partition,并且Partition中的每条消息都被标记了一个sequential id ,也就是offset,并且存储的数据是可配置存储时间的

producer生产消息需要如下参数:

1.topic:往哪个topic生产消息。

2.partition:往哪个partition生产消息。

3. key:根据该key将消息分区到不同partition。

4. message:消息。

上一篇下一篇

猜你喜欢

热点阅读