网站安全防护措施,设计网站源码,代理网页游戏需要什么条件啊,找程序员的网站Kafka基本讲解
一#xff1a;Kafka介绍
Kafka是分布式消息队列#xff0c;主要设计用于高吞吐量的数据处理和消息传输#xff0c;适用于日志处理、实时数据管道等场景。Kafka作为实时数仓架构的核心组件#xff0c;用于收集、缓存和分发实时数据流#xff0c;支持复杂的…Kafka基本讲解
一Kafka介绍
Kafka是分布式消息队列主要设计用于高吞吐量的数据处理和消息传输适用于日志处理、实时数据管道等场景。Kafka作为实时数仓架构的核心组件用于收集、缓存和分发实时数据流支持复杂的实时数据处理实时需求分析实时报表等应用。
二Kafka基本架构图 基本讲解 zookeeper统一管理kafka集群 1保存kafka相关的元数据 2负责Kafka集群的整体协调和管理 3在Kafka集群中当某个节点如Broker或分区领导者Leader出现故障时ZooKeeper能够协助进行故障检测和恢复 Producer生产者 向kafka发送消息通过【轮询写入】方式使得消息数据均匀分布即传数据给kafka。 Consumer消费者 从kafka中获取消息数据进行消费一般有三种策略可选订阅模式正则模式指定模式。 Kafka集群 Broker一台Kafka服务器一般是一个Broker【主要由该机器的核数来决定】一个集群由多个Broker组成一个Broker可以容纳多个Topic。 Topic主题是数据的逻辑分类单位用于管理和组织消息流Topic类似于mysql数据库中的库。Topic分为多个partition存放于不同的kafka服务器上。 partition分区每个Partition分区是一个有序的队列(分区有序不能保证全局有序) Leader每个partition分区都有一个leader领导者负责处理该分区的所有读取和写入数据操作生产者和消费者都面对leader对象进行操作。 Replica特殊的Follower。 Follower每个partition分区含有多个follower跟随者主要用于与leader领导者同步数据保持数据的一致性。当leader失效时会从中选一个follower成为新的leader。
三Kafka特点
1、多副本机制
1.1.容错性In-Sync Replicas同步副本集 讲解 在每个partition分区内部中都含有一个leader领导者和多个follower跟随者。 其中可将其分为ISR队列此处为三个和Followers两部分。 正常状态消息数据写入队列 1、消息数据写到ISR队列中的每一个节点上Leader和replica当写入所有的ISR队列后才可以进行下一个消息的写入。 2、Followers中节点可以同步Leader数据且并无时间限制时间可长可短。 Leader失效场景 当Leader失效时会在ISR队列中选取一个作为新的Leader继续工作同时会在Followers中选取一个进入ISR队列中。
1.2.读写分离
Leader 负责写操作I S R 中任何一个 replica 都可以读操作
2、多分区MPmultiple partitions
每个Topic主题可以被划分成多个分区partition每个分区在物理上可以存储在不同的Broker节点上。
主要优势 低延时负载均衡Kafka集群可以在多个Broker节点上均匀地分布分区使得每个Broker负责处理的分区数量相对均衡【Topic主题分区数量最优设计节点数*物理核数】方便在集群中集成和扩展Kafka提供了丰富的客户端API支持多种编程语言如Java、Python、Go、Scala等。同时每个partition通过调整以适应它所在的机器水平扩展而一个Topic又可以有多个partition组成因此整个集群可以适应适合的数据从而达到扩缩容效果。 3、零拷贝
数据可以直接从磁盘传输到网络接口避免了传统I/O操作中的多次内存拷贝和上下文切换,提高数据传输效率。
4、产销解耦
基本讲解 Kafka作为一种分布式消息中间件。生产者只需要将数据发送到Kafka的特定主题Topic中无需知道数据的具体消费者是谁消费者只需要从Kafka订阅特定的主题并拉取数据进行处理无需知道数据的来源是从何而来【生产者 — Kafka — 消费者】 生产者数量分区数 个生产者**【轮询写入】均匀分布**。 消费者数量分区数 个消费者一对一读取并行消费。 分布式最佳效果spark处理的算子分区数(spark并行度) kafka的分区数(有多少个队列)【分区上限主要由核数决定】。
四消费者策略读取数据方式
Kafka为消费者提供了三种类型的订阅消费模式subscribe订阅模式、SubscribePattern正则订阅模式、assign指定模式。
subscribe与SubscribePattern讲解
基本认知 subscribe订阅模式与SubscribePattern正则订阅模式原理基本一致。 区别subscribe订阅模式适用于【单主题】SubscribePattern正则订阅模式适用于【多主题】。 讲解
客户端提供groupId和订阅的主题topic会先找到这个groupId为123所对应的主题topic其中会有记录其offset偏移量然后通过这个这个offset偏移量继续从test01中进行数据的读取操作。
assign讲解 讲解
Redis与客户端之间进行数据交互会将offset偏移量存储于Redis中。客户端提供topic主题给Redis与offset形成键值对的形式进而可以从test01中进行数据的读取操作。
五Kafka命令讲解shell 控制台处理
1、查看主题
# --bootstrap-server kafka的地址:端口号
kafka-topics.sh --list --bootstrap-server single:90922、创建主题
# --topic 主题名称
# --partitions 分区数
# --replication-factor 每个分区的副本数
# --bootstrap-server kafka的地址:端口号
kafka-topics.sh --create --topic test01 --partitions 1 --replication-factor 1 --bootstrap-server single:90923、查看主题详情
# --topic 主题名称
# --bootstrap-server kafka的地址:端口号
kafka-topics.sh --describe --topic test01 --bootstrap-server single:90924、创建控制台【生产者】
# --topic 主题名称
# --broker-list single:9092 指定主题
kafka-console-producer.sh --broker-list single:9092 --topic test01 /root/ebs_act_log/transaction_log/part-00001在Kafka客户端工具中 5、创建控制台【消费者】
# --bootstrap-server kafka的地址:端口号
# --topic 主题
# --property print.keytrue
kafka-console-consumer.sh --bootstrap-server single:9092 --topic test01 --property print.keytrue --from-beginning6、删除主题和数据不能被正在生产或消费
kafka-topics.sh --bootstrap-server single:9092 --delete --topic test01Kafka实战Scala操作
Kafka实战Scala操作