Kafka入门知识点

Kafka是一个分布式消息中间件,用于处理大规模实时数据。它采用发布订阅模式,允许生产者发布消息到主题,消费者则订阅感兴趣的主题获取消息。通过分区和副本机制,Kafka提供高可用性和持久性。消息通过键和分区器算法决定存储位置,消费者通过偏移量有序读取数据。Kafka集群能确保数据冗余,提高系统的容错性。
摘要由CSDN通过智能技术生成

这里转载一篇B站上比较好理解的内容,非原创!转载连接小朋友也可以懂的Kafka入门教程,还不快来学_哔哩哔哩_bilibili

1、介绍

        Kafka是个消息发布于订阅的系统,可以想象一下公众号,作者把文章发布到平台上,阅读者只需要去订阅相应的公众号,有新文章发布的时候就可以阅读这篇文章了,这种发布者和阅读者没有直接沟通,而是通过中间站来传递消息就是发布于订阅模式了。这个模式是一种必然.....

当只有一个程序向另一个程序发送消息时:

        这只有一条链路。

当很多个应用程序向其他很多程序发送消息时:

    这个链路会变得复杂,出现这个情况可能还是可以接受的....

当链路越来越多时:

 

 这样链路太多容易造成三个问题:第一团队之间可能进行着重复的工作造成资源的浪费;第二当信息过多无法及时同步时,会造成信息的丢失;第三,各个程序之间相互依赖,耦合度太高,可能会牵一发而动全身。

这时候就需要一个中间的服务平台,Kafka就是这样一个东西。简单来说Kafka可以接收不同生产者消息,然后让不同消费者来订阅这些消息。

 2、消息、生产者、消费者

消息:可以认为是数据库里的一行数据;生产者:就是发布消息的程序;消费者:就是订阅消息的程序。Kafka就相当于一个管道,所有的生产者把消息扔到这里,所有消费者都从这里拿消息。

那就会有一个问题:消费者如何拿到自己想要的消息呢?主题(Topic)!

3、主题与分区

        生产者将消息放入Kafka时需要给消息分好主题,而消费者则会订阅不同的主题;比如圆宝宝只需要圆蛋蛋的主题,它就会订阅主题定语圆蛋蛋的消息,这样所有圆蛋蛋的消息圆宝宝都可以拿到,而且不会被方框框和小心心的消息干扰。

 一个主题里面可能会包含多个分区,分区可以分布在不同的服务器上,这样一个主题也就可以分布在多个服务器上,这样会比单个服务器更强大。

如下图所示,生产者会把消息放入到相应的主题的相应的分区下面,那应该怎么知道消息该放入哪个分区里呢?

        这里可以分为两种情况:1、生产者指定了分区;2、如果生产者没有指定分区,分区器会根据消息里的键来决定消息的去处.....

 4、分区器与键

键:就是一个标记;分区器:一个算法。

这样我们就知道一条消息包含了:主题、分区、键和值,这样它才能找到相应的去处。

那我们消费者如何读取数据呢? 

5、偏移量

消费者在读取数据的时候都是说“给我partion 0的第二个”,这个第几个就是偏移量了

 偏移量在写入的时候就已经被定义好了,我们的消费者在读取数据时都是根据偏移量来读取数据的。

1、偏移量(offset):第几个;2、一个分区里,每个消息的偏移量都是唯一的;3、消费者只能顺序读取

 6、Kafka

kafka使用主题来组织数据,每个主题被分为如干个分区,每个分区有多个副本。那些副本被保存在broker上,每个broker可以保存成百上千个属于不同主题和分区的副本。

 一个独立的kafka也称为broker,一个broker中可能有多个主题,每个主题里面又可能有多个分区,broker接收来自生产这的消息,为每个消息设置相应的偏移量,然后保存到磁盘里,broker也为消费者提供服务,响应消费者的请求。 如果有多个broker就会组成Kafka集群。

7、Kafka集群

 这是由两个broker组成的kafka集群,broker1里有主题:圆蛋蛋 分区1、主题:圆蛋蛋分区2;broker2里有主题:圆蛋蛋分区0、主题:圆蛋蛋分区1。这样的重复性保证了数据的安全,当broker1宕机了,broker2里的数据是完好的,可以从broker2内读取数据。

kafka集群中还需要一个broker来充当控制器的角色,可能要处理一些分区该分配给哪个broker,监控哪个borker挂机了这种事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值