技術乾貨
標籤:技術分享前端
本文整理了 Dubbo 與 Zookeeper、SpringMVC 整合和使用的原理,入門必 Mark~vue
現在,Angular 和 React 這兩個JavaScript框架可謂紅的發紫,同時針對這兩個框架的選擇變成了當下最容易被問及或者被架構設計者考慮的問題,本文或許沒法告訴你哪一個框架更優秀,但儘可能從更多的角度去比較二者,儘量的爲你在選擇時提供更多的參考意見java
此次將是對上次的一次拓展。其中也會有vue部分源碼的解析。你們能夠先參考我另一篇有關 vue 組件開發的文章, (一入前端深似海,今後紅塵是路人系列第八彈之淺析 Vue 組件開發)nginx
標籤:獨家譯文git
Java 8 發佈三年多以後,即將快到2017年7月下一個版本發佈的日期了。 你可能已經據說過 Java 9 的模塊系統,可是這個新版本還有許多其它的更新。 這裏有九個使人興奮的新功能將與 Java 9 一塊兒發佈。github
首先,你須要提出如下問題:redis
-
你想在這裏實現什麼?spring
-
有什麼要求?sql
這是啓動每一個代碼審查過程的最佳方式。一要求作代碼審查的人已經知道這些問題的答案。 此函數返回一個 GitHub 收藏的用戶列表。 在 GitHub 上,有一個追蹤用戶的能力。數據庫
碼雲推薦
項目簡介:
- iBase4J是Java語言的分佈式系統架構。 使用Spring整合開源框架。
- 使用Maven對項目進行模塊化管理,提升項目的易開發性、擴展性。
- 系統包括三個模塊:公共模塊、系統管理模塊、Web展現模塊。
- 公共模塊:公共功能(AOP、緩存、基類、調度等等)、公共配置、工具類。
- 系統管理模塊:包括用戶管理、權限管理、數據字典、系統參數管理等等。
- 每一個模塊都是獨立的系統,能夠無限的擴展模塊,模塊之間使用Dubbo或MQ進行通訊。
- 每一個模塊服務多系統部署,註冊到同一個Zookeeper集羣服務註冊中心,實現集羣部署。
主要功能:
- 數據庫:Druid數據庫鏈接池,監控數據庫訪問性能,統計SQL的執行性能。 數據庫密碼加密,加密方式請查看PropertiesUtil,decryptProperties屬性配置須要解密的key。
- 持久層:mybatis持久化,使用MyBatis-Plus優化,減小sql開發量;aop切換數據庫實現讀寫分離。Transtraction註解事務。
- MVC: 基於spring mvc註解,Rest風格Controller。Exception統一管理。
- 調度:Spring+quartz, 能夠查詢、修改週期、暫停、刪除、新增、當即執行,查詢執行記錄等。
- 基於session的國際化提示信息,職責鏈模式的本地語言攔截器,Shiro登陸、URL權限管理。會話管理,強制結束會話。
- 緩存和Session:註解redis緩存數據,Spring-session和redis實現分佈式session同步,重啓服務會話不丟失。
- 多系統交互:Dubbo,ActiveMQ多系統交互,ftp/sftp/fastdafs發送文件到獨立服務器,使文件服務分離。
- 先後端分離:沒有權限的文件只用nginx代理便可。
- 日誌:log4j2打印日誌,業務日誌和調試日誌分開打印。同時基於時間和文件大小分割日誌文件。
- QQ、微信、新浪微博第三方登陸。
- 工具類:excel導入導出,漢字轉拼音,身份證號碼驗證,數字轉大寫人民幣,FTP/SFTP/fastDFS上傳下載,發送郵件,redis緩存,加密等等。
項目簡介:LTS(light-task-scheduler)主要用於解決分佈式任務調度問題,支持實時任務,定時任務和Cron任務。有較好的伸縮性,擴展性,健壯穩定性而被多家公司使用,同時也但願開源愛好者一塊兒貢獻。
架構圖
項目簡介:XXL-JOB是一個輕量級分佈式任務調度框架,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。現已開放源代碼並接入多家公司線上產品線,開箱即用。
特性
- 簡單:支持經過Web頁面對任務進行CRUD操做,操做簡單,一分鐘上手;
- 動態:支持動態修改任務狀態、暫停/恢復任務,以及終止運行中任務,即時生效;
- 調度中心HA(中心式):調度採用中心式設計,「調度中心」基於集羣Quartz實現,可保證調度中心HA;
- 執行器HA(分佈式):任務分佈式執行,任務"執行器"支持集羣部署,可保證任務執行HA;
- 任務Failover:執行器集羣部署時,任務路由策略選擇"故障轉移"狀況下調度失敗時將會平滑切換執行器進行Failover;
- 一致性:「調度中心」經過DB鎖保證集羣分佈式調度的一致性, 一次任務調度只會觸發一次執行;
- 自定義任務參數:支持在線配置調度任務入參,即時生效;
- 調度線程池:調度系統多線程觸發調度運行,確保調度精確執行,不被堵塞;
- 彈性擴容縮容:一旦有新執行器機器上線或者下線,下次調度時將會從新分配任務;
- 郵件報警:任務失敗時支持郵件報警,支持配置多郵件地址羣發報警郵件;
- 狀態監控:支持實時監控任務進度;
- Rolling執行日誌:支持在線查看調度結果,而且支持以Rolling方式實時查看執行器輸出的完整的執行日誌;
- GLUE:提供Web IDE,支持在線開發任務邏輯代碼,動態發佈,實時編譯生效,省略部署上線的過程。支持30個版本的歷史版本回溯。
- 數據加密:調度中心和執行器之間的通信進行數據加密,提高調度信息安全性;
- 任務依賴:支持配置子任務依賴,當父任務執行結束且執行成功後將會主動觸發一次子任務的執行, 多個子任務用逗號分隔;
- 推送maven中央倉庫: 將會把最新穩定版推送到maven中央倉庫, 方便用戶接入和使用;
- 任務註冊: 執行器會週期性自動註冊任務, 調度中心將會自動發現註冊的任務並觸發執行。同時,也支持手動錄入執行器地址;
- 路由策略:執行器集羣部署時提供豐富的路由策略,包括:第一個、最後一個、輪詢、隨機、一致性HASH、最不常用、最近最久未使用、故障轉移;
- 運行報表:支持實時查看運行數據,如任務數量、調度次數、執行器數量等;以及調度報表,如調度日期分佈圖,調度成功分佈圖等;
- 腳本任務:支持以GLUE模式開發和運行腳本任務,包括Shell、Python等類型腳本;
項目簡介:基於 zookeeper 的分佈式任務調度組件,很是小巧,使用簡單,只須要引入 jar 包,不須要單獨部署服務端。確保全部任務在集羣中不重複,不遺漏的執行。支持動態添加和刪除任務。
功能概述:
- 基於zookeeper+spring task/quartz/uncode task的分佈任務調度系統。
- 確保每一個任務在集羣中不一樣節點上不重複的執行。
- 單個任務節點故障時自動轉移到其餘任務節點繼續執行。
- 任務節點啓動時必須保證zookeeper可用,任務節點運行期zookeeper集羣不可用時任務節點保持可用前狀態運行,zookeeper集羣恢復正常運期。
- 支持動態添加、修改和刪除任務,支持任務暫停和從新啓動。
- 添加ip黑名單,過濾不須要執行任務的節點。
- 後臺管理和任務執行監控。
說明:
模式架構:
項目簡介:模仿國內知名B2C網站,實現的一個分佈式B2C商城 使用Spring Boot 自動配置 Dubbox / MVC / MyBatis / Druid / Solr / Redis 等。
使用技術:
- 後臺
- 使用
Spring Boot
構建整個項目 去除 XML 配置
Maven
構建項目
Jenkins
做爲持續集成
- 採用
Dubbox
做爲RPC框架
kryo
序列化
- 使用
Spring
+Spring MVC
+MyBatis
SSM框架
- 數據庫鏈接池使用
druid
- 數據庫使用
MySQL
和Redis
- 頁面引擎採用
Beetl
- 網頁採用
freemarker
生成靜態化頁面
- 存儲採用
FastDFS
存儲圖片等文件
- 採用
Solr
實現搜索服務
Swagger2
生成 RESTful Apis文檔
- 負載均衡使用
Nginx
、keepalived
實現高可用
- 採用
Spring Scheduled
作任務調度
- 消息中間件採用
RabbitMQ
- 在分佈式事務上則採用了TCC解決訂單支付方面時效性要求性高的分佈式事務,可靠的消息服務則來解決如會計記錄等時效性要求低的分佈式事務.
- 前臺
項目簡介:Elastic-Job 是一個分佈式調度解決方案,由兩個相互獨立的子項目 Elastic-Job-Lite 和 Elastic-Job-Cloud 組成。Elastic-Job-Cloud 使用 Mesos + Docker 的解決方案,額外提供資源治理、應用分發以及進程隔離等服務。
功能列表:
- 應用自動分發
- 基於Fenzo的彈性資源分配
- 分佈式調度協調
- 彈性擴容縮容
- 失效轉移
- 錯過執行做業重觸發
- 做業分片一致性,保證同一分片在分佈式環境中僅一個執行實例
- 支持並行調度
- 支持做業生命週期操做
- 豐富的做業類型
- Spring整合
- 運維平臺
- 基於Docker的進程隔離(TBD)
https://my.oschina.net/gitosc/blog/894187