基于Hertz的微服务落地实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 基于 Hertz 的微服务 落地实践 初泽良-字节跳动西瓜视频研发工程师 2024/05/25
2. CONTENT 目 录 01. 西瓜视频微服务架构设计 02. Hertz框架介绍 03. Hertz迁移过程、踩坑经验 04. 落地Hertz后的收益
3. 01 西瓜视频微服务架构设计
4. 西瓜视频是一个开眼界、涨知识的视频 App(Informative Video Platform), 作为国内领先的中长视频平台,它源源不断地为不同人群提供优质内容,让人们看 到更丰富和有深度的世界,收获轻松的获得感,点亮对生活的好奇心。 同时,西瓜视频鼓励多样化创作,帮助人们轻松地向全世界分享视频作品,创造更 大的价值。目前平台月活跃创作人超过 320 万,月活跃用户数超过 1.8 亿,日均 播放量超过 40 亿,用户平均使用时长超过 100 分钟。
5. C 端场景多,业务域划分较细 服务划分与解耦:单一职责原则、领域驱动设计
6. 高QPS:关注性能优化
7. 西瓜视频
8. 02 Hertz框架介绍
9. Hertz
10. Why Hertz 极致的性能 易用性 丰富的文档体系 稳定性 低廉的迁移成本 丰富的扩展能力
11. 性能
12. 性能优化: Context Pool
13. 性能优化: Context Pool
14. 性能优化: string -> []byte []byte 支持修改,不需要重新申请内存 []byte 使用后可以像以下一样将其长度置为0以表示清理, 这样可以用来复用,避免下次使用重新申请。 使用内存对齐的技巧来处理 bytes 与 string 的转化
15. 易用性 Hertz 提供了一个简单易用的命令行工具 Hz,用户只需提供一个 IDL,根据定义好的接口信息,Hz 便可以一键生 成项目脚手架,开箱即用使用 Hertz;Hz 也提供更新能力,用户的 IDL 如果发生改变,Hz 可以更新脚手架。 目 前 Hz 支持了 Thrift 和 Protobuf 两种 IDL 定义。命令行工具内置丰富的选项,可以根据自己的需求使用。
16. 稳定性 基于线上流量特征 的随机模拟 01 严格关联发布流程 05 02 7*24 小时监控大盘 04 03 核心 API 全覆盖 适配不同的线上 部署环境
17. 稳定性 单元 测试 集成 测试 性能 测试 模糊 测试
18. 扩展性 Hertz 采用了分层设计,提供了较多的接口以及默认的扩展实现,用户也可以自行扩展。同时得益 于框架的分层设计,框架的扩展性也会大很多。 • 日志扩展 • 监控扩展 • 服务注册与发现扩展 • 网络库扩展 • 协议扩展 • Response 的 Writer扩展
19. 03 Hertz迁移过程、踩坑经验
20. 迁移过程 帕累托原则:选择成本大头服务
21. 迁移过程 1.SDK库适配
22. 迁移过程 2.执行一键迁移脚本
23. 迁移过程 3.手动修改 Middleware 参考 Gin —> Hertz API 对照表
24. 西瓜视频迁移Hertz踩坑经验 1.Query tag 缺失导致请求参数解析失败
25. 西瓜视频迁移Hertz踩坑经验 2.未配置looseZero模式导致绑定数值类型报错
26. 04 落地 Hertz 后的收益
27. 收益
28. THANKS

trang chủ - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-15 17:30
浙ICP备14020137号-1 $bản đồ khách truy cập$