SOFAMOSN持续演进路径及实践分享metrics技术案例 – 协议自动识别 TLS链接 核心实现思路: Ø TLS通过ALPN来识别。 Ø TLS不带ALPN或者明文,通过预读首部字段识别。 ALPN扩展 预读字段 是 否 获取ALPN协商 所得协议 有 无 遍历所有协议 实现,执行 ProtocolMatch 返回AGAIN 匹配成功,获 取对应协议 无法识别协议, 断开链接 继续读取数据技术案例 – HTTP/2 393% New http2(4 core) 17200 57ms 40M 395%技术案例 – 长连接网关RawEpoll模式 经典Golang netpoll模型 ² 问题:协程数量与链接数量成正比,大 量链接场景下,协程数量过多 u Stack内存开销 u Read buffer开销 u Runtime调度开销 参考阅读:million-websockets-and-go Netpoll read conn …… 调度切换/就绪通知 3.请求处理过程中,协程调度 与经典netpoll模式一致 Raw Epoll goroutine pool conn.read conn 1. 链接建立后,向epoll注册oneshot 可读事件监听;并且此时不允许有协 程调用conn.read,避免与runtime netpoll冲突。 2. 可读事件达到,从gorotine pool挑 选一个协程进行读事件处理;由于使0 码力 | 29 页 | 7.03 MB | 6 月前3
蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘容器管理平台更替快速进行中 ØGolang 性能,成本评估符合蚂蚁实际需求2 构架SOFAMesh 1SOFAMosn 2SOFAMosn内数据流 3NET/IO 4 Ø屏蔽IO处理细节 Ø定义网络链接生命周期,事件机制 Ø定义可编程的网络模型,核心方法,监控指标 Ø定义可扩展的插件机制PROTOCOL 5 Ø定义编解码核心数据结构 üMesh处理三段式:Headers + Data + Trailers C模块划分 11要点总结 12 Ø模块化,分层解耦 Ø统一的编程模型接口 Ø可扩展的事件驱动模型 Ø可扩展的路由/后端管理机制 Ø更好的吞吐量3 能力核心能力 1 网络处理 •网络编程接口 •链接管理 •事件机制 •Metrics 收集 •TCP 代理 •TLS 支持 •TProxy 支持 •平滑 reload •平滑版本升级 多协议 •SOFA RPC •HTTP 1.x •基础负载均衡算法 •主动健康检查 •Subset 负载策略Highlights 2 ØX-Protocol: 支持 RPC on HTTP2的通用方案(完善中) Ø支持平滑升级中协议无关存量链接迁移 Ø支持指定 / 更新 Downstream / Upstream 协议配置 ØSOFARPC 支持 Upstream 反向请求Istio集成 3 Ø支持 Istio 0.8 版本 Pilot0 码力 | 44 页 | 4.51 MB | 6 月前3
蚂蚁金服网络代理演进之路规则,不仅占用内存,对路由匹 配性能也有较大影响 § SOFAMosn发布业务无感知,平 滑升级 § 海量,高频的发布订阅动作 § 发布分组策略,间隔策略平滑升级 l 支持新老 mosn 容器间链接、metrics 无损迁移,升级全程无重新建联 l 支持对服务中 mosn 容器进行无损平滑升级,即“给奔跑的汽车换轮胎” l 支持 SOFARPC、HTTP/1.x、消息、TLS 等多种协议无损迁移资源问题0 码力 | 46 页 | 19.93 MB | 6 月前3
共 3 条
- 1













