Golang 笔记5【服务开放】 | 青训营笔记

108 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记

域名系统

域名空间为树形结构,最上层为根服务器,向下为顶级域(gTLD)。根服务器为查询起点。 将公司网站向外部开放:租赁外网ip(example公司网络基础设施),将该ip绑定到指定域名上,并发布公网的route供用户访问。

DNS服务器

访问本地DNS查询,没有查到目的ip,则由本地DNS向根服务器,顶级域服务器等发起查询,最终将目的端ip返回给客户端。(DNS迭代查询)

HTTPS协议

http对称加密需要协商秘钥,秘钥被截获则安全传输失效。https采用非对称加密传输对称加密秘钥。

SSL通信过程:客户端告知服务端支持的加密算法,服务端选择其中一种回发证书给,客户端验证证书,用其中的公钥加密随机数发回给服务端,服务端私钥解密得到随机数,用随机数作为对称加密秘钥进行数据传输。

全站加速

静态加速(CDN):针对静态文件缓存。资源尽可能靠近用户,解决不同运营商之间的传输瓶颈,优化热点内容分布

动态加速(DCDN):智能选路。选择合适的路径访问源站,降低访问的时间成本。

四层负载均衡

将用户访问均衡的转发到后端的多台服务器上,实现解耦,保护后端安全。

相关算法:RR轮询,最小连接,五元组hash,一致性hash

实现方式:FULLNAT

特点:使用dpdk技术实现,无缓存,零拷贝,大页缓存

七层负载均衡

Ngnix:master/worker架构,热部署,在线升级。

image.png

事件驱动模型:不同线程监听不同事件,执行不同的回调函数,每个事件由独立的处理模块。

Nginx优化:操作系统优化,提升CPU使用效率(每个worker绑定一个CPU核,提高命中率),提升网络效率(长链接)

image.png