Apache Pulsar在智联的实践 2

展开查看详情

1.Apache Pulsar 在智联的实践 从消息队列列到基于Pulsar的Event Center 演讲者 / 李李鹏辉

2.⾃自我介绍 李李鹏辉 智联招聘 产品研发中⼼心-平台组 消息服务、事件中⼼心

3.什什么是 Event Center Event Center 的价值 从消息队列列 到 Event Center

4.Event Center初衷 产品 A 团队 A Event A Event B 产品 B 团队 B Event C Event … 产品 … 团队 … Event Center

5.Event 定义 platform/passport/user.login platform/passport/user.register { { { userName:”userA”, userName:”userA”, userName:”userA”, deviceType:”IPHONE”, mobile:”18888888888”, deviceType:”IPHONE”, loginRegion:”Beijing”, location:”Beijing”, loginRegion:”Beijing” loginTime:”2018-10-10 13:00:00” registerTime:”018-10-10 13:00:00” … … }… } } 我们要像定义⼀一个接⼝口⼀一样去定义⼀一个事件

6.Event 定义变化(1) platform/passport/user.login platform/passport/user.login { { { { userName:”userA”, userName:”userA”, userName:”userA”, userName:”userA”, deviceType:”IPHONE”, deviceType:”IPHONE”, deviceType:”IPHONE”, deviceType:”IPHONE”, loginRegion:”Beijing” loginRegion:”Beijing” loginRegion:”Beijing”, loginRegion:”Beijing” …… loginTime:”2018-10-10 … 13:00:00” } } }… }

7.Event 定义变化(2) platform/passport/user.login platform/passport/user.login.v2 { { { userName:”userA”, userName:”userA”, { userName:”userA”, deviceType:”IPHONE”, deviceType:”IPHONE”, userName:”userA”, deviceType:”IPHONE”, loginRegion:”Beijing” loginRegion:”Beijing” deviceType:”IPHONE” loginRegion:”Beijing” …… …… } } } }

8.Event 定义变化(3) platform/passport/user.login platform/passport/user.login.v2 { { { { userName:”userA”, userName:”userA”, userName:”userA”, userName:”userA”, deviceType:”IPHONE”, deviceType:”IPHONE”, deviceType:”IPHONE”, deviceType:1, loginRegion:”Beijing” loginRegion:”Beijing” loginRegion:”Beijing” loginRegion:”Beijing” …… …… } } } }

9.Event 定义校验 Event A Producer Event A Event Schema Event Schema Event Center

10.Event 消费⽅方式 团队 A Queue Streaming Event 团队 B Streaming 团队 …

11.Event 管理理 Event Center Team A Team B Product A Product B Product C Event A Event A Event A Event B Event B Event B Event C Event C Event C Event C Event C Event C

12.Event 数据保留留 Event Data 1⽉月1⽇日 1⽉月2⽇日 1⽉月3⽇日 1⽉月4⽇日 1⽉月5⽇日 1⽉月6⽇日

13.什什么是 Event Center 明确的格式定义、约束和定义变化管理理 ⼀一份数据⽀支持多团队、多消费模式 同⼀一平台分团队,分产品管理理 数据按时间或⼤大⼩小存储

14.核⼼心价值 完整的 Event 视图 user.login c.create Passport user.register c.update Resume … …

15.核⼼心价值 可追溯的 Event 数据 platform/passport/user.login 1⽉月1⽇日 1⽉月2⽇日 platform/passport/user.login.v2 1⽉月1⽇日 1⽉月2⽇日

16.从 消息队列列 到 Event Center (1) Topic A Thrift/Http/MQTT MQ Service Zookeeper

17.从 消息队列列 到 Event Center (2) Queue 业务系统 简历投递 Streaming Spark/Flink 两份数据如何保持⼀一致?

18.从 消息队列列 到 Event Center (3) 业务系统 eue Qu 简历投递 Str ea mi ng Spark/Flink

19.从 消息队列列 到 Event Center (4) ? ⽤用户登录 ? 谁可以确认发的消息到底是什什么?

20.从 消息队列列 到 Event Center (5) { userName:”userA”, deviceType:”IPHONE”, loginRegion:”Beijing”, loginTime:”2018-10-10 13:00:00” … } ⽤用户登录

21.总结 统⼀一了了Queue模式与Streaming模式 Event 定义标准 提供完整的 Event 菜谱 Event 追溯

22.我们在基于Apache Pulsar构建Event Center的⼀一些特性扩展

23.Client Metrics Prometheus ZK Pulsar Client Pulsar Client Pulsar Client

24.Event Tracing Interceptors Log 1 Before Send TraceId SpanId ParentId Sample 2 Send Acknowledge TraceId SpanId ParentId Sample 3 Before Consume TraceId SpanId ParentId Sample 4 Consume Acknowledge TraceId SpanId ParentId Sample

25.Service Url Provider (1) pulsar://172.17.5.170:6650 Pulsar Client ZK 172.17.5.170 172.17.6.170 172.17.7.170

26.Service Url Provider (2) pulsar://172.17.6.170:6650 Pulsar Client ZK 172.17.5.170 172.17.6.170 172.17.7.170

27.我们可以 ⼀一起探讨Event Center设计 ⼀一起探讨Event Center落地 ⼀一起探讨Apache Pulsar 可能还有更更多 Thanks