对分布式工程的初步认识和理解


  大型网站都是由小型网站发展而来,网站的架构也是一样。小型网站一开始没太多人访问,只需要一台服务器就绰绰有余,这时的网站架构如图所示:

        

  这时,应用程序,文件,数据库等所有资源都放在一台服务器上,一个普通的网站就这样被开发出来了。

  随着网站业务的发展,一台服务器已经不能满足我们的需求,随着用户的访问量激增导致性能越来越差,缓存和数据库中越来越多的数据导致存储空间不足,这时就需要将应用程序,数据库和文件分离,将它们各自部署到一台服务器上,这三台服务器对硬件资源的要求各不相同,应用程序需要处理大量业务,所以需要更强大的CPU; 数据库服务器需要更快的硬盘检索速度和储存数据,所以需要更快的硬盘和更大的内存;文件服务器需要存储大量的数据,所以需要更大的存储。分离后大致如图所示。

                   

  如果性能还是不够我们还可以分别对它们做集群,这也可以大大增加用户的访问量和存储能力。已经分离的工程可以通过Alibaba的dubbo和zookeeper来联系。

  以上是我对分布式思想的初步认识和理解

---------------------------------------------------分界线--------------------------------------------------------------

  接下来是我的分布式工程的初步学习实现。

  由于我刚开始学习分布式,在建工程的时候并没有用到多台服务器,只是将工程发布到了一台服务器的不同端口下,从形式上实现了工程的分布式;而且刚开始我为了方便学习,只是将应用层的web分离了出来,其余部分还是保持原来的模式,所以我以下内容也是根据我具体的工程来写的。 

  我将web分离出来后,由于一个网站分为用户和管理员,这时,我们需要实现两个用户和管理员两个功能,但是考虑到用户和管理员功能的不同以及访问量的差别,为了更加充分地利用服务器的性能,提高效率,我们还可以将web端的管理员和用户进行分离,根据人数差距,这时少量的服务器处理管理员操作,余下的大量服务器可以解决用户的需求;如果将管理员和用户都放到相同的服务器下,每台服务器都会同时运行管理员和用户功能,这是数量极少的管理员功能便会占据服务器的很多资源,造成资源性能的浪费。由于时间原因,今天先不发代码,代码将会在今后补上。

下图为管理员和用户的分离图(忽略红线)。

                        

  

优质内容筛选与推荐>>
1、linux下面的挂载点讲解
2、poj 3069 继续弱鸡的贪心
3、【BZOJ】1001: [BeiJing2006]狼抓兔子(最小割 / 对偶图)
4、网络对抗技术作业一
5、asp.net 母版页使用详解


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号