当前位置:首页 > 报告详情

Kitex Thrift Streaming 的设计与实现.pdf

上传人: 张** 编号:158299 2024-03-31 34页 6.88MB

1、Thrift Streaming设计与实现CloudWeGo 开源团队出品2024/03Kitex01.需求和现实的矛盾02.基础用法04.展望CONTENT目 录03.设计与实现01需求和现实的矛盾Streaming 迫在眉睫抖音搜索需求场景飞书 People大模型(LLM)Ping-Pong API v.s.Streaming API其他类型的 Streaming API场景具体:上传文件没有限制,取决于业务需要Kitex 简介kateks Golang 微服务 RPC 框架功能/扩展性高性能https:/ 只支持 Thrift 的 Ping-Pong API“现状”(Kitex v0.8

2、.0)Kitex 支持 GRPC 的 Streaming API但是:Thrift Streaming 迫在眉睫快速支持 Thrift Streaming完善 Kitex Streaming 的能力02基本使用以 Server Streaming API 为例Thrift IDL:注解根据 Thrift IDL 生成脚手架代码客户端调用 Server Streaming API服务端处理 Server Streaming 请求https:/ 存在的问题HTTP/2 的应对方案GRPC:HTTP/2+ProtobufHTTP/2 Stream:Framed BasedPayload 编码:Pro

3、tobuf-ThriftContentType+ContentSubTypegrpcCodec:支持 Thrift中间件:Client-gRPC 官方的 WrappedStream 方案中间件:Client-Recv/Send Middleware中间件:Server中间件:Server-Recv/Send Middlewarecloudwego.io-Kitex 基本特性-协议-Streaming 传输-Thrift Streaming可观测性:RPCStat and TracerRPCStatsTracer可观测性-基本埋点RPCStartRPCFinishStreamStream 结束结

4、束Bidirectional StreamingServer StreamingClient StreamingServerServer Method Handler 返回后Clientstream.Recv()返回 non-nil error(含 io.EOF)*调用 stream.Recv()后可观测性-细粒度埋点StreamSend&StreamRecv 事件StreamEventReport 接口新增指标对排查线上问题很有帮助注意事项-服务治理超时:部分支持熔断:部分支持重试:暂不支持限流(Server 端):部分支持注意事项-Recv、Send 操作的是 Stream 缓冲区注意事项

5、:中间件读不到 Request/Response04展望更好的 Streaming?泛化调用Client:支持 Protobuf、Thrift 泛化调用Server:支持收发任意编码数据简洁,高效HTTP2 TCP Multiplexing基于自研协议的 StreamingTTHeader基于 TTHeader 的 StreamingFlags:判断是否 Streaming、Stream 是否结束基于 Frame 的 Streamingconst BitMaskFlagStreaming=0b0000_0000_0000_0001const BitMaskFlagEndOfStream=0b0000_0000_0000_0010Q&AKitexCloudWeGohttps:/

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了由CloudWeGo开源团队出的Thrift Streaming设计与实现。文章首先指出了需求和现实的矛盾,即现有的Kitex框架虽然支持GRPC的Streaming API,但不支持Thrift Streaming,而Thrift Streaming的需求又迫在眉睫。接着,文章以Server Streaming API为例,详细介绍了Thrift IDL的生成和使用。然后,文章深入探讨了设计与实现细节,包括Payload编码,中间件,可观测性等方面。最后,文章对未来的展望进行了展望,提出了基于自研协议的Streaming等概念。
"Thrift Streaming在Kitex中的挑战有哪些?" "如何使用Kitex实现Thrift Streaming服务?" "Kitex如何通过HTTP/2支持Thrift Streaming?"
客服
商务合作
小程序
服务号
折叠