MyBatis六:Dubbo与Zookeeper、SpringMvc整合和拔取

DUBBO与ZOOKEEPER、SPRINGMVC整合和应用

互联网的开拓进取,网站接纳的局面不断扩充,常规的垂直应用架构已无力回天答应,分布式服务架构以及流动统计架构势在必行,Dubbo是一个分布式服务框架,在这种状况下诞生的。现在主导业务抽取出来,作为独立的劳务,使前端拔取能更迅捷和安静的响应。

第一:介绍Dubbo背景

Dubbo是一个分布式服务框架,解决了地点的所面对的题目,Dubbo的架构如图所示:

着重大旨部件:

Remoting: 网络通信框架,实现了 sync-over-async 和 request-response
音信机制.

RPC: 一个中远距离过程调用的悬空,襄助负载均衡、容灾和集群效应

Registry: 服务目录框架用于服务的挂号和劳务事件发布和订阅

Dubbo工作原理

MyBatis 1

Provider

透露服务方称之为“服务提供者”。

Consumer

调用远程服务方称之为“服务消费者”。

Registry

劳动登记与发现的主导目录服务称之为“服务注册中央”。

Monitor

总括服务的调用次调和调用时间的日志服务称之为“服务监控中央”。

(1) 连通性:

挂号要旨承担服务地点的挂号与追寻,相当于目录服务,服务提供者和买主只在启动时与登记中央交互,注册中央不转正呼吁,压力较小

监控中央承担总括各服务调用次数,调用时间等,总括先在内存汇总后每分钟一回发送到监控中央服务器,并以报表展现

服务提供者向注册中央注册其提供的劳务,并反映调用时间到监督中心,此时间不带有网络支出

劳务消费者向注册主旨得到服务提供者地址列表,并依据负荷算法直白调用提供者,同时反映调用时间到监控中央,此时间包含网络开支

挂号中央,服务提供者,服务消费者三者之间均为长连接,监控中央除了

登记中央经过长连接感知服务提供者的存在,服务提供者宕机,注册中央将立刻推送事件通报消费者

注册中央和监督主旨总体宕机,不影响已运转的提供者和消费者,消费者在当地缓存了提供者列表

挂号主题和监察主旨都是可选的,服务消费者可以直连服务提供者

(2) 健状性:

监理中央宕掉不影响使用,只是丢失部分采样数据

数据库宕掉后,注册核心还可以因此缓存提供劳务列表查询,但无法注册新劳动

挂号核心对等集群,任意一台宕掉后,将自动切换来另一台

挂号核心全方位宕掉后,服务提供者和劳动消费者仍可以透过地点缓存通讯

劳务提供者无状态,任意一台宕掉后,不影响使用

劳务提供者全体宕掉后,服务消费者使用将不能使用,并无限次重连等待服务提供者复苏

(3) 伸缩性:

登记主旨为对等集群,可动态扩大机械配置实例,所有客户端将自行发现新的挂号要旨

服务提供者无状态,可动态扩充机械配置实例,注册主题将推送新的劳动提供者音讯给顾客

节点角色表达:

Provider: 表露服务的服务提供方。

Consumer: 调用长途服务的劳动消费方。

Registry: 服务注册与发现的登记中央。

Monitor: 总括服务的调用次调和调用时间的监察核心。

Container: 服务运行容器。

调用关系表达:

  1. 劳动容器负责启动,加载,运行服务提供者。

  2. 劳动提供者在启动时,向注册中央登记自己提供的服务。

  3. 劳动消费者在启动时,向注册主旨订阅自己所需的劳务。

3.
挂号中心重临服务提供者地址列表给消费者,假如有改观,注册要旨将依据长连接推送变更数据给买主。

4.
劳动消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者举行调用,固然调用战败,再选另一台调用。

5.
劳务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一遍总结数据到监督中央。

停放功用(只列了一有的效能)

1.用户管理:用户是系统操作者,该效用首要成就系统用户配置。

2.单位管理:配置系列协会部门(公司、部门、小组),树结构显示,可自由调整上下级。

3.区域管理:系统都会区域模型,如:国家、省市、地市、区县的爱慕。

4.菜单管理:配置体系菜单,操作权限,按钮权限标识等。

5.角色管理:角色菜单权限分配、设置角色按机关举办数量范围权限划分。

6.字典管制:对系统中时时利用的有的相比较恒定的数码开展维护,如:是否、男女、系列、级别等。

7.操作日志:系统正常操作日志记录和询问;系统丰富消息日志记录和查询。

8.连接池监视:监视当期系统数据库连接池状态,可进展解析SQL找出体系特性瓶颈。

9.工作流引擎:实现工作工单流转、在线流程设计器。

开发工具

1.Eclipse IDE:接纳Maven项目管理,模块化。

2.代码生成:通过界面情势简单布置,自动生成相应代码,近日席卷二种生成模式(增删改查):单表、一对多、树结构。生成后的代码假诺不需要专注美观程度,生成后即可用。

技术选型(只列了一局部技术)

1、后端

劳务框架:Dubbo、zookeeper、Rest服务

缓存:Redis、ehcache

音信中间件:ActiveMQ

负载均衡:Nginx

分布式文件:法斯特(Fast)(Fast)DFS

数据库连接池:Alibaba Druid 1.0

基本框架:Spring framework

安全框架:Apache Shiro 1.2

视图框架:Spring MVC 4.0

服务端验证:Hibernate Validator 5.1

布局框架:SiteMesh 2.4

做事流引擎:Activiti 5.15

任务调度:quartz 1.8.5

持久层框架:MyBatis 3.2

日志管理:SLF4J 1.7、Log4j

工具类:Apache Commons、Jackson 2.2、Xstream 1.4、Dozer 5.3、POI

2、前端

JS框架:JQuery 1.9。

CSS框架: Bootstrap 4 metronic

客户端验证:JQuery Validation Plugin。

富文本:CKEcitor

文本管理:CKFinder

动态页签:Jerichotab

数据表格:jqGrid

对话框:jQuery jBox

树结构控件:jQuery zTree

另外零件:Bootstrap 4 metronic

3、支持

服务器中间件:Tomcat 6、7、Jboss 7、WebLogic 10、WebSphere 8

数据库帮忙:近日仅提供mysql数据库的支撑,但不压制数据库,下个版本升级多数据源切换和数据库读写分离:
如:Oracle、SqlServer、H2等

支撑开发条件:Eclipse、MyEclipse、Ras、Idea等

经典介绍:

源码结构

MyBatis 2

 

网站地图xml地图