面向服务开发

我们熟悉的有面向过程开发,面向对象开发,常见的模式有MVC,而面向服务开发,大致是MVCS,S(server)现在大一点的公司都是这么工作,

整体项目的架构全是面向服务。之所以我们这样设计目的就是提高用户的体验。具体做法如下:

1.我们的网站刚起步的时候,访问量很小,服务器的架构如下:

面向服务开发_第1张图片

我们只需要一台服务器就可以满足初期的需要。

2.随着用户量的增加,我们网站的文件、数据量加大,这时候我们需要把数据、文件从一台服务器中分离出来,如下:

面向服务开发_第2张图片

这样分离以后,不同的服务器处理不同的服务,网站得到性能的提高

3.我们的网站继续发展,数据量继续加大,可是大家都知道,人们关注的 数据往往是很小的一部分,而我们却要去庞大的数据库查找这部分数据,这样降低了效率,我们就要加入缓存:

面向服务开发_第3张图片

这时,缓存分两种,一种在应用服务器上的本地缓存,另外一种是缓存在专门服务器上的远程缓存,使用这些缓存后,数据库访问得到缓解,但是我们现在只有一个应用服务器,处理能力有限。

4.在使用缓存后,数据库的访问压力得到缓解,可是我们单台应用服务器接受的请求的数量是有限的,这时我们就需要把应用服务器集群化。

面向服务开发_第4张图片

5上述完成后,我们网站的很大一部分的访问数据可以根据缓存来读取,很大程度的缓解了数据库的压力,但是任然有一部分的数据需要从数据库读取,而这部分最后就成了一个网站的瓶颈。

我们的解决办法现在大多数是配置两台数据库,配置主从复制,实现数据的读写分离,缓解主数据库的压力,面向服务开发_第5张图片

6.随着我们的业务的发展,用户量的逐渐增多以及我国的网络情况的复杂性,不同地区间的网络差距很大,这时我就需要更强大的技术,使用方向代理和CDN加速我们的网站的相应速度

面向服务开发_第6张图片

方向代理和CDN的技术核心都是缓存技术。

7.我们都知道,我们的网站越来越大的时候单一的任何服务器都不能满足我们的需求,这时我们就需要把文件服务器和数据库服务器设计成分布式面向服务开发_第7张图片

8.我们的网站继续发展,对数据的存储和检索的要求越来越高,这时我们需要一些其他的非关系型的数据库存储技术和搜索技术,nosql和搜索引擎,应用服务器通过统一的数据模块来进行数据的访问面向服务开发_第8张图片

基本上也就这样了。

你可能感兴趣的:(架构,开发)