首页 > 其他分享 >Kafka概念

Kafka概念

时间:2022-12-02 14:32:16浏览次数:30  
标签:订阅 副本 Partition Kafka Topic 概念 leader

发布-订阅模型:kafka消息模型

发布-订阅模型主要是为了解决队列模型存在的问题。

发布订阅模型(Pub-sub)使用主题(topic)作为消息通信载体,类似于广播模式;发布者发布一条消息,该消息通过主题传递给所有的订阅者,在一条消息广播之后才订阅的用户则是收不到该条消息的。

在发布-订阅模型中,如果一个订阅者,那它和队列模型就基本是一样的。所以说,发布-订阅模型在功能层面上是可以兼容队列模型的。

Kafka将生产者发布的消息发送到Topic(主题)中,需要这些消息的消费者可以订阅Topic(主题)

1.Producer(生产者):产生消息的一方。

2.Consumer(消费者):消费消息的一方。

3.Broker(代理):可以看作是一个独立的Kafka实例。多个Kafka Broker组成一个Kafka cluster。

Broker又包含了Topic和Partition这两个重要概念。

Topic(主题):Producer将消息发送到特定的主题,Consumer通过订阅特定的Topic(主题)来消费消息。

Partition(分区):Partition属于Topic的一部分。一个Topic可以有多个Partition,并且通一个Topic下的Partition可以分布在不同的Broker上,这也就表明一个Topic可以横跨多个Broker。

Kafka为分区(Partition)引入了多副本(Replica)机制。分区(Partition)中的多个副本之间会有一个叫做leader的家伙,其他副本称为follower。我们发送消息会被发送到leader副本,然后follower副本才能从leader副本中拉取消息进行同步。

生产者和消费者只和leader副本交互,可以将其他副本理解为leader副本的拷贝,它们的存在只是为了保证消息存储的安全性。当leader副本发送故障时会从follower中选举一个leader,但是follower中如果有和leader同步程序达不到要求的参加不了leader的竞选。

Kafka的多分区(Partition)以及多副本(Replica)机制有什么好处呢?

1.Kafka通过给特定Topic指定多个Partition,而各个Partition可以分布在不同的Broker上,这样便能提供比较好的并发能力(负载均衡)。

2.Partition可以指定对应的Replica数,这也极大提高了消息存储的安全性,提高了容灾能力,不过也相应的增加了所需要的存储空间。



标签:订阅,副本,Partition,Kafka,Topic,概念,leader
From: https://blog.51cto.com/u_11315052/5907006

相关文章

  • Promies的概念 链式调用
    axios基于promis的API进行封装的Promise主要解决了异步操作回调函数的多层嵌套形成回调地狱的问题、Promise-概念及基本使用Promise可以用来解决上一节回调函数嵌套......
  • 科普 | 数据安全与网络安全(一)概念篇
    当我们介绍天空卫士的时候,通常会强调我们是一家专注于数据安全技术的企业。这时,“童鞋们”的脑子里是不是产生了一个大大的问号?What? 数据安全和网络安全有什么区别?Where?......
  • Python基础核心概念(1)
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 关键概念
    介绍HyperledgerFabric是分布式账本解决方案的平台,采用模块化架构,提供高安全性、弹性、灵活性和可扩展性。它被设计为支持以可插拔方式实现不同组件,并适应复杂的经济生态......
  • 为kafka配置SASL(简单认证安全)安全认证
    1.增加kafka_server_jaas.conf进入kafka的配置目录config:​​vimkafka_server_jaas.conf​​​​#增加如下内容:​​​​KafkaServer{​​​​org.apache.kafka.common.se......
  • kafka常用命令
    以下所有脚本需要在kafka安装目录的bin下执行1.创建topic:create_topic.sh​​.​​​​/kafka-topic​​​​.sh--create--zookeeperlocalhost:2181--replication-facto......
  • 使用systemctl启动kafka
    kafka依赖于zookeeper1.新建zookeeper配置文件:​​vim ​​​​/etc/systemd/system/zookeeper​​​​.service​​​​[Unit]​​​​Description=ApacheZookeeperserv......
  • ElasticSearch集群概念
    单机存在的问题单台Elasticsearch服务器提供服务,往往都有最大的负载能力,超过这个阈值,服务器性能就会大大降低甚至不可用,所以生产环境中,一般都是运行在指定服务器集......
  • WEB-RTC 基础概念和架构
    参考文章:WebRTC简介;从0搭建一个WebRTC,实现多房间多对多通话,并实现屏幕录制;架构:经典三层结构:Webapp层(应用层):Web开发者开发的程序,Web开发者可以基于集成Web......
  • 【译】Apache Kafka 快速入门
    编译自官方文档。第1步:获取Kafka下载最新版本(当前为v3.3.1)的Kafka并解压:$tar-xzfkafka_2.13-3.3.1.tgz$cdkafka_2.13-3.3.1第2步:启动Kafka环境注......