最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Rainbond云原生部署SpringCloud應用架構實踐

 更新時間:2022年04月21日 11:59:46   作者:Rainbond?作者  
這篇文章主要為大家介紹了Rainbond云原生部署SpringCloud應用架構實踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

示例項目詳情

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

Pig Microservice Architecture V2.1.0:

基于 Spring Cloud Finchley 、Spring Security OAuth2 的RBAC權限管理系統(tǒng)

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

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

提供 lambda 、stream api 、webflux 的生產(chǎn)實踐

模塊說明:

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

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

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

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

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

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

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

部署環(huán)境說明:

部署pig,需要以下環(huán)境支持:

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

模塊構建

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

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

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

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

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

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

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

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

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

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

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

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

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

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

命令格式與 Procfile 一致。

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

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

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

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

部署 Mysql

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

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

為了能夠在數(shù)據(jù)庫啟動時即加載初始化腳本,制作了一份 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 文件夾。

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

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

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

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

修改示例如下:

# 數(shù)據(jù)源
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默認提供連接信息:

通過修改 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項目,作為整個系統(tǒng)的前端靜態(tài)頁面。Rainbond目前已經(jīng)支持源碼構建 nodejs前端 項目,參考文檔:NodeJS前端語言

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

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

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

{"path":"dist"}

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

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

最終成果

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

登陸效果:

登陸賬戶密碼:
admin
123456

以上就是Rainbond云原生部署SpringCloud應用架構實踐的詳細內容,更多關于Rainbond部署SpringCloud架構的資料請關注腳本之家其它相關文章!

相關文章

  • k8s自動化安裝腳本(二進制)的操作步驟

    k8s自動化安裝腳本(二進制)的操作步驟

    Kubernetes?k8s安裝腳本,非常好用,下面這篇文章主要給大家介紹了關于k8s自動化安裝腳本(二進制)的操作步驟,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • IoT?邊緣集群Kubernetes?Events告警通知進一步配置詳解

    IoT?邊緣集群Kubernetes?Events告警通知進一步配置詳解

    這篇文章主要為大家介紹了IoT?邊緣集群Kubernetes?Events告警通知進一步配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 使用kubeadm部署多節(jié)點集群

    使用kubeadm部署多節(jié)點集群

    這篇文章介紹了使用kubeadm部署多節(jié)點集群的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • k8s強制刪除一個Pod的詳細步驟

    k8s強制刪除一個Pod的詳細步驟

    有時候遇到node宕機或者失聯(lián)太久導致pod一直處于Terminating狀態(tài),kubectl?delete又刪不掉,其實這個pod已經(jīng)確定已經(jīng)死了,需要強制把他摘掉,這篇文章主要給大家介紹了關于k8s強制刪除一個Pod的詳細步驟,需要的朋友可以參考下
    2024-11-11
  • 如何使用Kubernetes自定義資源(CRD)詳解

    如何使用Kubernetes自定義資源(CRD)詳解

    自定義資源定義(CRD)是Kubernetes API擴展,可以定義新的對象類型,下面這篇文章主要給大家介紹了關于如何使用Kubernetes自定義資源(CRD)的相關資料,需要的朋友可以參考下
    2022-09-09
  • Rainbond上部署API?Gateway?Kong及環(huán)境配置教程

    Rainbond上部署API?Gateway?Kong及環(huán)境配置教程

    這篇文章主要為大家介紹了Rainbond上部署API?Gateway?Kong及環(huán)境配置教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • Prometheus?Operator架構介紹

    Prometheus?Operator架構介紹

    這篇文章主要為大家介紹了Prometheus?Operator架構介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Kubernetes訪問控制之鑒權方法詳解

    Kubernetes訪問控制之鑒權方法詳解

    這篇文章主要為大家介紹了Kubernetes訪問控制之鑒權方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • K8s搭建Jenkins的詳細教程(附源代碼)

    K8s搭建Jenkins的詳細教程(附源代碼)

    Jenkins 是一個開源的自動化服務器,主要用于持續(xù)集成和持續(xù)交付,這篇文章主要來和大家介紹一下如何在K8s中搭建Jenkins,有需要的可以了解下
    2025-03-03
  • K8S的dashboard使用token登錄的操作流程

    K8S的dashboard使用token登錄的操作流程

    Dashboard 支持 Kubeconfig 和 Token 兩種認證方式,這里測試 Token 認證方式登錄,本文介紹K8S的dashboard如何使用token登錄,感興趣的朋友跟隨小編一起看看吧
    2024-06-06

最新評論

鄂托克前旗| 梅河口市| 逊克县| 凯里市| 内乡县| 大洼县| 海南省| 安庆市| 平南县| 外汇| 南乐县| 南和县| 阳东县| 赤峰市| 阳谷县| 凤冈县| 灵武市| 威海市| 江门市| 玉溪市| 双柏县| 榕江县| 万源市| 揭阳市| 霍邱县| 于都县| 扬州市| 绥棱县| 贵定县| 苏尼特右旗| 名山县| 普兰店市| 登封市| 新平| 汉源县| 乳源| 晋宁县| 彭山县| 宁德市| 玛纳斯县| 锡林郭勒盟|