分散式dubbo zookeeperfastdfsactivemqredis 分散式緩存
介紹
1. 項目核心代碼結構截圖
<modules>
<!-- jeesz 工具jar -->
<module>jeesz-utils</module>
<!-- jeesz 公共配置jar -->
<module>jeesz-config</module>
<!-- jeesz 核心框架jar -->
<module>jeesz-framework</module>
<!-- jeesz CMS業務jar -->
<module>jeesz-core-cms</module>
<!-- jeesz 代碼自動生成業務jar -->
<module>jeesz-core-gen</module>
<!-- jeesz 我的收藏業務jar -->
<module>jeesz-core-bookmark</module>
<!-- jeesz 電子流業務jar -->
<module>jeesz-core-act</module>
<!-- jeesz OA業務jar -->
<module>jeesz-core-oa</module>
<!-- jeesz 測試業務jar -->
<module>jeesz-core-test</module>
<!-- jeesz 定時調度業務jar -->
<module>jeesz-core-scheduler</module>
<!-- jeesz 我的任務業務jar -->
<module>jeesz-core-task</module>
<!-- jeesz admin後臺管理系統 -->
<module>jeesz-web-admin</module>
<!-- jeesz Restful服務管理系統 -->
<module>jeesz-web-service</module>
<!-- jeesz 定時調度管理系統 -->
<module>jeesz-web-scheduler</module>
<!-- jeesz 我的任務Dubbo服務消費者 -->
<module>jeesz-web-task</module>
<!-- jeesz 我的收藏Dubbo服務消費者 -->
<module>jeesz-web-bookmark</module>
<!-- jeesz 我的收藏Dubbo服務介面 -->
<module>jeesz-facade-bookmark</module>
<!-- jeesz 我的收藏Dubbo服務生產者 -->
<module>jeesz-service-bookmark</module>
<!-- jeesz 我的任務Dubbo服務介面 -->
<module>jeesz-facade-task</module>
<!-- jeesz 我的任務Dubbo服務生產者 -->
<module>jeesz-service-task</module>
<!-- JMS消息 -->
<module>jeesz-web-mq-task</module>
</modules>
特別提醒:開發人員在開發的時候可以將自己的業務REST服務化或者Dubbo服務化
2. 項目依賴介紹
2.1 後臺管理系統、Rest服務系統、Scheculer定時調度系統依賴如下圖:
2.2 Dubbo獨立服務項目依賴如下圖:
3. 平臺簡介
Jeesz是一個分散式的框架,提供項目模塊化、服務化、熱插拔的思想,高度封裝安全性的Java EE快速開發平臺。
Jeesz本身集成Dubbo服務管控、Zookeeper註冊中心、Redis分散式緩存技術、FastDFS分散式文件系統、ActiveMQ非同步消息中間件、Nginx負載均衡等分散式技術
使用Maven做項目管理,項目模塊化,提高項目的易開發性、擴展性
以Spring Framework為核心容器,Spring MVC為模型視圖控制器,MyBatis為數據訪問層, Apache Shiro為許可權授權層,Ehcahe對常用數據進行緩存,Activit為工作流引擎等。
前端集成Bootstrap4 metronic框架,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.Eclipse IDE:採用Maven項目管理,模塊化。
2.代碼生成:通過界面方式簡單配置,自動生成相應代碼,目前包括三種生成方式(增刪改查):單表、一對多、樹結構。生成後的代碼如果不需要註意美觀程度,生成後即可用。
6. 技術選型(只列了一部分技術)
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等
環境搭建:
1.環境準備
1.開發工具: Eclipse IDE(建議使用高一點的版本)
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》Installed JREs》Edit》選擇自己本地jdk安裝路徑》Finished》OK
8.去除JavaScript的驗證等信息(因為項目中大量使用js、css、xml等其他不同格式的文件,考慮到每次編譯的執行時間,所以這邊臨時將一些驗證信息去除)
Window》Prefrences》Validation》Suspend all validators》ok
9. 修改剛剛安裝的maven settings.xml配置文件,路徑如下:E:\myprj\jeesz-maven\apache-maven-3.1.1\conf,
添加本地庫地址:<localRepository>E:/myprj/jeesz-maven/apache-maven-3.1.1/repository</localRepository>
修改中央庫路徑(在網路正常的情況下,可以從遠程中央庫下載缺失的jar包,我這裡使用了Oschina的中央庫,如果網路有問題,
大家可以使用自己公司的私服進行載入相關jar包),考慮到大家包有時候下載不下來,我這裡也給大家共用了項目所需要的jar包,全部放到了以下目錄:
E:/myprj/jeesz-maven/apache-maven-3.1.1/repository
10. Eclipse中配置maven安裝目錄和Setting文件載入的本地庫目錄
11.導入Maven項目
File》Import》Existing Maven Projects》下一步
選擇你本地的maven項目(請選中jeesz-project根目錄),點擊確定
載入出來所有項目後,點擊finish完成
提醒:這個導入的過程要一段時間,因為我本地連接網路,所以會從遠程中央庫下載項目所需要的所有的jar包,請大家耐心等候。
如果你使用了本地庫則不需要等待很長時間,如果是使用公司私服,則等待時間也不會很長。
導入後的項目信息
本地庫的包已經下載了
12.下載完所有jar包,更新maven項目:
1)選中所有項目 2) 右鍵選擇maven》Update project 選擇所有》勾選關聯項》點擊ok
如果項目還出現紅X錯誤,則必定是缺少相關的jar包,可以使用:
Window》showView》problem視窗查看異常信息
如果缺少jar包,可以將我們提供的jar包直接copy到你指定目錄即可
待項目裡面的所有錯誤全部清零後才能進行下一步工作(如下圖所示)
選中所有項目,對項目進行清理:Project》clean
13. 嘗試對項目進行編譯、打包看是否有問題:
註意:一般我們打包編譯是針對於根項目,因為裡面配置了所有的依賴關係。右鍵jeesz-project》Run As》Maven build…
在彈出的對話框中錄入clean install –X 命令,勾選Skip tests,Run…
提醒:如果對maven命令不是很熟的,可以去查下相關的資料
這邊簡單做下解釋: clean install –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消費者項目,目的是讓開發人員瞭解服務是怎樣調用的。
到此整個項目的安裝過程先到這裡,請各位開發人員安裝完項目後投入開發,所有的業務直接服務化,因為項目是基於驅動開發的,故將你們的表設計好,通過jeesz-web-admin項目的gen代碼生成模塊自動生成所有的controller、service、dao、xml、jsp界面等,直接進行業務編寫處理。近期會不斷的完善文檔,請時刻關註。
如果有朋友願意瞭解項目更多的信息,請直接到我博客列表:
聲明:該框架面向企業,是大型互聯網分散式企業架構,後期會介紹linux上部署高可用集群項目。
有願意瞭解框架技術或者源碼的朋友直接加Q(2137028325)一起學習