中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Rainbond云原生部署SpringCloud應用架構的方法

發布時間:2022-04-21 14:40:05 來源:億速云 閱讀:182 作者:iii 欄目:開發技術

這篇“Rainbond云原生部署SpringCloud應用架構的方法”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Rainbond云原生部署SpringCloud應用架構的方法”文章吧。

    示例項目詳情

    本文檔以Pig 快速開發框架為例,演示如何在Rainbond上部署一套完整的Spring Cloud項目。

    Pig Microservice Architecture V2.1.0:

    基于 Spring Cloud Finchley 、Spring Security OAuth3 的RBAC權限管理系統

    基于數據驅動視圖的理念封裝 Element-ui,即使沒有 vue 的使用經驗也能快速上手

    提供對常見容器化支持 Docker、Kubernetes、Rancher2 支持

    提供 lambda 、stream api 、webflux 的生產實踐

    模塊說明:

    pig
    ├── pig-ui -- 前端工程[80]
    ├── pig-auth -- 授權服務提供[3000]
    └── pig-common -- 系統公共模塊
         ├── pig-common-core -- 公共工具類核心包
         ├── pig-common-log -- 日志服務
         └── pig-common-security -- 安全工具類
    ├── pig-config -- 配置中心[8888]
    ├── pig-eureka -- 服務注冊與發現[8761]
    ├── pig-gateway -- Spring Cloud Gateway網關[9999]
    └── pig-upms -- 通用用戶權限管理模塊
         └── pigx-upms-api -- 通用用戶權限管理系統公共api模塊
         └── pigx-upms-biz -- 通用用戶權限管理系統業務處理模塊[4000]
    └── pigx-visual  -- 圖形化模塊
         ├── pigx-monitor -- Spring Boot Admin監控 [5001]
         └── pigx-codegen -- 圖形化代碼生成[5003]
         └── pigx-zipkin -- 微服務鏈路跟蹤[5002]

    上述的模塊,可以分為類庫與服務兩類,讀者可以對比自己的Spring Cloud項目:

    構建后產生jar包,用來實現各種功能的類的集合,即是類庫,如Pig中的pig-common模塊

    構建后產生jar包或者war包,通過 java -jar 或者tomcat等方式啟動,開放某個端口提供服務的,即是服務,如Pig中的pig-eureka模塊

    只需要將服務模塊在Rainbond中構建出來即可。

    經過梳理,該項目需要構建的服務組件包括:

    啟動順序服務組件名稱運行端口組件功能
    1pig-eureka8761spring cloud 服務發現注冊與發現
    2pig-config8888spring cloud 配置中心
    3pig-gateway9999spring cloud 微服務網關
    4pig-auth3000授權服務提供
    5pig-upms-biz4000通用用戶權限管理系統業務處理模塊
    6pig-monitor5001Spring Boot Admin監控
    7pig-codegen5003圖形化代碼生成
    8pig-zipkin5002微服務鏈路跟蹤
    9pig-ui80前端項目(vue項目)

    部署環境說明:

    部署pig,需要以下環境支持:

    中間件或環境要求版本要求備注
    JDK1.8強制要求版本
    MySQL5.7+強制要求版本
    Redis3.2 +強制要求版本
    node8.0 +用于運行前端項目
    npm6.0 +用于構建前端項目

    模塊構建

    新建應用,并命名為 spring-cloud

    獲取項目克隆/下載地址: https://gitee.com/log4j/pig

    以pig-eureka為例,演示從源碼開始構建流程:

    為 spring-cloud 添加服務組件 —— 從源碼開始 —— 自定義倉庫:

    Rainbond云原生部署SpringCloud應用架構的方法

    點擊 新建服務,Rainbond會自動拉取代碼,并根據代碼根目錄下的 pom.xml 自動將代碼語言識別為 Java-maven。取消 并構建啟動 選項:

    Rainbond云原生部署SpringCloud應用架構的方法

    點擊 創建,進入服務組件未部署的頁面。編輯 端口 選項卡,開放 pig-eureka 自身端口 8761:

    pig-eureka 需要被其它微服務組件訪問以進行注冊,所以打開對內服務,以便之后創建依賴關系。該組件也提供web頁面,顯示微服務組件的注冊情況與健康情況,所以打開對外服務,以便外部訪問。

    Rainbond云原生部署SpringCloud應用架構的方法

    編輯 構建源 選項卡,指定 pig-eureka 構建參數:

    由于 Pig 本身是一個多模塊的項目,所以需要指定當前服務組件構建的模塊。指定的方式是在 構建運行環境設置 中的 Maven構建全局參數:

    clean dependency:list install -pl pig-eureka -am

    上述的參數指定了普通的子模塊構建方式,對于另一種子模塊中的子模塊,比如 pig-codegen 模塊,參數指定的方式為:

    clean dependency:list install -pl pig-visual/pig-codegen -am

    在v5.1+版本的Rainbond中,可以指定當前服務組件的啟動命令。指定的方式是在 構建運行環境設置 中的 啟動命令:

    web: java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app/pig-eureka/target/*.jar 

    命令格式與 Procfile 一致。

    Rainbond云原生部署SpringCloud應用架構的方法

    編輯 依賴 選項卡,指定當前服務組件依賴其它服務組件:

    各個服務組件之間的依賴關系,可以在創建時指定。所有的 spring cloud 微服務組件都需要依賴 pig-eureka,以 pig-gateway為例,應添加依賴關系如下:

    Rainbond云原生部署SpringCloud應用架構的方法

    所有的設置完成后,即可點擊 構建 ,構建完成后,服務組件將自動運行起來。

    將所有服務組件依次部署完成。

    部署 Mysql

    Pig 微服務項目需要部署 Mysql 5.7+ 作為數據源。并在代碼倉庫中提供了數據庫初始化腳本: 

    https://gitee.com/log4j/pig/blob/master/db/pig.sql

    為了能夠在數據庫啟動時即加載初始化腳本,制作了一份 Dockerfile:

    FROM percona:5.7.23-stretch
    LABEL creater="barnett"
    ENV MYSQL_VERSION=5.7.23
    ENV TZ=Asia/Shanghai
    ADD docker-entrypoint.sh /run/docker-entrypoint.sh
    ADD ./run/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
    ADD ./run/mysqld.cnf /etc/mysql/percona-server.conf.d/mysqld.cnf
    RUN fetchDeps=' \
    		ca-certificates \
    		wget \
    	'; \
    	sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list; \
    	apt-get update; \
    	apt-get install -y --no-install-recommends $fetchDeps; \
    	rm -rf /var/lib/apt/lists/*; \
        wget -O /usr/local/bin/env2file -q https://github.com/barnettZQG/env2file/releases/download/v0.1/env2file-linux; \
        chmod +x /run/docker-entrypoint.sh && chmod +x /usr/local/bin/env2file; \
        apt-get purge -y --auto-remove $fetchDeps
    EXPOSE 3306
    VOLUME ["/var/lib/mysql", "/var/log/mysql"]
    # 將代碼倉庫中 sql 目錄下的腳本放到對應的初始化目錄下
    COPY sql/*.sql /docker-entrypoint-initdb.d/
    # change ENTRYPOINT exec some custom command
    ENTRYPOINT [ "/run/docker-entrypoint.sh" ]
    CMD [ "mysqld" ]

    為 spring-cloud 添加服務組件 —— 從源碼開始 —— 自定義倉庫:

    將服務組件命名為 pig-db,并指定代碼分支 pig。

    在代碼倉庫地址url的最后添加 ?dir=5.7 可以讓Rainbond將構建目錄指定為代碼倉庫根目錄下的 5.7 文件夾。

    Rainbond云原生部署SpringCloud應用架構的方法

    為了讓數據庫正常工作,并且可以被其它依賴的本數據庫的應用獲取連接信息,需要設置若干環境變量:

    環境變量名稱環境變量值設置位置
    MYSQL_USERroot連接信息
    MYSQL_HOST127.0.0.1連接信息
    MYSQL_PORT3306連接信息
    MYSQL_ROOT_PASSWORDmysqlpassword連接信息
    MYSQL_DATABASEpig連接信息

    通過修改 pig-config 中的配置文件,來定義多個微服務組件連接數據庫的配置:

    pig/pig-config/src/main/resources/config/pigx-auth-dev.yml
    pig/pig-config/src/main/resources/config/pigx-upms-dev.yml  
    pig/pig-config/src/main/resources/config/pigx-codegen-dev.yml
    pig/pig-config/src/main/resources/config/pigx-zipkin-dev.yml.yml

    修改示例如下:

    # 數據源
    spring:
      datasource:
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.mysql.jdbc.Driver
        username: ${MYSQL_USER}
        password: ${MYSQL_ROOT_PASSWORD}
        url: jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai

    部署 Redis

    通過Rainbond應用市場,可以直接安裝 Redis 4.0.13。

    該版本Redis默認提供連接信息:

    Rainbond云原生部署SpringCloud應用架構的方法

    通過修改 pig-config 中的 pig/pig-config/src/main/resources/config/application-dev.yml 來定義所有服務組件連接Redis的配置:

    修改示例如下:

    # Spring 相關
    spring:
      redis:
        password: ${REDIS_PASS}
        host: ${REDIS_HOST}

    部署 pig-ui

    pig-ui 是一個由nodejs語言編寫的 vue項目,作為整個系統的前端靜態頁面。Rainbond目前已經支持源碼構建 nodejs前端 項目,參考文檔:NodeJS前端語言

    為了便于改造項目,所以將項目 fork 了一份進行修改,代碼地址:

    https://gitee.com/dazuimao1990/pig-ui

    參照Rainbond代碼支持規范,在代碼根目錄下添加了識別文件: nodestatic.json

    {"path":"dist"}

    并在代碼倉庫中添加了nginx配置文件: www/web.conf 用于處理代理轉發:

    server {
        listen       80;
        root   /app/www;
        location ~* ^/(code|auth|admin|gen) {
            proxy_pass http://127.0.0.1:9999;
            proxy_connect_timeout 15s;
            proxy_send_timeout 15s;
            proxy_read_timeout 15s;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

    利用這份代碼進行源碼構建,即可完成 pig-ui 服務組件的部署。

    依賴與端口梳理

    服務組件名稱依賴端口對內服務端口對外服務
    pig-uipig-gatewayoffon
    pig-gatewaypig-eureka Redisonoff
    pig-monitorpig-eureka Redisoffoff
    pig-configpig-eurekaoffoff
    pig-upms-bizpig-eureka pig-db Redisoffoff
    pig-zipkinpig-eureka pig-db Redisoffon
    pig-authpig-eureka Redisoffoff
    pig-codegenpig-eureka pig-db Redisoffoff

    最終成果

    完成部署后,拓撲圖如下:

    Rainbond云原生部署SpringCloud應用架構的方法

    登陸效果:

    Rainbond云原生部署SpringCloud應用架構的方法

    登陸賬戶密碼:
    admin
    123456

    以上就是關于“Rainbond云原生部署SpringCloud應用架構的方法”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    滁州市| 朝阳市| 辛集市| 临沂市| 文昌市| 长垣县| 祁门县| 土默特左旗| 历史| 石门县| 沙洋县| 泗阳县| 枣强县| 上思县| 鄂伦春自治旗| 麦盖提县| 壤塘县| 林西县| 临夏县| 二连浩特市| 雷山县| 南投市| 石台县| 保靖县| 揭阳市| 澄城县| 陇川县| 楚雄市| 乌拉特前旗| 开原市| 额尔古纳市| 南和县| 正定县| 隆子县| 隆安县| 宁国市| 扎赉特旗| 肃宁县| 惠水县| 上虞市| 松江区|