• UID20708
  • 登录2017-11-16
  • 粉丝0
  • 关注0
  • 发帖11
  • 主页
  • 金币95枚
qq_liYqCss15101 发布于2017-11-14 08:58
0/57

DUBBO与ZOOKEEPER、SPRINGMVC整合和使用

楼层直达
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的。现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应。
第一:介绍Dubbo背景
Dubbo是一个分布式服务框架,解决了上面的所面对的问题,Dubbo的架构如图所示:
主要核心部件:
Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制.
RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能
Registry: 服务目录框架用于服务的注册和服务事件发布和订阅
Dubbo工作原理



Provider
暴露服务方称之为“服务提供者”。
Consumer
调用远程服务方称之为“服务消费者”。
Registry
服务注册与发现的中心目录服务称之为“服务注册中心”。
Monitor
统计服务的调用次调和调用时间的日志服务称之为“服务监控中心”。
(1) 连通性:
注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小
监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示
服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心,此时间不包含网络开销
服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心,此时间包含网络开销
注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外
注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者
注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表
注册中心和监控中心都是可选的,服务消费者可以直连服务提供者
(2) 健状性:
监控中心宕掉不影响使用,只是丢失部分采样数据
数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务
注册中心对等集群,任意一台宕掉后,将自动切换到另一台
注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯
服务提供者无状态,任意一台宕掉后,不影响使用
服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复
(3) 伸缩性:
注册中心为对等集群,可动态增加机器部署实例,所有客户端将自动发现新的注册中心
服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者
节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。
调用关系说明:
0. 服务容器负责启动,加载,运行服务提供者。
1. 服务提供者在启动时,向注册中心注册自己提供的服务。
2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
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
分布式文件:FastDFS
数据库连接池: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等
经典介绍:
源码结构





欢迎大家一起学习研究相关技术愿意了解框架技术或者源码的朋友直接加求求(企鹅):2042849237
分布式的一些解决方案,有愿意了解的朋友可以找我们团队探讨
更多详细源码参考来源:http://minglisoft.cn/technology
标签:dubbo+springmvc+mybatis+ehcache+redis J2ee分布式架构,restful,kafka,shiro

0人打赏
您需要登录后才可以回帖
发表回复
极贡献
技术问答
专题荟萃
程序人生
视觉设计
Android开发
iOS开发
编程语言
前端开发
后端开发
服务器架构
软件测试
运维方案
创业路上



最热文章墙

  • 79515/378   【精品推荐】200多种Android动画效果的强悍框架,太全了,不看这个,再有动画的问题,不理你了^@^

  • 45342/191   情人节福利,程序员表白的正确姿势:改几行代码就变成自己的表白了

  • 45028/0   Python爬虫:常用浏览器的useragent

  • 41541/260   【精品推荐】Android版产品级的音乐播放器源码,功能太强大了,最好的产品原型有木有?

  • 38714/145   省时省力的Android组件群来了,非常棒的原型参考

  • 30091/142   2016抢红包软件及源码

  • 29317/2   超全!整理常用的iOS第三方资源

  • 29307/71   原创表白APP,以程序员的姿势备战新年后的7夕,持续完善中!

  • 24407/160   Android版类似UC浏览器:非常赞,产品级的源码

  • 22883/30   麻省理工的一帮疯子,真的实现了随意操控万物!(绝对黑科技)

  • 22578/25   Android工程师面试题大全

  • 22504/27   2016程序员跳槽全攻略

  • 21963/9   GitHub上排名前50的iOS项目:总有一款你用得着

  • 20927/20   码魂:程序员的牛B漫画

  • 19092/85   Android小而全的博客源码:非常适合全面掌握开发技巧

  • 19075/73   【持续更新中】Android福利贴(二):资料源码大放送

  • 19032/10   2016年最全的Android面试考题+答案 精编版

  • 18937/42   一个绚丽的loading动效分析与实现!

  • 18773/3   吐槽那些程序员的搞笑牛逼注释

  • 17661/45   惊艳的App引导页:背景图片切换加各个页面动画效果

  • 17637/1   iOS 动画总结

  • 17528/82   仿京东商城客户端Android最新版,不错的原型和学习资料

  • 17494/104   Android带弹幕的视频播放器源码,来自大名鼎鼎的Bilibili弹幕网站

  • 17168/23   个人收集的Android 各类功能源代码

  • 16705/5   新一代Android渠道打包工具:1000个渠道包只需要5秒

  • 16633/21   Android福利第三波【Android电子书】

  • 16454/53   基于瀑布流的美女图片浏览App,有注释的源代码

  • 16447/81   【精品推荐】类似360安全卫士安Android源码:非常赞的产品原型

  • 16412/10   女程序员的梦,众网友的神回复

  • 16394/0   iOS中文版资源库,非常全

  • 16354/17   用JavaScript 来开发iOS和Android 原生应用:React Native开源框架中文版来啦

  • 16099/11   年会上现场review代码是怎么样的体验!

  • 16052/23   珍藏多年的素材,灵感搜寻网站

  • 15543/18   65条最常用正则表达式,你要的都在这里了

  • 14861/15   基于Android支付宝支付设计和开发方案

  • 14273/11   有木有这样一张酷图帮你集齐所有git命令超实用

  • 14201/17   什么是真正的黑客:收获12200+Stars,人气远超微软开源VS

  • 13994/46   在线音乐播放器完整版(商用级的源码):非常赞,可听免费高品质专辑

  • 13728/0   GitHub iOS 库和框架Top100 

  • 13696/61   【技巧一】搭配Android Studio,如何实现App远程真机debug?

  • 13573/7   用程序员的姿势抢过年的火车票

  • 13528/7   一张图搞定iOS学习路线,非常全面

  • 13156/10   成为Java顶尖程序员 ,看这11本书就够了

  • 13115/10   微信支付终于成功了(安卓,iOS),在此分享

  • 13012/18   一张图搞定Android学习路线,非常全面

  • 12829/29   【持续更新中】Android福利贴(一):资料源码

  • 12752/3   基于Node.js的强大爬虫,能直接发布抓取的文章哦

  • 12503/4   46 个非常有用的 PHP 代码片段

  • 12026/3   即时通信第三方库

  • 11457/8   流媒体视频直播方案

  • 11392/18   八个最优秀的Android Studio插件

  • 11265/9   B站建开源工作组:APP想支持炫酷弹幕的看过来

  • 11051/2   【精品推荐】高质量PHP代码的50个实用技巧:非常值得收藏

  • 11050/9   烧了5亿美金,这家神秘的公司即将颠覆人类未来!

  • 10958/10   中国黑客的隐秘江湖:攻守对立,顶尖高手月入千万美元

  • 10237/6   开箱即用!Android四款系统架构工具

  • 10026/10   十大技巧快速提升Android应用开发性能

  • 9988/3   10款GitHub上最火爆的国产开源项目——可以媲美西半球

  • 9932/1   Android性能优化视频,文档以及工具

  • 9860/0   基于node-webkit跨平台应用案例集之(一)

  • 返回顶部