百度统一网络接入技术规划.PDF

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档