做宣传图片用什么网站阿里巴巴网站建设的背景
news/
2025/9/23 19:21:30/
文章来源:
做宣传图片用什么网站,阿里巴巴网站建设的背景,苏州区建设局网站,wordpress打分插件1. 简介
介绍 Kafka 的概述、优势和劣势#xff0c;以及应用场景。
2. 基本概念
2.1 架构
一个典型的 Kafka 体系架构包括若干 Producer、若干Broker、若干 Consumer#xff0c;以及一个ZooKeeper集群。
ZooKeeper是Kafka用来负责集群元数据的管理、控制器的选举等操作的…1. 简介
介绍 Kafka 的概述、优势和劣势以及应用场景。
2. 基本概念
2.1 架构
一个典型的 Kafka 体系架构包括若干 Producer、若干Broker、若干 Consumer以及一个ZooKeeper集群。
ZooKeeper是Kafka用来负责集群元数据的管理、控制器的选举等操作的。Kafka通过ZooKeeper来实施对元数据信息的管理包括集群、broker、主题、分区等内容。Producer将消息发送到BrokerBroker负责将收到的消息存储到磁盘中。而Consumer负责从Broker订阅并消费消息。Broker服务代理节点。对于Kafka而言Broker可以简单地看作一个独立的Kafka服务节点或Kafka服务实例。大多数情况下也可以将Broker看作一台Kafka服务器前提是这台服务器上只部署了一个Kafka实例。一个或多个Broker组成了一个Kafka集群。 2.2 Topic和Partition
Kafka中的消息以Topic为单位进行归类生产者负责将消息发送到特定的Topic发送到Kafka集群中的每一条消息都要指定一个主题而消费者负责订阅主题并进行消费。
Topic是一个逻辑上的概念它还可以细分为多个分区一个分区只属于单个Topic很多时候也会把分区称为主题分区Topic-Partition。同一Topic下的不同分区包含的消息是不同的分区在存储层面可以看作一个可追加的日志Log文件消息在被追加到分区日志文件的时候都会分配一个特定的偏移量offset。offset是消息在分区中的唯一标识Kafka通过它来保证消息在分区内的顺序性不过offset并不跨越分区也就是说Kafka保证的是分区有序而不是主题有序。
从Kafka的底层实现来说主题和分区都是逻辑上的概念分区可以有一至多个副本每个副本对应一个日志文件每个日志文件对应一至多个日志分段LogSegment每个日志分段还可以细分为索引文件、日志存储文件和快照文件等。 2.3 AR、ISR、OSR
分区中的所有副本统称为ARAssigned Replicas。所有与leader副本保持一定程度同步的副本包括leader副本在内组成ISRIn-Sync ReplicasISR集合是AR集合中的一个子集。消息会先发送到leader副本然后follower副本才能从leader副本中拉取消息进行同步同步期间内follower副本相对于leader副本而言会有一定程度的滞后。前面所说的“一定程度的同步”是指可忍受的滞后范围这个范围可以通过参数进行配置。与leader副本同步滞后过多的副本不包括leader副本组成OSROut-of-Sync Replicas由此可见ARISROSR。在正常情况下所有的 follower 副本都应该与leader 副本保持一定程度的同步即 ARISROSR集合为空。
2.4 HW、LEO
HW是High Watermark的缩写俗称高水位它标识了一个特定的消息偏移量offset消费者只能拉取到这个offset之前的消息。 LEO是Log End Offset的缩写它标识当前日志文件中下一条待写入消息的offsetLEO的大小相当于当前日志分区中最后一条消息的offset值加1。分区ISR集合中的每个副本都会维护自身的LEO而ISR集合中最小的LEO即为分区的HW对消费者而言只能消费HW之前的消息。
2.5 Producer
2.5.1 架构 整个生产者客户端由两个线程协调运行这两个线程分别为主线程和Sender线程发送线程。在主线程中由KafkaProducer创建消息然后通过可能的拦截器、序列化器和分区器的作用之后缓存到消息累加器RecordAccumulator也称为消息收集器中。Sender 线程负责从RecordAccumulator中获取消息并将其发送到Kafka中。
RecordAccumulator 主要用来缓存消息以便 Sender 线程可以批量发送进而减少网络传输的资源消耗以提升性能。RecordAccumulator 缓存的大小可以通过生产者客户端参数buffer.memory 配置默认值为 33554432B即 32MB。
2.6 Consumer与Group
消费者Consumer负责订阅Kafka中的主题Topic并且从订阅的主题上拉取消息。与其他一些消息中间件不同的是在Kafka的消费理念中还有一层消费组Consumer Group的概念每个消费者都有一个对应的消费组。当消息发布到主题后只会被投递给订阅它的每个消费组中的一个消费者。如果所有的消费者都隶属于不同的消费组那么所有的消息都会被广播给所有的消费者即每条消息会被所有的消费者处理这就相当于发布/订阅模式的应用。 3. 实践应用
3.1 普通消息
3.1.1 创建Topic
如果broker端配置参数auto.create.topics.enable设置为true默认值就是true那么当生产者向一个尚未创建的主题发送消息时会自动创建一个分区数为num.partitions 默认值为1、副本因子为default.replication.factor默认值为1的主题。 3.1.2 修改Topic
目前Kafka只支持增加分区数而不支持减少分区数。按照Kafka现有的代码逻辑此功能完全可以实现不过也会使代码的复杂度急剧增大。 3.2 顺序消息 3.3 延迟消息 3.4 广播消息 3.5 Reblance
Kafka 集群的broker 节点不可避免地会遇到宕机或崩溃的问题当分区的leader节点发生故障时其中一个follower节点就会成为新的leader节点这样就会导致集群的负载不均衡从而影响整体的健壮性和稳定性。
在 Kafka 中可以提供分区自动平衡的功能与此对应的 broker 端参数是 auto.leader.rebalance.enable此参数的默认值为true即默认情况下此功能是开启的。如果开启分区自动平衡的功能则 Kafka 的控制器会启动一个定时任务这个定时任务会轮询所有的 broker节点计算每个broker节点的分区不平衡率broker中的不平衡率非优先副本的leader个数/分区总数是否超过leader.imbalance.per.broker.percentage参数配置的比值默认值为 10%如果超过设定的比值则会自动执行优先副本的选举动作以求分区平衡。执行周期由参数leader.imbalance.check.interval.seconds控制默认值为300秒即5分钟。 4. 性能优化
介绍如何优化 Kafka 的性能例如主题分区配置、消息压缩等。 5. 常见问题解答
解答有关 Kafka 的常见问题。
5.1 kafka参数配置
5.1.1 生产者参数
参数详情acks 这个参数用来指定分区中必须要有多少个副本收到这条消息之后生产者才会认为这条消息是成功写入的。acks 是生产者客户端中一个非常重要的参数它涉及消息的可靠性和吞吐量之间的权衡。acks参数有3种类型的值都是字符串类型。 acks1。默认值即为1。生产者发送消息之后只要分区的leader副本成功写入消息那么它就会收到来自服务端的成功响应。acks0。生产者发送消息之后不需要等待任何服务端的响应。acks-1或acksall。生产者在消息发送之后需要等待ISR中的所有副本都成功写入消息之后才能够收到来自服务端的成功响应。max.request.size这个参数用来限制生产者客户端能发送的消息的最大值默认值为 1048576B即 1MB。retries和retry.backoff.ms retries参数用来配置生产者重试的次数默认值为0即在发生异常的时候不进行任何重试动作。重试还和另一个参数retry.backoff.ms有关这个参数的默认值为100它用来设定两次重试之间的时间间隔避免无效的频繁重试。
5.1.2 消费者参数
参数详情bootstrap.servers该参数的释义和生产者客户端KafkaProducer 中的相同用来 指 定 连 接 Kafka 集 群 所需 的 broker 地 址 清 单具 体 内 容 形 式 为host1port1host2post可以设置一个或多个地址中间用逗号隔开此参数的默认值为“”。group.id消费者隶属的消费组的名称默认值为“”。如果设置为空则会报出异常key.deserializer 和 value.deserializer与生产者客户端KafkaProducer中的key.serializer和value.serializer参数对应。消费者从broker端获取的消息格式都是字节数组byte[]类型所以需要执行相应的反序列化操作才能还原成原有的对象格式。这两个参数分别用来指定消息中key和value所需反序列化操作的反序列化器这两个参数无默认值。client.id这个参数用来设定KafkaConsumer对应的客户端id默认值也为“”。如果客户端不设置则KafkaConsumer会自动生成一个非空字符串。
5.1.3 broker参数
参数详情 5.2 kafka和Rocketmq比较 6. 总结
总结 Kafka 的关键知识点并提供学习资源和进一步研究方向。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913608.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!