前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >90页PPT讲懂开源分布式流处理平台Kafka

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

作者头像
数据社
发布2021-10-26 15:10:11
9190
发布2021-10-26 15:10:11
举报
文章被收录于专栏:数据社数据社

大家好,我是一哥,上周末邀请明哥一起给大家分享了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所带来的所有优点:

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

02

Kafka常见的应用场景

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

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

04

Kafka的管理命令和运维工具

Kafka常用命令:

代码语言:javascript
复制
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

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.

06

Kafka的生态系统

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
批量计算
批量计算(BatchCompute,Batch)是为有大数据计算业务的企业、科研单位等提供高性价比且易用的计算服务。批量计算 Batch 可以根据用户提供的批处理规模,智能地管理作业和调动其所需的最佳资源。有了 Batch 的帮助,您可以将精力集中在如何分析和处理数据结果上。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档