2-6-Golang 在 Baidu-FrontEnd 的应用-陶春华
730.17 KB
35 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .pdf | 3 |
摘要 | ||
陶春华在百度Front End团队主要使用Golang进行多个项目的开发,包括7层流量代理GO-BFE和应用层防火墙WAF。Golang在性能上接近C,并发性高,开发效率与Python接近,适合大型程序的组织和开发。文档还提到了Golang在内存管理上的困境,尤其是在处理大量连接时对象数的管理问题。 | ||
AI总结 | ||
《2-6-Golang 在 Baidu-FrontEnd 的应用-陶春华》
内容总结:
陶春华,百度运维部Baidu Front End团队成员,于2013年加入百度,负责多个使用Go语言开发的项目,包括7层流量代理GO-BFE和应用层防火墙WAF,同时是百度Golang委员会成员。
主讲内容包括:
1. 后台程序开发需求与难点:
- C、Python和Go语言的对比
- Go语言在BFE中的应用背景和技术路线
- 关键技术问题:
- 内存管理(GC问题)
- 协议一致性
- 分布式架构
2. Golang优势:
- 性能接近C语言
- 并发性机制:
- Goroutine:屏蔽底层复杂度,充分利用CPU资源
- 多线程模型:易于开发和思考
- 开发效率:
- 代码描述能力接近Python
- 丰富的系统库和第三方库支持
- 大型程序组织:
- 包(Package)概念
- 数据访问权限控制(首字母大小写区分)
- 可测试能力:
- 内置单元测试和覆盖检查工具
- 支持TDD开发模式
- 错误检查能力:
- 严格的编译阶段检查
- Panic机制便于问题定位
3. Golang在BFE的应用:
- 上线和运维便利性:
- 可编译为独立可执行程序
- 百度统一前端七层流量接入平台
4. 技术挑战:
- 对象数量问题:
- 常态下需维持数十万连接
- 对象管理优化困难
- 内存管理问题:
- 避免Go内存管理,尝试通过Cgo手动管理内存
- 存在较大安全隐患
- 未能完全解决大规模Go对象管理问题
总结:Golang在百度前端团队的应用充分发挥了其性能、高并发和开发效率优势,但在大规模部署中仍面临内存管理和对象数量的技术挑战。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
28 页请下载阅读 -
文档评分