亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Rainbond云原生部署SpringCloud應(yīng)用架構(gòu)實(shí)踐

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

示例項(xiàng)目詳情

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

Pig Microservice Architecture V2.1.0:

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

基于數(shù)據(jù)驅(qū)動(dòng)視圖的理念封裝 Element-ui,即使沒(méi)有 vue 的使用經(jīng)驗(yàn)也能快速上手

提供對(duì)常見(jiàn)容器化支持 Docker、Kubernetes、Rancher2 支持

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

模塊說(shuō)明:

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

上述的模塊,可以分為類庫(kù)與服務(wù)兩類,讀者可以對(duì)比自己的Spring Cloud項(xiàng)目:

構(gòu)建后產(chǎn)生jar包,用來(lái)實(shí)現(xiàn)各種功能的類的集合,即是類庫(kù),如Pig中的pig-common模塊

構(gòu)建后產(chǎn)生jar包或者war包,通過(guò) java -jar 或者tomcat等方式啟動(dòng),開(kāi)放某個(gè)端口提供服務(wù)的,即是服務(wù),如Pig中的pig-eureka模塊

只需要將服務(wù)模塊在Rainbond中構(gòu)建出來(lái)即可。

經(jīng)過(guò)梳理,該項(xiàng)目需要構(gòu)建的服務(wù)組件包括:

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

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

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

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

模塊構(gòu)建

新建應(yīng)用,并命名為 spring-cloud

獲取項(xiàng)目克隆/下載地址: https://gitee.com/log4j/pig

以pig-eureka為例,演示從源碼開(kāi)始構(gòu)建流程:

為 spring-cloud 添加服務(wù)組件 —— 從源碼開(kāi)始 —— 自定義倉(cāng)庫(kù):

點(diǎn)擊 新建服務(wù),Rainbond會(huì)自動(dòng)拉取代碼,并根據(jù)代碼根目錄下的 pom.xml 自動(dòng)將代碼語(yǔ)言識(shí)別為 Java-maven。取消 并構(gòu)建啟動(dòng) 選項(xiàng):

點(diǎn)擊 創(chuàng)建,進(jìn)入服務(wù)組件未部署的頁(yè)面。編輯 端口 選項(xiàng)卡,開(kāi)放 pig-eureka 自身端口 8761:

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

編輯 構(gòu)建源 選項(xiàng)卡,指定 pig-eureka 構(gòu)建參數(shù):

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

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

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

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

在v5.1+版本的Rainbond中,可以指定當(dāng)前服務(wù)組件的啟動(dòng)命令。指定的方式是在 構(gòu)建運(yùn)行環(huán)境設(shè)置 中的 啟動(dòng)命令:

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

命令格式與 Procfile 一致。

編輯 依賴 選項(xiàng)卡,指定當(dāng)前服務(wù)組件依賴其它服務(wù)組件:

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

所有的設(shè)置完成后,即可點(diǎn)擊 構(gòu)建 ,構(gòu)建完成后,服務(wù)組件將自動(dòng)運(yùn)行起來(lái)。

將所有服務(wù)組件依次部署完成。

部署 Mysql

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

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

為了能夠在數(shù)據(jù)庫(kù)啟動(dòng)時(shí)即加載初始化腳本,制作了一份 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"]
# 將代碼倉(cāng)庫(kù)中 sql 目錄下的腳本放到對(duì)應(yīng)的初始化目錄下
COPY sql/*.sql /docker-entrypoint-initdb.d/
# change ENTRYPOINT exec some custom command
ENTRYPOINT [ "/run/docker-entrypoint.sh" ]
CMD [ "mysqld" ]

為 spring-cloud 添加服務(wù)組件 —— 從源碼開(kāi)始 —— 自定義倉(cāng)庫(kù):

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

在代碼倉(cāng)庫(kù)地址url的最后添加 ?dir=5.7 可以讓Rainbond將構(gòu)建目錄指定為代碼倉(cāng)庫(kù)根目錄下的 5.7 文件夾。

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

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

通過(guò)修改 pig-config 中的配置文件,來(lái)定義多個(gè)微服務(wù)組件連接數(shù)據(jù)庫(kù)的配置:

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

通過(guò)Rainbond應(yīng)用市場(chǎng),可以直接安裝 Redis 4.0.13。

該版本Redis默認(rèn)提供連接信息:

通過(guò)修改 pig-config 中的 pig/pig-config/src/main/resources/config/application-dev.yml 來(lái)定義所有服務(wù)組件連接Redis的配置:

修改示例如下:

# Spring 相關(guān)
spring:
  redis:
    password: ${REDIS_PASS}
    host: ${REDIS_HOST}

部署 pig-ui

pig-ui 是一個(gè)由nodejs語(yǔ)言編寫(xiě)的 vue項(xiàng)目,作為整個(gè)系統(tǒng)的前端靜態(tài)頁(yè)面。Rainbond目前已經(jīng)支持源碼構(gòu)建 nodejs前端 項(xiàng)目,參考文檔:NodeJS前端語(yǔ)言

為了便于改造項(xiàng)目,所以將項(xiàng)目 fork 了一份進(jìn)行修改,代碼地址:

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

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

{"path":"dist"}

并在代碼倉(cāng)庫(kù)中添加了nginx配置文件: www/web.conf 用于處理代理轉(zhuǎn)發(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;
    }
}

利用這份代碼進(jìn)行源碼構(gòu)建,即可完成 pig-ui 服務(wù)組件的部署。

依賴與端口梳理

服務(wù)組件名稱依賴端口對(duì)內(nèi)服務(wù)端口對(duì)外服務(wù)
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

最終成果

完成部署后,拓?fù)鋱D如下:

登陸效果:

登陸賬戶密碼:
admin
123456

以上就是Rainbond云原生部署SpringCloud應(yīng)用架構(gòu)實(shí)踐的詳細(xì)內(nèi)容,更多關(guān)于Rainbond部署SpringCloud架構(gòu)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論