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、削峰
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!