查看原文
其他

90页PPT讲懂开源分布式流处理平台Kafka

数据社 数据社 2022-10-15

大家好,我是一哥,上周末邀请明哥一起给大家分享了Kafka的相关知识点,内容主要分为以下6部分:

  1. 微服务,事件驱动的架构与kafka

  2. kafka 常见的应用场景

  3. kafka 的架构原理和相关术语

  4. kafka 的常见管理命令和运维工

  5. kafka 的高级特性和发展趋势

  6. kafka 的生态系统




01事件驱动的架构与kafka


传统微服务的痛点:


- 横向扩展难 Scaling is hard


- 状态难管理 Handling state is hard


- 微服务之间难以协同 Sharing, coordinating is hard


- 每个微服务对应一个数据库比较难落实 Run a database in each micro service - is hard


事件驱动架构的优点:


EDA 事件驱动架构的核心思想是pub-sub模式,微服务1 处理完逻辑后产生消息/事件,微服务2 订阅消息/事件并进行处理,微服务之间不需要知道彼此的存在,EDA 事件驱动架构具有分布式MQ所带来的所有优点:

  • 如微服务之间异步解耦,不存在直接调用,互不影响;

  • 微服务内部可以灵活扩展以做到削峰填谷;

  • 各个微服务易修改和滚动上线;

  • 新增和删除微服务不影响已有微服务;

  • 整个系统的部署成本低等;




02Kafka常见的应用场景


  • 实时欺诈检测

  • 物联网IOT

  • 在线流媒体实时分析

  • 数据集成






03Kafka的架构原理和相关术语



Topic:topic is a message stream (queue), to which messages are published;

Partitions :Topic is divided into partitions,which are ordered + immutable sequence of messages that is continually appended to;

Messages: Topic partitions contain messages;

Offset: Each messages in the partitions are assigned a unique (per partition) and sequential id called the offset 






04Kafka的管理命令和运维工具

Kafka常用命令:

Kafka-topics.sh –list –zookeeper node1:2181Kafka-topics.sh –create –zookeeper node1:2181 –topic my-topic –replication-factor 2 –partitions 5Kakfa-topics.sh –describe –zookeeper node1:2181 –topc my-topickafka-configs.sh --zookeeper localhost:2181 --describe --entity-type topicskafka-topics.sh --zookeeper uf30tdh1:2181  --alter --topic xxx --config xx=yykafka-topics.sh --zookeeper uf30tdh1:2181  --alter --topic xxx --delete-config xxKafka-console-producer.sh –broker-list node1:9092 –topic my-topicKafka-console-consumer.sh –bootstrap-server node1:9092 –topic my-topic –from-beginning/kafka-consumer-groups.sh --bootstrap-server broker1:9092 --list

Kafka常用管理工具:


Kafka Manager:该监控工具更偏向于对kafka集群的管理,也有监控;https://github.com/yahoo/kafka-manager/releases

Kafka-eagle: https://github.com/smartloli/kafka-eagle

Kafka实战宝典:监控利器kafka-eagle》

干货,实战滴滴开源Logi-KafkaManager



05Kafka的高级特性和发展趋势


kafka的事务机制,概括起来就是说,开启生产者事务后,消息是正常写到目标topic的,但会通过transaction coordinator 使用两阶段提交协议写标记到目标topic(具体的标记有对应 commit的也有对应rollback的);

没有开启事务的消费者,正常读取目标topic; 开启了事务的消费者,如果配置为 read-committed, 会根据目标topic中的marker过滤掉rollback的和尚未提交transaction的message,从而确保只读到已提交的事务的message;


日志文件中除了普通的消息,还有一种消息专门用来标志一个事务的结束,它就是控制消息 controlBatch,它有两种类型:commit和abort,分别用来表征事务已经成功提交或已经被成功终止。

RecordBatch中 attributes 字段的第6位用来标识当前消息是否是控制消息,1代表是控制消息,0则反之。

RecordBatch中attributes字段的第5位用来标志当前消息是否处于事务中,1代表消息处于事务中,0则反之。

由于控制消息也处于事务中,所以attributes字段的第5位和第6位都被置为1.





06Kafka的生态系统




视频和PPT获取方法:

关注下方公众号,回复 Kafka直播 即可获取下载链接


两万字Flink笔记


面试官系列:谈谈你对Flume的理解


基于Flink CDC打通数据实时入湖

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存