Presentation is loading. Please wait.

Presentation is loading. Please wait.

Bigpipe 简化HTTP异步调用.

Similar presentations


Presentation on theme: "Bigpipe 简化HTTP异步调用."— Presentation transcript:

1 bigpipe 简化HTTP异步调用

2 低延迟接口 高延迟接口 同步调用 低延迟接口 高延迟接口 异步调用 bigpipe登场!

3 小红说:替我把鸭子运给小明 给你鸭子,小明
Client Call Producer Kafka Consumer Server

4 bigpipe core common kafka server producer consumer client slow fast
log stats proto util config

5 call curl localhost:10086/rpc/call -d ‘ { "acl": { "name": "system-1",
"secret": "i am good" }, "url": " "data": "hello ", "partition_key": "暂时用不到" } ' "data": "", "errno": 0, "msg": "发送成功"

6 stats

7 模块划分

8 config 包:json、ioutil 功能:读取配置文件,解析Json

9 server 相关配置: 包:net/http 功能:http协议、并发服务端 go go go go http.Server
handler go main listener go go handler go handler

10 client 相关配置: 包:net/http 功能:http协议、并发客户端,限流,限并发,重试 go go request go
http.Client 系统A go 限并发 限流 consumer 系统B request go go channel 令牌桶 系统C

11 producer 相关配置: 包:confluent-kafka-go 功能:发送消息给kafka 消息 call 取走 投递 结果 事件
server hash分区 produce channel 取走 投递 confluent kafka call 结果 事件 handler event channel

12 consumer 相关配置: 包:confluent-kafka-go 功能:从kafka读取消息 消费 go 拉取 consumer
events channel 消费 consumer group - 1 main events channel confluent kafka 拉取 consumer group - 2 consumer group - 3 events channel

13 proto 包:json 功能:序列/反序列化kafka消息

14 stats 包:atomic 功能:原子变量,统计程序指标

15 log 相关配置: 包:io,fmt 功能:基于channel的异步日志 线程1 log 输出日志 消费 线程2 线程3 goroutine
bigpipe _16.log bigpipe _17.log goroutine 线程1 bigpipe _18.log log 输出日志 goroutine 线程2 sink channel 消费 goroutine 线程3

16 go get不支持版本,不支持自动分析依赖,不支持自动下载依赖
包管理glide go get不支持版本,不支持自动分析依赖,不支持自动下载依赖 glide.yaml 安装依赖 添加依赖

17 https://github.com/owenliang/bigpipe
参与项目: 1,fork自己的项目 2,在fork中创建dev分支,在上面开发代码 3,在github提交pull request给bigpipe 4,等待bigpipe合并/打回代码 5,定期在fork上合并bigpipe的master分支,保持与最新代码一致 6,定期在fork上将master合并到dev,保持与最新代码一致


Download ppt "Bigpipe 简化HTTP异步调用."

Similar presentations


Ads by Google