Kafka简介

Kafka是一个分布式消息队列,具有高性能、持久化、多副本、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。

Kafka对外使用topic概念,生产者往topic里写消息,消费者从topic中读消息。为了做到水平扩展,一个topic实际是由多个partition组成的,遇到瓶颈时,可以通过partition的数量来进行横向扩容。Kafka的数据是按照一定顺序持久化保存,单个partition内是保证消息有序。

Kafka拓扑结构

Broker: 一个独立的Kafka服务器被称为Broker。Broker接收来自生产者的消息,为消息设置偏移量,并提交消息到磁盘保存。broker为消费者提供服务,对读取分区的请求作出响应,返回已经提交到磁盘上的消息,

Topic: 主题,消息源。Kafka的消息按照主题进行分类。主题好比数据库的表,或者文件系统里的文件夹。主题可以被分为若干个分区,即一个表中有多个列,或者一个文件系统的文件夹中有多个文件。

Partition: 分区,一个分区就是一个提交日志,消息以追加的方式写入分区,然后以先入先出的顺序读取。由于一个主题一般包含多个分区,因此,无法在整个主题范围内保证消息的顺序,但是,可以保证消息在单个分区内的顺序。

Producer : 生产者,创建消息。默认情况下,把消息均衡地分不到主题的所有分区上,而并不关心特定消息会被写到哪个分区;某些情况下,生产者会把消息直接写到指定的分区,通过消息键和分区器来实现,分区器为建生成一个散列值,并将其映射到指定的分区上。

Consumer: 消费者,读取数据。消费者订阅一个或多个主题,并按照消息生成的顺序读取它们。消费者通过检查消息的偏移量来区分已经读取过的消息。

ConsumerGroup: 消费者组,可以并行消费主题中的分区的消息的消费者组合。

偏移量: 偏移量是一个不断递增的整数值,在创建消息时,Kafka会把它添加到消息里。在给定的分区里,每个消息的偏移量都是唯一的。消费者把每个分区最后读取的消息偏移量保存在zookeeper或Kafka上,如果消费者关闭或重启,他的读取状态不会丢失。

Message: 消息,通信的基本单位,每个producer可以向一个主题发布一些消息。Message是以主题为基本单位组织的。Message包含三个属性,分别为offset、MessageSize和data。

Producers: 消息和数据生成者,向Kafka的一个topic发布消息的过程叫做producers 。

Consumers: 消息和数据消费者,订阅topic并处理其发布的消息的过程叫做consumers。

参考

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 看自己写的 一个个 文字 似看到 轮廓的 自己 这轮廓还粗 这自己还模糊 就这样 真情的粗 真实的糊 2019.01.
    北岸地阅读 353评论 2 7
  • 和我的爸爸在家,午饭是爸爸做的,看他弄了一个上午,到了吃饭时,发现是酸菜鱼,我又惊又喜。等不及麻麻下班回家,我就偷...
    小小叮当猫阅读 150评论 0 0
  • 《新锐苗木人归途》以前绿化苗木市场行情好的时候,大家都一起大碗喝酒,大块吃肉。但是,由于苗木市场精细化程度加深,市...
    萧疏萧老大阅读 247评论 0 0
  • 6月份 来住·H 没抢到? 9月份来住·千屿来了! 对多彩投平台的许多投资人来说,“来住”这个品牌并不陌生。 20...
    四肢松鼠阅读 731评论 0 0
  • 张德芬在《预见未知的自己》中提到:“凡是你抗拒的,都会持续,这些负面情绪就像黑暗一样,你驱散不走它们,你唯一可以做...
    轻音yc阅读 255评论 0 0