浅谈架构-从传统走向分布式

http://www.cnblogs.com/Survivalist/p/8012266.html


架构拆分的演变:
 一、传统项目的架构 
all in one(所有模块在一起,技术也不分层),
  注:像05年06年那会儿,就是这样,把代码写在jsp里面,那时候还没有分层的概念,把所有的东西都写在一起,这就叫做all in one 


二、分层开发(mvc架构,服务器的分离部署)


三、集群的配置(一般it公司):
 特点:
    1.项目采用多台服务器集群部署
    2.mysql数据库采用多台服务器集群部署


这种集群部署存在两个问题
 1.session如何共享?


     1)用Tomcat集群复制(广播模式)来共享session:这种解决方案是利用Tomcat来进行集群复制,把每个服务器上的session都共享式的都复制一遍,保证每个服务器上都有着一个用户的session数据
     2)用第三方redis服务器来存储session
    用这种方式来存储session的话,只需当前正在使用的项目把所有session都放在redis里面,当有其他项目需要使用时,就可以直接从redis中直接获取session,从而解决了这个问题


 2.这么服务器,请求该往哪发送?


怎么解决选择哪个作为解释请求的服务器呢?
  答案是:用nginx服务器来分发请求,实现负载均衡。


四、面向服务的分布式架构(SOA):


远程框架:


1、webservice
 webservice实现面向服务架构 --SOA
特点:
       1、web层拆分为一个独立的项目(war包),service层拆分为一个项目(war包)
    web层和service层是远程调用关系
优点:
1、表现层和服务层采用集群部署(具有高可用性)
2、并发能力提高(10000+)
问题:
1、服务层网络抖动
2、服务层进程繁忙




2、dubbo 这种中间件的方式
使用dubbo实现面向服务分布式架构:SOA
特点:
表现层拆分为一个独立的项目(war),服务层拆分为一个独立的项目(war)
关系:表现层和服务层是远程调用RPC关系
表现层和服务层通信是NOI(new IO)异步通信
问题:new IO 和 io有什么区别?
  new IO 有缓存,io没有缓存


好处:
当服务器启动时,service会把所有的对象通过dubbo注册给zookeeper,而以后每次需要
请求获取对象时,就可以直接从dubbo中异步获取,不需要再去访问service层,这样就解决了
服务层网络抖动和服务层进程繁忙的弊端。zookeeper可以看成是一个数据库,用来存储数据的


3、springcloud




分布式框架的优点:
1、大幅提高并发访问量(10000+)
2、可以节省成本(因为这种优化仅是从架构方面进行优化,而不需要去配置大量的服务器)
3、实现服务层与表现层的解耦合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值