这篇文章到底放在那个模块呢?想想放哪里都不太好,没办法,最后还是放在了网络部分。
说起服务器架构呢,是一个高大上的话题,若有写的不好的地方,大家勿喷哦。
相信大家都知道b/s和c/s架构。我们就从这里说起。
1.浏览器——服务器架构
不知道大家有没有写网站的经历,但是我相信大家都有上网的经历吧。哈哈。
浏览一个网页的时候,在搜索栏输上域名,或ip地址,或者关键字弹出一堆网站推荐,点击。然后我们就可以上网了,非常的方便。但是呢怎么实现的呢?上网无非就是两台不同主机上的进程的联系。既然是不同主机之间,就需要ip地址和端口号,才能建立连接。当我们在URL栏输入ip地址或者域名时,都会获得到ip地址.端口号,服务器端网站程序用的固定的端口号。直接绑定上就可以了。记得http时80.https:443
这样,我们就可以非常方便的建立连接,上网了。
一个浏览器非常小,一般也就MB为单位。这是因为大部分工作都是服务器在做。前端页面,逻辑层,数据库,都需要放在服务器端。
浏览器的工作呢,其中包含了写前端界面中html,css,js等相应脚本语言的解释器。服务器端把前端页面的代码通过网络发送过来之后呢,解释器解释页面代码,执行,展示出来。将用户输入、点击等操作返回给服务器。这就是浏览器最主要的工作了。我们在浏览器中按fn+f12就可以看到服务器端发送过来的前端页面代码了。
服务器端呢,需要接受用户的输入,执行相应的操作。比如从数据库中提取数据,或是写入数据,返回新的前端界面等。
2.客户端——服务器架构
这种方式,客户端分担了服务器端的工作。
我们玩的游戏,通常都是几个G大小。部分逻辑层,所有前端界面都在客户端。客户端接受用户的指令后,通过客户端逻辑层运算,传递给服务器端,进行处理后,传输回来,展示画面。通常情况游戏为了流畅性,客户端会提前运行,展示界面,不必等到服务器发过数据来。不知大家玩游戏的时候发没发现。吃鸡里面,当人物跑动的时候,突然断网或是网络不好的时候,人物会后退,会退到之前的地方,就是这个原因。
3.变型——微信小游戏
我认为这是一种介于两者之间的一种方式。也是有客户端的,但是每次点击都需要重新通过网络下载。所以呢,限制了游戏的大小,不能太大,要不每次要花非常多的时间下载。相信5G的到来,游戏的大小会发生较大的变化。
上面这些说的都是大的方向,那么服务器端的架构呢?
4.单台服务器
比如,我们自己做的网站,只有一台服务器。前端界面,逻辑处理,数据库,都在一台服务器上。这种呢,少数人共同访问没有什么问题,一但访问的人多了,服务器就要受不了了呢。
5.简单服务器组
单台服务器不行,我们就增加几台,将功能分到不同服务器上。一般将注册程序分出来,放到一个服务器。数据库单独一个服务器。其他的运行逻辑放到一个服务器。
5.服务器组
随着连接的人数更多,就需要更高级的。
这种相对于小型游戏可以,但是对于吃鸡,英雄联盟这种游戏就不够看了。
5.大型游戏服务器组
这种大型游戏有一个普遍的特点,分区,不同区的玩家不能一起玩游戏。主要是数据库的分离导致了这个问题。谁让玩家太多了呢。哈哈哈。
上面说的这些都是一个大的概念性的内容。能够快速让我们了解服务器以及服务器组的架构方式。
想要深入,还要花时间去细致了解。