没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
开源的分布式事件流平台
(Event Streaming Platform)
⾼性能数据管道,流分析,数据集成,关键任务应⽤
⼤数据场景⼀般采⽤
kafka
作为消息队列:缓存
/
削峰,解耦,异步通信
穿靴⼦的猫 wechat: sz1037289945
No. 1 / 29
基础架构
1. 消费模式
1.1 点对点-Queue
Consumer主动拉取数据,消息收到后清除
1.2 发布订阅-Topic
多个Consumer相互独⽴,都可以获取到数据
Consumer消费数据后,不会删除数据,默认有消息过期时间
Kafak只⽀持Topic模式
2. Kafka架构
2.1 Kafka Cluster + Zookeeper
# ⾼并发
- ⼀个topic的消息,根据分区策略,存储在不同server上对应的不同partition
# ⾼性能
- 配合partition设计,consumer通过consumer group,组内每个consumer并⾏消费不同partition的消息
# ⾼可⽤
- 为每个partition在其他节点引⼊副本,提供leader-follower机制,防⽌单点故障
穿靴⼦的猫 wechat: sz1037289945
No. 2 / 29
3. Java客户端
# 1. leader-follower机制
- producer和consumer: 只和leader节点通信
- leader获取数据后,会同步到follower节点
- leader挂掉后,follower有条件会成为新的leader
# 2. consumer group
- 消费组:同⼀个消费组内,不同的消费端去连接不同的partition,增⼤消费能⼒
- 同⼀个消费组内,不同的消费端不能连接同⼀个partition,否则就重复消费
- 同⼀个消费组内,⼀个消费端可以去消费不同partition
# 3. zookeeper
- 记录server节点状态
- 记录leader-follower相关信息
- kafka-2.8.0前,必须配合zk使⽤, 2.8.0后,去zk化
!<dependency>
! ! !<groupId>org.apache.kafka</groupId>
! ! !<artifactId>kafka-clients</artifactId>
! ! !<version>3.7.0</version>
!</dependency>
穿靴⼦的猫 wechat: sz1037289945
No. 3 / 29
Producer
APP客户端,调⽤Kafka的API,向Kafka Cluster端发送数据
1. Interceptors
拦截器:拦截消息,进⾏⼀些过滤,可以⾃定义,⼀般不使⽤
2. Serializer
序列化器:跨节点通讯,不⽤java⾃带的序列化, 采⽤轻量级序列化,避免序列化信息太多引发数据过⼤
对应的消费消息时候,也有反序列化⼯具
对key和value来进⾏序列化
# key, value
- key和value可以为任意类型的数据
- key可以不存在,value必须存在
穿靴⼦的猫 wechat: sz1037289945
No. 4 / 29
3. Partitioner
分区器:决定数据应该存放在哪个分区
3.1 分区优点
数据均衡
⼀个topic的所有数据通过分区规则,分别存在在不同的server上对应的partition
合理控制分区规则,可以达到数据均衡分布
⾼并发
producer: 可以以分区为单位发送数据
consumer: 可以以分区为单位消费数据
3.2 分区策略
分区数:0,1,2等, 根据broker节点向zookeeper注册时间和数⽬来判断
假如存在三个broker,那么有效分区就是0,1,2
穿靴⼦的猫 wechat: sz1037289945
No. 5 / 29
剩余28页未读,继续阅读
资源评论
飞翔荷兰号
- 粉丝: 60
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功