首页 > 技术文章 > 分布式布局简述

zzu-general 2018-05-08 18:29 原文

 

前台服务和后台服务需要为用户提供服务,两者都要Service为其提供服务。Service在Zookeeper中注册服务,cotroller和portal在需要服务时直接在zookeeper 寻找服务。Dao层则负责服务的具体实现.

  1. Dao 层做数据持久层的工作,负责与数据库进行联络的任务都在Dao层。
  2. Service 负责业务模块的逻辑应用设计。
  3. Controller 层负责具体的业务模块流程控制,调用Service 层的接口来实现控制业务流程。

使用doubbo把项目拆分后:

  1. Controller作为一个项目的消费者。
  2. Service和Dao作为服务的提供者。
  3. Zookeeper作为doubbo服务的注册中心,可以做到集群管理数据。

当Service封装到Controller中时,就是ssm设计模式。同时会使前后台都分别要有对应服务,即在同一台服务器上进行服务。而通过zookeeper可以是数据管理更有效,服务效率更高。

当大量用户访问同一个互联网业务,会有很多问题:高吞吐,高并发,低延迟和负载均衡。

高吞吐,即同时承载大量用户的使用。整个系统同时服务的用户数,这个吞吐量可定不是一台服务器可以解决的。所以就需要多台服务器同时协调服务。

高并发是高吞吐的一个延伸需求,当我们承载海量用户时,希望每台服务器能及其所能的工作,最好不要出现无谓的消耗和等待的情况。

低延时,要求我们在大量用户访问时很快地返回计算结果。

负载均衡,是为了有效的应对用户来源的复杂性。要让同时发生的请求有效的让多个不同的服务器承载。

产生的问题:

  1. 如何利用多台服务器,不让一部分服务器影响整个系统的处理能力。
  2. 如何既可能多的处理任务,减少消耗。
  3. 请求的分拣和转发,如何尽可能让请求较快得到处理。

分布式系统就是为了解决这些问题的基本方法。

分布式架构:

  1. 系统访问的特点遵循二八定律,即80%的业务访问集中在20%的数据上。将数据库中访问集中的一部分数据储存在缓存服务器上,减少数据库的访问次数,降低数据库的访问压力。
  2. 多台服务器通过负载均衡同时向外部提供服务,解决单台服务器处理能力和存储上限的问题。
  3. 系统上按照业务进行拆分改造,应用服务器按照业务区分进行分别部署。
  4. ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

 

推荐阅读