(讲义)软件开发技术:Golang 在 FrontEnd 的应用分享.pptx
Golang在BFE的应用
;内容提要
?后台程序开发的需求和难点
一 C, Python and Go 对比
?采用Go语言重构BFE
-背景和技术路线
-GC问题
-协议一致性
-分布式架构;后台程序开发的需求(1);后台程序开发的需求(2);后台程序开发的需求(3);后台程序编程的难点;C vs Python (1);C vs Python (2);C vs Python (3);Golang (1);Golang (2);Golang(3);BFE(Baidu Front End);BFE(Baidu Front End);为什么重写BFE;技术选型:Go vs Nginx;几个问题;GC带来的问题
—GC是个好东西,但也有问题
-难以避免的延迟(几十到几百ms)
?经验公式:10万对象1ms扫描时间
-1个tcp连接,约10个对象=> 1万连接,1ms gc延迟
? GO-BFE的实时需求
-请求的处理延迟平均1ms以内,最大10ms
?实测
-100万连接,400ms gc延迟;GC优化思路;通过Array减少引用计数;困境;车轮大战!;轮转GC方案;GC优化-多进程配合;技术细节;技术细节
?服务态
-调用Accept,获取新的请求
?等待态
一不调用Accept,已经连接的client,可以继续收发
-等待这些已有的连接关闭
?垃圾收集态
—王幼调用GC;GC优化-补充分析;多说一句Go 1.5/1.6:没有银弹;协议一致性问题;协议一致性;分布式架构;总结