天天看點

微服務架構open-cloud應用及部署

搞起來還是有點複雜,記錄一下。

一、概述

最近做的項目,包含多個業務子系統。系統結構前後端分離,前端VUE3,後端采用微服務架構,​​open-cloud(雲服務開放平台)​​。open-cloud是幾年前國内出來的一個開源微服務架構,居于SpringCloud,現在已經停止維護了。但是我們之前有些項目應用到它,有些積累,是以一直在用,延續至今。我去年接觸了一下,現在是更加深入一些,學習心得和應用步驟需要及時總結、記錄。

open-cloud已經停止維護,原因不得而知,也許相對目前業界技術的發展,技術上已經有些陳舊,但是對于我的水準來說,仍然需要仰望,同時也是學習和應用微服務架構的一個好的切入點。

二、open-cloud代碼結構

微服務架構open-cloud應用及部署
微服務架構open-cloud應用及部署

裡面内容不少,有一些是我們應用的時候,必不可少的,如網關、平台基礎服務、平台使用者認證服務,有一些則是按需使用,比如工作流接口。

三、分布式部署

1、基礎部署内容

前面提到,我們項目前後端分離,前端VUE3,後端是這個open-cloud。部署時,需要運作open-cloud中的3個子項目:

微服務架構open-cloud應用及部署

這三個jar包是需要運作的。其中網關位址,就是前端請求資料時指向的位址。

其次是要部署nacos,以及部署管理背景,通過背景設定網關。Nacos是阿裡巴巴開源的微服務管理平台,可以幫助開發者快速實作動态服務發現、服務配置、服務中繼資料及流量管理。

2、原理

系統部署為分布式部署。比如上面提到的三個基礎服務,可以分别部署成3個微服務,然後每個業務子系統也分别部署成微服務。這些微服務,可以分布于不同的伺服器,使用不同的IP。前提是它們都使用同一個nacos命名空間。nacos在這裡充當了配置中心和注冊中心。隻要在同一個命名空間下,系統就能根據我們的請求,找到相關服務。

nacos,注冊中心

微服務架構open-cloud應用及部署

以上這些服務,可能部署在不同的伺服器,但都注冊到了同一個nacos命名空間下。

3、部署細節

1)前端

前端向後端請求資料的位址配置為網關服務位址。

2)open-cloud

(1)在整體項目最外層的pom.xml中,配置好nacos相關資訊:nacos位址、命名空間的ID
微服務架構open-cloud應用及部署
<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配置
微服務架構open-cloud應用及部署

nacos,配置中心

微服務架構open-cloud應用及部署

四、網關服務

微服務衆多,對于前端發來的請求,網關怎麼知道分發給誰呢?就靠網關的路由定義了。

open-cloud提供了一個​​背景管理前端(open-admin-ui)​​,部署後,可通過它進行路由定義。定義将儲存在資料庫裡。同樣,該背景管理前端也指向網關服務位址。

微服務架構open-cloud應用及部署
微服務架構open-cloud應用及部署

繼續閱讀