1. 程式人生 > >Java架構-spring cloud構建分散式雲架構-微服務

Java架構-spring cloud構建分散式雲架構-微服務

1.Cloud框架選型-Cloud簡介

   Cloud使用大型網際網路分散式企業微服務雲架構(Cloud分散式微服務雲)
   雲框架是基於Spring Cloud來封裝的,是一系列框架的有序集合。利用Spring
   
   Boot的開發模式簡化了分散式系統基礎設施的開發,
   如服務發現、註冊、配置中心、訊息匯流排、負載均衡、斷路器、資料監控等(這裡只簡單的列了一部分)
   都可以用Spring Boot的開發風格做到一鍵啟動和部署。
   雲Cloud將目前比較成熟、經得起實際考驗的服務框架組合起來,
   通過Spring Boot風格進行再封裝,遮蔽掉了複雜的配置和實現原理,
   最終整合出一套簡單易懂、易部署和易維護的分散式系統架構平臺。

採用服務化的元件開發模式,可實現複雜的業務功能。提供驅動式開發模式,整合內建的程式碼生成器,將JavaEE開發效率提高5倍以上,減少50%的程式碼開發量,解決80%的重複工作,讓開發者更關注業務邏輯。 使用Maven進行專案的構建管理,採用Jenkins進行持續整合,主要定位於大型分散式企業系統或大型分散式網際網路產品的架構。

2.技術架構

   鴻鵠Cloud分散式微服務雲結合了當前大部分企業的通用需求,包括技術的選型比較嚴格、苛刻,
   不僅要用業界最流行的技術,還要和國際接軌,
   在未來的5~10年內不能out。為公司技術選型要有一種放眼世界的眼光,
   不僅要給公司做好的技術選型,而且還要快速響應企業的業務需求,能夠為企業快速定製化業務。

Cloud使用大型網際網路分散式企業微服務雲架構,架構圖如下:

3.Cloud組成

大型企業分散式微服務雲架構服務元件實現模組化、微服務化、原子化、灰度釋出、持續整合,元件組成如下:

大型企業分散式微服務雲架構服務元件實現模組化、微服務化、原子化、灰度釋出、持續整合,元件組成如下:

commonservice eureka

雲端服務發現,一個基於 REST 的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移

commonservice config

配置管理工具包,讓你可以把配置放到遠端伺服器,集中化管理叢集配置,目前支援本地儲存、Git以及Subversion。

Spring Cloud Bus

事件、訊息匯流排,用於在叢集(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署。

Hystrix

熔斷器,容錯管理工具,旨在通過熔斷機制控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。

Feign

Feign是一種宣告式、模板化的HTTP客戶端。

Spring Cloud Task

提供雲端計劃任務管理、任務排程。

Ribbon

提供雲端負載均衡,有多種負載均衡策略可供選擇,可配合服務發現和斷路器使用。

Turbine

Turbine是聚合伺服器傳送事件流資料的一個工具,用來監控叢集下hystrix的metrics情況。

Zuul

Zuul 是在雲平臺上提供動態路由,監控,彈性,安全等邊緣服務的框架。Zuul 相當於是裝置和 Netflix 流應用的 Web 網站後端所有請求的前門。

Spring Cloud Security

基於spring security的安全工具包,為你的應用程式新增安全控制。

commonservice sso

為Web、手機、PC提供統一登入、認證、授權入口,允許第三方系統在使用者授權的前提下訪問使用者在服務鴻鵠雲商儲存的服務資訊。

commonservice apigateway

API閘道器封裝了系統內部架構,為每個客戶端提供一個定製的API。如身份驗證、監控、負載均衡、快取、管理、靜態響應處理。

commonservice zipkin

日誌收集工具包,封裝了Dapper和log-based追蹤以及Zipkin和HTrace操作,為SpringCloud應用實現了一種分散式追蹤解決方案。

commonservice turbine

聚合伺服器傳送事件流資料的一個工具,用來監控叢集下hystrix的metrics情況。。

commonservice cache

獨立分散式快取服務。

commonservice admin

微服務監控,如Health、記憶體、JVM、垃圾回收、各種配置資訊(比如資料來源、快取列表和命中率)等,可修改logger的level等。

commonservice-system

提供後臺管理基礎功能,其中包括:使用者,角色,許可權,資料字典,選單,部門,機構,操作日誌,連線池監控等

4.程式碼結構

5.後臺管理平臺-技術點(只列了基礎部分)

SOA服務框架:Spring Cloud 、Spring Boot、RestFul等

分散式快取:Redis

模組化管理:Maven

資料庫連線池:Alibaba Druid

核心框架:Spring framework、Spring Boot

持久層框架:MyBatis

安全框架:Apache Shiro

服務端驗證:Hibernate Validator

任務排程:quartz

日誌管理:SLF4J 1.7、Log4j

客戶端驗證:JQuery Validation

動態頁籤:easyui tab

前端框架:Bootstrap、Vue

6.後臺管理平臺-功能結構圖

7.基礎功能列表及描述

使用者管理:使用者是系統操作者,該功能主要完成系統使用者配置。

角色管理:角色選單許可權分配、設定角色按機構進行資料範圍許可權劃分。

許可權管理:對系統中經常使用的一些較為固定的資料進行維護等。

選單管理:配置系統選單,操作許可權,按鈕許可權標識等。

部門管理:配置系統組織機構,樹結構展現,可隨意調整上下級。

日誌管理:系統操作日誌記錄和查詢;系統異常資訊日誌記錄和查詢。

連線池監視:監視資料庫連線池狀態,分析SQL找出系統性能瓶頸。

8.後臺管理平臺-基礎功能截圖

9.雲平臺微服務層設計

10.Cloud的未來

Cloud為未來網際網路企業提供分散式基礎設施解決方案。同時,隨著近幾年微服務架構和Docker容器概念的火爆,也會讓Spring Cloud在未來越解決方案中提供了標準化的、全站式的技術方案,有效推進服務端軟體系統技術水平提升。

我這邊會將近期研發的spring cloud微服務雲架構的搭建過程和精髓記錄下來,幫助更多有興趣研發spring cloud框架的朋友,大家來一起探討spring cloud架構的搭建過程及如何運用於企業專案

我本人邀約各大BATJ架構大牛共創Spring Cloud構建微服務架構的交流社群。 (群號:573988200)歡迎各路架構師、開發者,學習與交流使用Spring Cloud諸多強大元件的實戰經驗。

為什麼某些人會一直比你優秀,是因為他本身就很優秀還一直在持續努力變得更優秀,而你是不是還在滿足於現狀內心在竊喜!

合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!

希望此文能幫到大家的同時,也聽聽大家的觀點。歡迎留言討論,加關注,分享你的高見!持續更新

To-陌霖Java架構

分享網際網路最新文章 關注網際網路最新發展