搞起來還是有點複雜,記錄一下。
一、概述
最近做的項目,包含多個業務子系統。系統結構前後端分離,前端VUE3,後端采用微服務架構,open-cloud(雲服務開放平台)。open-cloud是幾年前國内出來的一個開源微服務架構,居于SpringCloud,現在已經停止維護了。但是我們之前有些項目應用到它,有些積累,是以一直在用,延續至今。我去年接觸了一下,現在是更加深入一些,學習心得和應用步驟需要及時總結、記錄。
open-cloud已經停止維護,原因不得而知,也許相對目前業界技術的發展,技術上已經有些陳舊,但是對于我的水準來說,仍然需要仰望,同時也是學習和應用微服務架構的一個好的切入點。
二、open-cloud代碼結構
裡面内容不少,有一些是我們應用的時候,必不可少的,如網關、平台基礎服務、平台使用者認證服務,有一些則是按需使用,比如工作流接口。
三、分布式部署
1、基礎部署内容
前面提到,我們項目前後端分離,前端VUE3,後端是這個open-cloud。部署時,需要運作open-cloud中的3個子項目:
這三個jar包是需要運作的。其中網關位址,就是前端請求資料時指向的位址。
其次是要部署nacos,以及部署管理背景,通過背景設定網關。Nacos是阿裡巴巴開源的微服務管理平台,可以幫助開發者快速實作動态服務發現、服務配置、服務中繼資料及流量管理。
2、原理
系統部署為分布式部署。比如上面提到的三個基礎服務,可以分别部署成3個微服務,然後每個業務子系統也分别部署成微服務。這些微服務,可以分布于不同的伺服器,使用不同的IP。前提是它們都使用同一個nacos命名空間。nacos在這裡充當了配置中心和注冊中心。隻要在同一個命名空間下,系統就能根據我們的請求,找到相關服務。
nacos,注冊中心
以上這些服務,可能部署在不同的伺服器,但都注冊到了同一個nacos命名空間下。
3、部署細節
1)前端
前端向後端請求資料的位址配置為網關服務位址。
2)open-cloud
(1)在整體項目最外層的pom.xml中,配置好nacos相關資訊:nacos位址、命名空間的ID
<profile>
<!-- nacos中命名空間的ID -->
<id>gzdd-zhfz-dzzhyj</id>
<activation>
<!--預設激活配置-->
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!--目前環境-->
<profile.name>gdhysthj</profile.name>
<!--Nacos配置中心位址-->
<config.server-addr>192.168.10.248:8848</config.server-addr>
<!--Nacos配置中心命名空間,用于支援多環境.這裡必須使用ID,不能使用名稱,預設為空-->
<config.namespace>gdhysthj</config.namespace>
<!--nacos使用者名-->
<config.username>nacos</config.username>
<!--nacos密碼-->
<config.password>nacos</config.password>
<!-- swagger-enable-->
<swagger.enable>true</swagger.enable>
<!--Nacos服務發現位址-->
<discovery.server-addr>192.168.10.248:8848</discovery.server-addr>
<!--微服務注冊服務位址網段-->
<discovery.server-ip>192.168.10</discovery.server-ip>
<!--zipkin服務位址-->
<zipkin.base-url>http://192.168.10.248:9411/</zipkin.base-url>
<!-- 端口配置-->
<!-- 系統配置-->
<!-- 服務網關,前端指向本端口 -->
<getway.server.port>8094</getway.server.port>
<!-- 認證 原8211 防止22端口沖突-->
<uaa.server.port>8212</uaa.server.port>
<!-- 業務系統配置 -->
<!-- 測試服務 -->
<test.server.port>8192</test.server.port>
<!-- 業務1 -->
<hyhj.server.port>8193</hyhj.server.port>
<!-- 業務2 -->
<rhpwk.server.port>8194</rhpwk.server.port>
</properties>
</profile>
(2)每個業務子系統項目中,使用相關nacos配置
nacos,配置中心
四、網關服務
微服務衆多,對于前端發來的請求,網關怎麼知道分發給誰呢?就靠網關的路由定義了。
open-cloud提供了一個背景管理前端(open-admin-ui),部署後,可通過它進行路由定義。定義将儲存在資料庫裡。同樣,該背景管理前端也指向網關服務位址。