00:00
Hello,同学们好,在我们前面的课程学习当中呢,主要给大家讲解了一些NG的基础的功能使用,那这些功能的使用呢,对于我们企业的实际需求距离还甚远,那么接下来这些距离就在我们接下来的这部分课程当中呢,全面的给大家补充完整,呃,在你以后的工作当中,这些案例呢,呃和这些功能呢,你几乎全部都能用得到,那么我们把接下来的内容呢叫呃。这个NG的高并发网站的技术架构实战篇,在这部分内容当中呢,我会分阶段的给大家来讲解啊,主要分为两大阶段,第一部分呢,就是扩容,所谓的扩容就是把我们原来的这个单机的系统呢,给大家做到集群化,在集群化的过程当中呢,会有以下的这些技术点呢,会给大家来深入的去讲解,首先这个单机的呃,这种扩容,也就是资源的这种硬件叠加,然后接下来呢,就是集群化的管理啊,绘画管理当中呢,我会给大家介绍更多的这种呃,绘画维持的这种技术啊,呃,其实也就是在原有的这个哈希的基础之上呢,可以让他去哈希一切其他的一些,呃,我们的这些重要的这些参数来维持用户的会话,还有一些第三方模块啊。
01:15
呃,T啊,来做这个基于session的这种绘画保持,而不再需要我们的上游服务器的,呃,Tomcat。然后再有就是。Keep live的,这是非常重要的一个环节,Live的能极大的影响我们服务器的性能啊,它能够有效的保持用户的连接,在一段时间内呢,不需要重新的去做这种三次握手的这种操作了。啊,然后再有就是呃,对于keep live的一些性能上的,呃,这种压测的对比,我们用AB test啊,这阿帕阿帕奇奔驰test去给大家去实际的压测一下,看看性能的差异究竟有多大。然后这儿还有一个重点内容,就是upstream的,呃,核心的工作流程,以及它的缓冲区的配置啊,这是你在进阶学习当中的非常非常重要的一个环节,呃,以及返佣代理的容错机制,呃,还有在使用返佣代理的时候呢,可能我们在上游服务的时候,呃,想要获取用户的真实IP地址,在这就变得很困难了,那么在这如何去获取用户的真实IP地址,我们也会给大家来讲解。
02:25
还有就是谷歌京东他们怎么去压缩我们站点的网页的啊,真争高效的去传输数据,这呢有两个,一个是GZP啊g zip当中呢,还有呃,它的这个GU zip啊这个模块,这个模块呢。就压根就不需要我们在站点上再去存储这些呃,原始的H站标文件了,直接把压缩包扔上去,我们的客户端就可以拿到压缩包给它给解压开,还有一个beie,这是谷歌啊,正在使用的压缩算法。呃,以及接下来还有呃,合并客户端的请求,也就是把多个客户端请求呢,合并成一个请求,比如说请求三个CSS文件。
03:07
那么正常情况下发三个请求打过来,那我们在这儿呢,给它合并成一个啊,这样这样能够减少用户的请求,以达到我们的服务的高效啊。还有就是资源的静态化,把这个呃静态化,把这个原原本应该是动态查询的内容呢呃静态化变成静态的磁盘上的这些文件直接给输出出去,这样的呃减少了这个上游服务的这种计算啊,其实相当于一层缓存了,然后还有就是在S在这个服务器端使用ssi去做呃文件合并。有点像膜拜引擎啊。呃。再有就是呃,像CDN或者是我们大型的NG集群当中,呃会会有一些这种同步的问题,比如说我们有十台机器啊,每台机器想要让它呃磁盘上的文件的保保证绝对的一致,那这样呃就会浪费我们大量的人工的这些呃这些这些工作,那可以通过这个呃reinron加notify啊,让它自动化的去同步,那我们接下来再去分发内容的时候,就只需要向一台机器呃去分发我们最新的内容。
04:18
而不再需要向所有的机器器去呃上传我们这些资源文件了,再有就是非常重要的一部分内容,就是做多级缓存,在多级缓存的第一部分呢,就是浏览器的缓存啊,京东,淘宝,百度所有的网站在浏览器呢这一端都使用了缓存,我们会带大家来详细的去讲解和配置,以及观察呃这个一些知名网站它的这个呃缓存是怎么用的,在浏览器这一端,还有就是我们的这个。呃。I,这是可以去分析用户端的来源,这是看之前有同学在留言区啊,希望能讲解一下这个IP,但现在来说这GUIP呢,使用的场景并不是特别多了,已经。
05:06
再有就是正向代理和反向代理的缓存,这指的就是在我们N的本机的磁盘上,在作为反向代理服务器或者正向代理服务器的时候,它需要向上游服务器去发送请求,拉取数据回来,那么反复重复的动作呢,我们就不需要让他呃再去浪费上游服务器这些资源啊,在本机上呢,自动化的去构建一层缓存,把这个网页文件呢直接缓存到NG上。然后在这个第二部分的高效这一部分的,我们上来给大家来讲解的就是file,还有这个open catch,呃,这集调优这是非常重要,也是嗯很少有人知道的,呃,调优方式。大家都知道center fair比较高效,但它真正的执行过程是什么样的?Open fair catch啊,它就它就它又究竟是怎么工作的,那我们在这呢会来讲解。
06:01
然后还有这个NS的一些外置缓存的使用,比如说NS和memory catch的NS和redddis,以至于NS连接MY啊,怎么去连接,然后在这里边呢,呃以这个以一以一个点呢,我们会展开很多呃其他这些呃粉碎的知识的讲解,比如说呃匿名的location怎么去使用啊,还有这个呃第三方的模块,以及这个stream的模块,呃用N位。My circle去做四层的,呃,这种负载均衡反向代理怎么去做?那充分的利用到了stream这个模块,包括很多的第三方的这些,呃,功能和模块也都是基于stream的,也就是如果我们需要去连接一些其他的这些服务,呃,非HTTP的服务,比如说买。还有一个非常重要的内容就是限流。这也是在高我们讲解高效这一部分内容当中非常重要的一个环节,如何去限制呃客户端呃让他呃控制,我们去有效的去控制它的这个QPS的个数,并发量的个数,以及它使用网络带宽的个数,你像我们在下载一些文件的时候,有的时候比较慢,那你充完会员之后呢,就变快了,这是为啥?那就在这儿他去主动的去帮我们去限制了,在限制的时候呢,我们就给大家来讲解了,呃多种这这种限流算法啊,漏斗算法或者叫漏筒算法,还有这个令排统算法啊,以及在NG里的具体的实现,然后还有这个重试机制,以及主动健康检查,在主动健康检查这个模块里面,我们使用的喷剂的呃科源模块,也就是我们可以。
07:48
不用喷剂呢,也可以用它的拈啊,在这儿还给大家带来了这个。怎么去给这个NS原本打补丁的这么一个,呃,这个这个这个配置啊。
08:00
再有就是re,呃,我们可以用oper re对NGS做二次开发,NG呢,呃,它原本的一些模块和功能就已经很丰富了,但是如果想要做更加定制化,更加个性化的这种呃开发的话,基于C语言来开发,那是非常难度非常大的。我们给大家介绍了一门新的语言叫撸啊,这门语言呢,呃比较简洁高效啊,写起来像脚本,执行起来呢效率堪比我们的C语言啊,执行效率非常高。在这儿给大家讲解了很多小的案例啊。在最后呢,以。呃,一个完整的例子也就是用,呃,Redddi的缓存,然后去渲染N这里的静态的模板文件,呃,然后直接去输出,输出这个网页的内容,呃,后台呢,用买搜QL数据库,相当于三者相连,既有了缓存,也有了模板,呃,就像我们用的springvc里边的MVC,这三层结构在这个N里呢,都能够完整的实现。
09:02
当然呢,在呃我们的这套课程当中呢,可能涉及内容点非常多,我们主要还是以官方文档作为呃参考的,最权威的这种呃教案或者叫教材。呃,抛砖引玉,给大家打开一个新的世界,让你在呃以后的这个技术的选型当中有更多的工具可以使用啊。那么废话少说,赶快开始我们的学习吧。
我来说两句