kafka入门相关概念

一、发布和订阅系统

想象成公众号,作者在公众号上写文章,读者订阅公众号看文章。

二、假如不用消息中间件,不用kafka

模拟一下,有6个J国的人,同时给6个G国的人投递东西,J国的每个人都要对应6个G国的人,而G国的每个人又要收到6个J国的人投递的东西。

那么当物件多的时候,两边都会很忙,而且会存在效率低,排队,甚至投递错的风险。

那么消息中间件的目的就是成立一个中转站,类似于外卖取餐柜,外卖小哥把餐放到取餐柜就可以走了,而点餐的人也不用第一时间下来取餐,而且外卖小哥和点餐者之间没有任何联系,也不用担心万一某个外卖小哥今天休假了,那么他对应的点餐者就没办法取餐。

三、相关概念

1、消息

就是数据,类似于快递,外卖。

2、生产者

就是向kafka发送数据的程序,类似于快递员,外卖小哥。

3、消费者

就是从kafka订阅消息,获取数据的程序,类似于点餐者,购买者。

4、主题(Topic)

给不同的数据加上标签,类似于不同的外卖不同的种类一样,火锅,冒菜,炒饭。。。。

这样消费者也可以根据标签获取自己想要的数据。

5、分区(Partition)

主题下面还有分区,这样可以将一个主题分布在多个服务器下面。

生产者如何确认将数据放入哪一个分区?

1、生产者可以指定分区:

比如:生产者指明了将数据放到主题1的分区1下。

2、生产者没有指定分区:

又要引入两个概念:

2.1、键:一个标记,每一个值,每一个数据都会对应一个标记。

2.2、分区器:一个算法,可以理解为输入一个键,通过计算返回告诉你应该去哪一个分区。

小结:那么一条消息将会包含以下信息:

主题、分区、键、值(具体数据)

 6、偏移量(offset)

分区里,各个消息的位置,1,2,3,4这样,也就是第几个的意思。

一个分区里,每个消息的偏移量是唯一的。

消费者只能顺序读取。 

7、kafka服务器(broker)

8、kafka集群:就是多个broker

数据重复性,保证数据的安全。万一其中一个broker宕机了,那么另外一个broker可以提供数据。

二、kafka的作用

1、解耦

2、异步

3、削峰

 

 

 

 

 

 

posted @   巴啦啦小花总  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示