Kitex Thrift Streaming 的设计与实现

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. Kitex Thrift Streaming 设计与实现 CloudWeGo 开源团队出品 2024/03
2. CONTENT 目录 01. 需求和现实的矛盾 02. 基础用法 03. 设计与实现 04. 展望
3. 01 需求和现实的矛盾 Streaming 迫在眉睫
4. 需求场景 抖音搜索 飞书 People 大模型(LLM)
5. Ping-Pong API v.s. Streaming API
6. 其他类型的 Streaming API 场景具体:上传文件 没有限制,取决于业务需要
7. Kitex 简介 https://github.com/cloudwego/kitex [kaɪt'eks] Golang 微服务 RPC 框架 高性能 功能/扩展性
8. “现状”(Kitex v0.8.0) Kitex 只支持 Thrift 的 Ping-Pong API Kitex 支持 GRPC 的 Streaming API 但是:
9. Thrift Streaming 迫在眉睫 快速支持 Thrift Streaming 完善 Kitex Streaming 的能力
10. 02 基本使用 以 Server Streaming API 为例
11. Thrift IDL:注解
12. 根据 Thrift IDL 生成脚手架代码
13. 客户端调用 Server Streaming API
14. 服务端处理 Server Streaming 请求 https://github.com/cloudwego/kitex-examples/tree/v0.3.1/thrift_streaming
15. 03 设计与实现 Payload编码,中间件,可观测性
16. HTTP/2 HTTP/1.1 存在的问题 HTTP/2 的应对方案
17. GRPC: HTTP/2 + Protobuf HTTP/2 Stream: Framed Based
18. Payload 编码:Protobuf -> Thrift ContentType+ContentSubType grpcCodec:支持 Thrift
19. 中间件:Client - gRPC 官方的 WrappedStream 方案
20. 中间件:Client - Recv/Send Middleware
21. 中间件:Server
22. 中间件:Server - Recv/Send Middleware cloudwego.io - Kitex 基本特性 - 协议 - Streaming 传输 - Thrift Streaming
23. 可观测性:RPCStat and Tracer RPCStats Tracer
24. 可观测性 - 基本埋点 RPCStart RPCFinish Stream 结束 Server Client Bidirectional Streaming Server Streaming Client Streaming Server Method Handler 返回后 stream.Recv() 返回 non-nil error (含 io.EOF)* 调用 stream.Recv() 后
25. 可观测性 - 细粒度埋点 StreamSend & StreamRecv 事件 StreamEventReport 接口 新增指标 对排查线上问题很有帮助
26. 注意事项 - 服务治理 超时:部分支持 熔断:部分支持 重试:暂不支持 限流(Server 端):部分支持
27. 注意事项 - Recv、Send 操作的是 Stream 缓冲区
28. 注意事项:中间件读不到 Request/Response
29. 04 展望 更好的 Streaming?
30. 泛化调用 Client:支持 Protobuf、Thrift 泛化调用 Server:支持收发任意编码数据
31. 简洁,高效 HTTP2 TCP Multiplexing 基于自研协议的 Streaming TTHeader
32. 基于 TTHeader 的 Streaming Flags:判断是否 Streaming、Stream 是否结束 const BitMaskFlagStreaming = 0b0000_0000_0000_0001 const BitMaskFlagEndOfStream = 0b0000_0000_0000_0010 基于 Frame 的 Streaming
33. Q & A Kitex https://github.com/cloudwego/kitex https://cloudwego.io/zh/docs/kitex CloudWeGo
34. THANKS

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-16 01:59
浙ICP备14020137号-1 $Carte des visiteurs$