Java分布式架构.docx
- 文档编号:12789689
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:31
- 大小:2.83MB
Java分布式架构.docx
《Java分布式架构.docx》由会员分享,可在线阅读,更多相关《Java分布式架构.docx(31页珍藏版)》请在冰点文库上搜索。
Java分布式架构
介绍
1. 项目核心代码结构截图
--jeesz工具jar-->
--jeesz公共配置jar-->
--jeesz核心框架jar-->
--jeeszCMS业务jar-->
--jeesz代码自动生成业务jar-->
--jeesz我的收藏业务jar-->
--jeesz电子流业务jar-->
--jeeszOA业务jar-->
--jeesz测试业务jar-->
--jeesz定时调度业务jar-->
--jeesz我的任务业务jar-->
--jeeszadmin后台管理系統-->
--jeeszRestful服务管理系統-->
--jeesz定时调度管理系統-->
--jeesz我的任务Dubbo服务消費者-->
--jeesz我的收藏Dubbo服务消費者-->
--jeesz我的收藏Dubbo服務接口-->
--jeesz我的收藏Dubbo服务生产者-->
--jeesz我的任务Dubbo服务接口-->
--jeesz我的任务Dubbo服务生产者-->
--JMS消息-->
特别提醒:
开发人员在开发的时候可以将自己的业务REST服务化或者Dubbo服务化
2. 项目依赖介绍
2.1 后台管理系统、Rest服务系统、Scheculer定时调度系统依赖如下图:
2.2 Dubbo独立服务项目依赖如下图:
项目基础功能截图(自提供了最小部分)
3. 平台简介
Jeesz是一个分布式的框架,提供项目模块化、服务化、热插拔的思想,高度封装安全性的JavaEE快速开发平台。
Jeesz本身集成Dubbo服务管控、Zookeeper注册中心、Redis分布式缓存技术、FastDFS分布式文件系统、ActiveMQ异步消息中间件、Nginx负载均衡等分布式技术
使用Maven做项目管理,项目模块化,提高项目的易开发性、扩展性
以SpringFramework为核心容器,SpringMVC为模型视图控制器,MyBatis为数据访问层,ApacheShiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流引擎等。
前端集成Bootstrap4metronic框架,UI响应式、扁平化布局,适应所有PC、Pad、Anroid、ios移动设备等。
Jeesz主要定位于互联网企业架构,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:
系统权限组件、数据权限组件、数据字典组件、核心工具组件、视图操作组件、工作流组件、代码生成等。
采用分层设计、双重验证、提交数据安全编码、密码加密、访问验证、数据权限验证。
Jeesz目前包括以下模块项目,后台系统管理系统,RestFul独立服务系统、Scheduler定时调度系统、内容管理(CMS)系统、在线办公(OA)系统、我的待办(Task服务)、我的收藏(Bookmark服务)。
后台管理系统包括企业组织架构(用户管理、机构管理、区域管理)、菜单管理、角色权限管理、字典管理等功能;
RestFul独立提供标准Rest服务API,您可以快速实现自己的业务,提供需要的服务;
Quartz定时调度系统可以动态配置您的任务规则等;
内容管理(CMS)系统,包括内容管理,栏目管理、站点管理、公共留言、文件管理、前端网站展示等功能;
在线办公(OA)系统,主要提供简单的流程实例。
Jeesz提供了常用工具进行封装,包括日志工具、缓存工具、服务器端验证、数据字典、当前组织机构数据(用户、机构、区域)以及其它常用小工具等。
另外还提供一个强大的在线代码生成工具,此工具提供简单的单表、一对多、树结构功能的生成,如果对外观要求不是很高,生成的功能就可以用了。
使用了Jeesz基础框架,可以提高快速开发效率。
4. 内置功能(只列了一部分功能)
1.用户管理:
用户是系统操作者,该功能主要完成系统用户配置。
2.机构管理:
配置系统组织机构(公司、部门、小组),树结构展现,可随意调整上下级。
3.区域管理:
系统城市区域模型,如:
国家、省市、地市、区县的维护。
4.菜单管理:
配置系统菜单,操作权限,按钮权限标识等。
5.角色管理:
角色菜单权限分配、设置角色按机构进行数据范围权限划分。
6.字典管理:
对系统中经常使用的一些较为固定的数据进行维护,如:
是否、男女、类别、级别等。
7.操作日志:
系统正常操作日志记录和查询;系统异常信息日志记录和查询。
8.连接池监视:
监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
9.工作流引擎:
实现业务工单流转、在线流程设计器。
5. 开发工具
1.EclipseIDE:
采用Maven项目管理,模块化。
2.代码生成:
通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查):
单表、一对多、树结构。
生成后的代码如果不需要注意美观程度,生成后即可用。
6. 技术选型(只列了一部分技术)
1、后端
服务框架:
Dubbo、zookeeper、Rest服务
缓存:
Redis、ehcache
消息中间件:
ActiveMQ
负载均衡:
Nginx
分布式文件:
FastDFS
数据库连接池:
AlibabaDruid1.0
核心框架:
Springframework
安全框架:
ApacheShiro1.2
视图框架:
SpringMVC4.0
服务端验证:
HibernateValidator5.1
布局框架:
SiteMesh2.4
工作流引擎:
Activiti5.15
任务调度:
quartz1.8.5
持久层框架:
MyBatis3.2
日志管理:
SLF4J1.7、Log4j
工具类:
ApacheCommons、Jackson2.2、Xstream1.4、Dozer5.3、POI
2、前端
JS框架:
JQuery1.9。
CSS框架:
Bootstrap4metronic
客户端验证:
JQueryValidationPlugin。
富文本:
CKEcitor
文件管理:
CKFinder
动态页签:
Jerichotab
数据表格:
jqGrid
对话框:
jQueryjBox
树结构控件:
jQueryzTree
其他组件:
Bootstrap4metronic
3、支持
服务器中间件:
Tomcat6、7、Jboss7、WebLogic10、WebSphere8
数据库支持:
目前仅提供mysql数据库的支持,但不限于数据库,下个版本升级多数据源切换和数据库读写分离:
如:
Oracle、SqlServer、H2等
支持开发环境:
Eclipse、MyEclipse、Ras、Idea等
环境搭建:
1.环境准备
1.开发工具:
EclipseIDE(建议使用高一点的版本)
2.JDK版本:
JDK1.7
3.项目管理:
Maven3.1.1
2.安装步骤
1.安装jdk1.7并配置环境变量(相信大家都会做,这里不再做重复的说明)
2.安装maven:
maven安装过程就是解压缩的过程(我已经帮大家解压了,目录:
E:
\myprj\jeesz-maven\apache-maven-3.1.1),为了方便大家,这边已经提供了相关的安装包,会在打包的目录下共享。
3.mavan配置环境变量,右击我的电脑属性高级系统设置环境变量找到(系统变量path),在最前面输入你的maven安装包路径,声明:
因为上一步解压了指定的目录,所以配置如下:
E:
\myprj\jeesz-maven\apache-maven-3.1.1\bin;
相信大家都有配过环境变量,如果您不是很清楚,请查询相关资料,了解一下maven的相关知识。
4.打开cmd,在里面敲:
mvn–version,出现以下结果说明你maven安装成功了
mvn是maven的一个指令,mvn-version是查看版本信息,我的操作系统是64位的WIN7,安装的maven是3.1.1,如果能打印如上信息,说明到此Maven3已经在你的电脑上安装完成。
5.建工作空间(进入后选中j2ee视图)
6.配置Eclipse编码为UTF-8
Eclipse工具栏中选择Window》Prefrences》General》Workspace
7.配置jre环境(之前大家需要安装了jdk1.7版本,这里就使用安装好的jdk进行配置):
选择Window》Prefrences》java》InstalledJREs》Edit》选择自己本地jdk安装路径》Finished》OK
8.去除JavaScript的验证等信息(因为项目中大量使用js、css、xml等其他不同格式的文件,考虑到每次编译的执行时间,所以这边临时将一些验证信息去除)
Window》Prefrences》Validation》Suspendallvalidators》ok
9.修改刚刚安装的mavensettings.xml配置文件,路径如下:
E:
\myprj\jeesz-maven\apache-maven-3.1.1\conf,
添加本地库地址:
/myprj/jeesz-maven/apache-maven-3.1.1/repository
修改中央库路径(在网络正常的情况下,可以从远程中央库下载缺失的jar包,我这里使用了Oschina的中央库,如果网络有问题,
大家可以使用自己公司的私服进行加载相关jar包),考虑到大家包有时候下载不下来,我这里也给大家共享了项目所需要的jar包,全部放到了以下目录:
E:
/myprj/jeesz-maven/apache-maven-3.1.1/repository
10. Eclipse中配置maven安装目录和Setting文件加载的本地库目录
11.导入Maven项目
File》Import》ExistingMavenProjects》下一步
选择你本地的maven项目(请选中jeesz-project根目录),点击确定
加载出来所有项目后,点击finish完成
提醒:
这个导入的过程要一段时间,因为我本地连接网络,所以会从远程中央库下载项目所需要的所有的jar包,请大家耐心等候。
如果你使用了本地库则不需要等待很长时间,如果是使用公司私服,则等待时间也不会很长。
导入后的项目信息
本地库的包已经下载了
12.下载完所有jar包,更新maven项目:
1)选中所有项目2)右键选择maven》Updateproject选择所有》勾选关联项》点击ok
如果项目还出现红X错误,则必定是缺少相关的jar包,可以使用:
Window》showView》problem窗口查看异常信息
如果缺少jar包,可以将我们提供的jar包直接copy到你指定目录即可
待项目里面的所有错误全部清零后才能进行下一步工作(如下图所示)
选中所有项目,对项目进行清理:
Project》clean
13. 尝试对项目进行编译、打包看是否有问题:
注意:
一般我们打包编译是针对于根项目,因为里面配置了所有的依赖关系。
右键jeesz-project》RunAs》Mavenbuild…
在弹出的对话框中录入cleaninstall–X命令,勾选Skiptests,Run…
提醒:
如果对maven命令不是很熟的,可以去查下相关的资料
这边简单做下解释:
cleaninstall–X表示清理所有项目并将jar包装载到本地库,其中-X表示输出的信息(一般在出现maven问题的时候可以使用-X来定位问题。
)
此时控制台开始编译装载所有的包,这个过程有点漫长,请大家耐心等候
出现以下结果说明项目是正常的。
打好的包(包含war、jar),都在target文件夹下,这边只以jeesz-web-admin为实例截图如下:
14.Tomcat发布jeesz项目(发布过程不做详细介绍,大家都会做):
下面对各个不同的项目进行介绍:
Jeesz-web-admin:
可以独立部署(后台管理平台)
Jeesz-web-service:
可以独立部署(REST服务平台,客户可以根据自己的业务去拓展Rest服务,里面已经写好了相关的实例)
Jeesz-service-bookmark、jeesz-service-task为dubbo服务提供者(这边只通过收藏和待办项目来对dubbo服务项目开发做相关介绍,客户可以根据自己的业务去拓展dubbo服务,可以同时部署,也可以拆分部署)
Jeesz-web-bookmark、jeesz-web-task为dubbo消费者平台,其中dubbo服务对外暴漏的服务接口为:
Jeesz-facade-bookmark、jeesz-façade-task(这边只通过收藏和待办项目来描述dubbo客户端怎样调用dubbo服务提供者的过程,客户可以将dubbo消费端植入到不同的项目中,只需要做一些简单配置就可以了)
部署条件:
1) 执行mysql数据库脚本:
jeesz.sql
数据库jdbc的配置项可以参考
2) Jeesz-web-admin可以直接通过tomcat部署
登陆用户名密码:
jeesz/admin
3) Jeesz-web-service:
可以通过tomcat独立部署
登陆用户名密码:
jeesz/admin
部署dubbo相关的项目需要具备以下条件
>安装dubbo管控平台,将war包解压到tomcat,并将目录替换为根目录,直接启动tomcat即可(开发环境提供window)
>Zookeeper注册中心安装,我这边提供了zookeeper-3.4.5版本(开发环境提供window),进入安装目录启动即可
提醒:
我这边已经给提供了相关的程序,其中dubbo管控平台要独立部署在Tomcat服务器上,这个不需要进行高可用配置,直接启动tomcat就可以启动。
Zookeeper注册中心有相关的命令可以直接运行启动。
如果想部署在linux系统上,可以看我们提供的相关文档即可
5) 待dubbo管控台和注册中心启动ok,则将Jeesz-service-bookmark、jeesz-service-task项目同时(可以独立部署)部署到tomat中,为dubbo服务提供者
6) 登陆dubbo管控台查看相关的服务信息,可以看到你发布的服务已经由管控台进行管控了:
http:
//localhost:
8080/root
直接通过地址可以访问是因为将包名改为了Root
用户名密码:
root/root
7) 分部部署Jeesz-web-bookmark、jeesz-web-task dubbo消费者项目,目的是让开发人员了解服务是怎样调用的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 分布式 架构