- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
百度统一网络接入技术规划
Golang在BFE的应用
百度运维部陶春华
taochunhua@
2016年1月
个人简介
• 陶春华,运维部,Baidu Front End团队
–2010年,天津大学,计算机专业博士
• 2013年7月,加入百度
–使用GO开发的项目
• 7层流量代理GO-BFE
• 应用层防火墙WAF
• 百度GOLANG委员会成员
BFE(Baidu Front End)
• 百度统一前端
–七层流量接入平台
BFE
N M
News Music
BFE(Baidu Front End)
• 主要服务
•接入转发
接入与转发 流量调度
• 防攻击、流量调度、数据分析
BFE
• 业务现状
•覆盖大部分重要产品 防攻击 数据分析
• 日请求量 1000亿
为什么重写BFE
• 现存问题
–修改成本高
• 事件驱动的编程模型:编码和调试难度大
• C语言本身的难度和开发效率
–配置管理方式落后
• 为单产品线设计,无法支持平台化要求
• 配置变更(修改、重载、验证)能力差
–变更和稳定性的矛盾
•程序出core
技术选型:Go vs Nginx
• 学习成本
• 开发成本
–并发编程模型:同步(Go) vs 异步(Nginx)
– 内存管理
–语言描述能力
• 性能
– 在BFE的场景下,性能在可接受范围内
– 通过算法设计和架构设计来弥补
几个问题
• GC优化
• http协议栈
• 分布式架构
• 好用的工具链
GC带来的问题
–GC是个好东西,但也有问题
–难以避免的延迟(几十到几百ms)
•经验公式:10万对象1ms 扫描时间
–1个tcp连接,约10个对象= 1万连接,1ms gc延迟
• GO-BFE的实时需求
–请求的处理延迟平均1ms以内,最大10ms
• 实测
–100万连接,400ms gc延迟
GC优化思路
• Go 的gc算法
–Mark and Sweep :大量时间时间用于扫描对象
• 常规手段的核心:减少对象数
–小对象合并成大对象
• 利用Array来合并一组对象(内部对象计数为1)
– 把数据放到C代码里面,通过cgo做接口使用
–对象复用(对象池)
–深度优化系统结构和算法
通过Array减少引用计数
OBJ1
OBJ1
OBJ2
您可能关注的文档
最近下载
- 2024年第十六届全国大学生数学竞赛初赛试卷及参考答案(非数学B类).pdf VIP
- 自考本科《小学综合性学习与跨学科教学》2025年4月模拟题附答案.docx VIP
- 高校教师培训教学设计模板.docx VIP
- 《野外辨别方向》课件.ppt VIP
- 2024年第十六届全国大学生数学竞赛初赛试卷及参考答案(非数学A类).pdf VIP
- 医务人员职业防护.ppt VIP
- 第42届全国中学生物理竞赛复赛试题.docx VIP
- 万科示范区验收移交指引.docx VIP
- 唐代僧人的法律规范-政大机构典藏.PDF
- 2025-2026学年高二地理上学期第一次月考卷5【测试范围:选择性必修一,第1~2章第1节】(原卷及解析).docx VIP
文档评论(0)