微服务框架对比及迁移
如果无法正常显示,请先停止浏览器的去广告插件。
1. 微服务框架的对比
和迁移
Kitex 与 gRPC-go
Hertz 与 Gin
周启恒、李纪昀
2024/05/25
2. CONTENT
目 录
01. Kitex 与 gRPC-go
02. Hertz 与 Gin
03. 总结和未来展望
3. 01
Kitex 与 gRPC-go
能力对比及迁移
4. 周启恒
- 新加坡国立大学 - 计算机硕士
- 2021 年加入字节跳动,现为 Kitex 框架 Maintainer
5. 概览
Kitex
gRPC-go
6. 能力对比
01.
02.
03.
7. 性能
Performance
8. 性能优化
9. Fastpb - Protobuf 高性能编解码
FastWrite: (ns/op) ↓67.8% ,(B/op) ↓83.9%
FastRead: (ns/op) ↓41.5% ,(B/op) ↓4.5%
10. Kitex gRPC 性能优化
Unary 场景 - 吞吐提升 51% - 70%。
11. Kitex gRPC 性能优化
Unary 场景 - 延迟显著降低
12. Kitex gRPC 性能优化
吞吐对比
TP99 对比
Streaming 场景 - 吞吐提升 22% - 70%
13. 服务治理功能
Governance Features
14. 服务治理功能对比
功能 Kitex gRPC-go
超时 请求超时
建连超时 请求超时
建连超时
重试 异常重试
备用请求 重试 (RetryPolicy)
对冲 (HedgingPolicy)
熔断 服务级别
实例级别 服务端限流 QPS 限制
并发数限制 降级 Fallback 自定义降级方法 服务发现 对接服务注册中心
负载均衡 内置的多种策略,可自定义扩展
...
15. 服务治理功能对比
Kitex
Tool
如何实现丰富的治理功能?
Kitex Core
client
cmd
server
modules
register discovery loadbalance
circuitbreak retry limit
acl stats diagnosis
generator kerrors config klog
checker endpoint rpcinfo common
parser
plugin
tpl
remote
transport
bound
codec
16. 请求熔断
17. 请求重试
指定结果重试
请求粒度重试
18. Fallback - 业务自定义降级
19. 协议扩展
Protocol Extension
20. 协议扩展
Kitex
Remote
TransHandler
netpoll
ClientTransHandler
nphttp2
ServerTransHandler
shmipc
Codec
gRPC-go
Thrift
Protobuf
Generic
......
21. 协议扩展案例1:Dubbo 互通
https://github.com/kitex-contrib/codec-dubbo
互通
易用
22. 协议扩展案例1:Dubbo 互通
企业用例:方正证券
资源节省:16 * (16 Core, 64G) -> 12 * (4 Core, 4G)
Kitex 支持 Dubbo 协议:助力多语言云原生生态融合
23. 协议扩展案例2:Thrift Streaming 支持
thrift-stream
背景
实现方式
24. 迁移
Migration
25. 迁移
gRPC Client gRPC Server
Kitex Client Kitex Server
26. 自动化迁移工具
27. 自动化迁移工具
28. 迁移案例:森马电商
29. 02
Hertz 与 Gin
能力对比及迁移
30. 李纪昀
2022 年接触 CloudWeGo 社区
• 现为 Hertz 框架 Committer
• Web & Docs Reviewer
31. 概览
Hertz
Gin
32. 性能
Performance
33. Hertz-benchmark
性能
34. 易用性
Usability
35. 社区
36. 协议
37. 注册中心与服务发现
38. 注册中心与服务发现
39. 文档
40. 文档
41. 适配器
Adaptor
42. 适配器
43. 性能对比
44. 基于 go/ast 快速迁移代码
45. 简介
hertz_migrate
46. 优点
准确
扩展性高
便捷
47. 使用
48. 运作流程
49. 实际案例
50. 03
总结&未来展望
51. 总结 | Summary
52. THANKS