0
点赞
收藏
分享

微信扫一扫

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

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

  1. 微服务,事件驱动的架构与kafka
  2. kafka 常见的应用场景
  3. kafka 的架构原理和相关术语
  4. kafka 的常见管理命令和运维工
  5. kafka 的高级特性和发展趋势
  6. kafka 的生态系统


90页PPT讲懂开源分布式流处理平台Kafka_微服务



01

事件驱动的架构与kafka


传统微服务的痛点:


- 横向扩展难 Scaling is hard


- 状态难管理 Handling state is hard


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


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


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

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

事件驱动架构的优点:


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

  • 如微服务之间异步解耦,不存在直接调用,互不影响;
  • 微服务内部可以灵活扩展以做到削峰填谷;
  • 各个微服务易修改和滚动上线;
  • 新增和删除微服务不影响已有微服务;
  • 整个系统的部署成本低等;

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

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

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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_07

90页PPT讲懂开源分布式流处理平台Kafka_微服务_08



02

Kafka常见的应用场景


  • 实时欺诈检测
  • 物联网IOT
  • 在线流媒体实时分析
  • 数据集成


90页PPT讲懂开源分布式流处理平台Kafka_微服务_09

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


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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_12

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

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

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



03

Kafka的架构原理和相关术语



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 


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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_17

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

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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_20

90页PPT讲懂开源分布式流处理平台Kafka_微服务_21

90页PPT讲懂开源分布式流处理平台Kafka_微服务_22

90页PPT讲懂开源分布式流处理平台Kafka_微服务_23

90页PPT讲懂开源分布式流处理平台Kafka_微服务_24

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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_26

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

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

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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_30

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

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

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

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

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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_36

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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_38

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





04

Kafka的管理命令和运维工具

Kafka常用命令:

Kafka-topics.sh –list –zookeeper node1:2181
Kafka-topics.sh –create –zookeeper node1:2181 –topic my-topic –replication-factor 2 –partitions 5
Kakfa-topics.sh –describe –zookeeper node1:2181 –topc my-topic
kafka-configs.sh --zookeeper localhost:2181 --describe --entity-type topics
kafka-topics.sh --zookeeper uf30tdh1:2181 --alter --topic xxx --config xx=yy
kafka-topics.sh --zookeeper uf30tdh1:2181 --alter --topic xxx --delete-config xx
Kafka-console-producer.sh –broker-list node1:9092 –topic my-topic
Kafka-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​​》

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

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

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

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

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

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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_46

90页PPT讲懂开源分布式流处理平台Kafka_微服务_47

90页PPT讲懂开源分布式流处理平台Kafka_微服务_48



05

Kafka的高级特性和发展趋势


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.


90页PPT讲懂开源分布式流处理平台Kafka_微服务_49

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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_51

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

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

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

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

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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_57

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

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

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

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

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

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

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

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

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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_67

90页PPT讲懂开源分布式流处理平台Kafka_微服务_68

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

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

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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_72

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


06

Kafka的生态系统


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

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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_76

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

90页PPT讲懂开源分布式流处理平台Kafka_微服务_78

90页PPT讲懂开源分布式流处理平台Kafka_微服务_79


90页PPT讲懂开源分布式流处理平台Kafka_微服务_80


视频和PPT获取方法:

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


举报

相关推荐

0 条评论