前台服务和后台服务需要为用户提供服务,两者都要Service为其提供服务。Service在Zookeeper中注册服务,cotroller和portal在需要服务时直接在zookeeper 寻找服务。Dao层则负责服务的具体实现.
- Dao 层做数据持久层的工作,负责与数据库进行联络的任务都在Dao层。
- Service 负责业务模块的逻辑应用设计。
- Controller 层负责具体的业务模块流程控制,调用Service 层的接口来实现控制业务流程。
使用doubbo把项目拆分后:
- Controller作为一个项目的消费者。
- Service和Dao作为服务的提供者。
- Zookeeper作为doubbo服务的注册中心,可以做到集群管理数据。
当Service封装到Controller中时,就是ssm设计模式。同时会使前后台都分别要有对应服务,即在同一台服务器上进行服务。而通过zookeeper可以是数据管理更有效,服务效率更高。
当大量用户访问同一个互联网业务,会有很多问题:高吞吐,高并发,低延迟和负载均衡。
高吞吐,即同时承载大量用户的使用。整个系统同时服务的用户数,这个吞吐量可定不是一台服务器可以解决的。所以就需要多台服务器同时协调服务。
高并发是高吞吐的一个延伸需求,当我们承载海量用户时,希望每台服务器能及其所能的工作,最好不要出现无谓的消耗和等待的情况。
低延时,要求我们在大量用户访问时很快地返回计算结果。
负载均衡,是为了有效的应对用户来源的复杂性。要让同时发生的请求有效的让多个不同的服务器承载。
产生的问题:
- 如何利用多台服务器,不让一部分服务器影响整个系统的处理能力。
- 如何既可能多的处理任务,减少消耗。
- 请求的分拣和转发,如何尽可能让请求较快得到处理。
分布式系统就是为了解决这些问题的基本方法。
分布式架构:
- 系统访问的特点遵循二八定律,即80%的业务访问集中在20%的数据上。将数据库中访问集中的一部分数据储存在缓存服务器上,减少数据库的访问次数,降低数据库的访问压力。
- 多台服务器通过负载均衡同时向外部提供服务,解决单台服务器处理能力和存储上限的问题。
- 系统上按照业务进行拆分改造,应用服务器按照业务区分进行分别部署。
- ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。