您好,登錄后才能下訂單哦!
低代碼應(yīng)用在TSF實(shí)現(xiàn)服務(wù)治理的解決方案是什么,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
當(dāng)企業(yè)有大型應(yīng)用需要拆分成多個(gè)微服務(wù)的需求時(shí),Mendix在不依賴任何云平臺(tái),如Mendix Cloud、Openshift、K8S等情況下,無(wú)法滿足服務(wù)治理所有的功能,對(duì)于Private Cloud環(huán)境的運(yùn)行更是如此。即便是在開源的上如K8S、Openshift、Mesos、Rancher、Docker-swarm容器平臺(tái)等也不具備較強(qiáng)的服務(wù)治理能力。對(duì)于代碼侵入式較高的服務(wù)治理框架,SpringCloud、Dubbo等對(duì)于Mendix應(yīng)用的開發(fā)難度較高(對(duì)于Mendix應(yīng)用目前可以通過(guò)javaAction方式自定義代碼,對(duì)于Springcloud,自定義代碼的權(quán)限遠(yuǎn)遠(yuǎn)不夠),固不適用;而對(duì)于專業(yè)的無(wú)代碼侵入式Service Mesh服務(wù)治理框架,如Istio,Linkerd、Nginmesh、Maistra等卻需要有專業(yè)的團(tuán)隊(duì)去維護(hù), 時(shí)間成本,運(yùn)維成本都大大增加項(xiàng)目預(yù)算,因此在Private Cloud環(huán)境下需要一套快速實(shí)現(xiàn)服務(wù)治理的一套解決方案。
擁有可以用低代碼的方式創(chuàng)建一個(gè)基于微服務(wù)集群的大型企業(yè)級(jí)應(yīng)用,幫助企業(yè)快速應(yīng)用最新的互聯(lián)網(wǎng)技術(shù),加速企業(yè)創(chuàng)新更好的支持敏捷快速迭代開發(fā),提升整體IT管理能力。
使用騰訊云微服務(wù)平臺(tái)TSF來(lái)實(shí)現(xiàn)Mendix應(yīng)用之間的服務(wù)治理。
如服務(wù)路由、服務(wù)限流、服務(wù)鑒權(quán)規(guī)則。用戶可以通過(guò)配置、權(quán)重標(biāo)簽的形式進(jìn)行細(xì)粒度的流量控制,實(shí)現(xiàn)灰度發(fā)布、就近路由、流量限制、訪問(wèn)權(quán)限控制等功能 。
Mesh 微服務(wù)平臺(tái)(Tencent Service Mesh Framework,簡(jiǎn)稱 TSF Mesh),基于 Service Mesh 的理念,為應(yīng)用提供服務(wù)自動(dòng)注冊(cè)與發(fā)現(xiàn)、服務(wù)路由、鑒權(quán)、限流、熔斷等服務(wù)治理能力,且應(yīng)用無(wú)需對(duì)源代碼進(jìn)行侵入式改造,即可與該服務(wù)框架進(jìn)行集成。了解TSF Mesh更多信息點(diǎn)擊此處請(qǐng)查看《騰訊云中間件團(tuán)隊(duì)在Service Mesh中的實(shí)踐與探索》。
如ilink.mpk、native.mpk項(xiàng)目包,兩者相互調(diào)用彼此提供的服務(wù)。
傳統(tǒng)的Rest API調(diào)用:http://ip:port
改造后的Rest API調(diào)用, http://service-name/,使用服務(wù)名字實(shí)現(xiàn)服務(wù)之間的相互調(diào)用。
2. 構(gòu)建鏡像
(1)下載相關(guān)的腳本文件
git clone https://github.com/mendix/docker-mendix-buildpack.git
(2)文件目錄結(jié)構(gòu)
├── Dockerfile
├── Dockerfile.rootfs.bionic
├── Dockerfile.rootfs.trusty
├── LICENSE
├── Makefile
├── README.md
├── scripts
│ ├── cleanupjdk
│ ├── compilation
│ ├── git
│ ├── startup
│ └── vcap_application.json
└── tests
├── docker-compose-azuresql.yml
├── docker-compose-k8s.yml
├── docker-compose-mysql.yml
├── docker-compose-postgres.yml
├── docker-compose-sqlserver.yml
├── stop.sh
└── test-generic.sh
(3)將開發(fā)好的MPK包放到與docker-mendix-buildpack同級(jí)目錄
ilink.mpk和native.mpk為Mendix所開發(fā)的兩個(gè)微服務(wù)。docker-mendix-buildpack-ilink和docker-mendix-buildpack-native是這兩個(gè)app鏡像構(gòu)建,容器部署相關(guān)的腳本,主要文件包括Dockerfile、Makefile、startup啟動(dòng)文件。
(4)Makefile文件修改
├── apis
│ └── native.yaml
├── logs
└── spec.yaml
##Spec.yaml文件主要是定義服務(wù)及健康檢查相關(guān)的內(nèi)容:
apiVersion: v1
kind: Application
spec:
services:
- name: native
ports:
- targetPort: 8080
protocol: http
healthCheck:
path: /
##native.yaml主要定義相關(guān)的api,不做強(qiáng)求,內(nèi)容如下:
openapi: 3.0.0
info:
version: "1.0.0"
title: native service
paths:
/api/v6/user/create:
get:
responses:
'200':
description: OK
'401':
description: Unauthorized
'402':
description: Forbidden
'403':
description: Not Found
/api/v6/user/account/query:
get:
responses:
'200':
description: OK
'401':
description: Unauthorized
'402':
description: Forbidden
'403':
description: Not Found
/health:
get:
responses:
'200':
description: OK
'401':
description: Unauthorized
'402':
description: Forbidden
'403':
description: Not Found
nativeService.tar.gz文件所處的位置如下所示:
文件目錄:
├── apis
│ └── native.yaml
├── logs
└── spec.yaml
##Spec.yaml文件主要是定義服務(wù)及健康檢查相關(guān)的內(nèi)容:
apiVersion: v1
kind: Application
spec:
services:
- name: ilink
ports:
- targetPort: 8080
protocol: http
healthCheck:
path: /
(7)修改Dockerfile文件
修改后的內(nèi)容如下:
(8)修改script目錄下的startup文件
os.system('mkdir -p /opt/tsf/app_config/apis')
os.system('cp /opt/app/nativeService/spec.yaml /opt/tsf/app_config/')
os.system('cp -r /opt/app/nativeService/apis /opt/tsf/app_config/')
(9)鏡像構(gòu)建
##make get-sample 相當(dāng)于解壓文件到build文件夾
##make build-image 構(gòu)建鏡像并指定相應(yīng)的鏡像的tag
當(dāng)出現(xiàn)以下內(nèi)容則構(gòu)建成功
3. 騰訊云鏡像倉(cāng)庫(kù)功能存儲(chǔ)構(gòu)建的鏡像
使用說(shuō)明:
https://cloud.tencent.com/document/product/457/9118
(1)具體的創(chuàng)建過(guò)程請(qǐng)參考:https://cloud.tencent.com/document/product/213/2936
(3)添加相應(yīng)的安全規(guī)則
參考:
https://cloud.tencent.com/document/product/213/12452(1)打開控制面板,搜索TSF
(2)進(jìn)入騰訊微服務(wù)平臺(tái)TSF
(2)導(dǎo)入云主機(jī),以下是已經(jīng)綁定過(guò)的,選擇之間創(chuàng)建好的2臺(tái)云服務(wù)器即可。
(3)集群信息如下圖所示,包括兩臺(tái)云主機(jī):
同理
(2)添加發(fā)布規(guī)則
(1)新建部署,編輯相關(guān)信息:
8. 創(chuàng)建后端數(shù)據(jù)庫(kù)服務(wù)
(1)打開容器服務(wù)平臺(tái)
(2)可以看到剛才在微服務(wù)平臺(tái)創(chuàng)建好的集群,點(diǎn)擊集群id
MYSQL_USER=mendix
MYSQL_PASSWORD=mendix
MYSQL_DATABASE=mendix
MYSQL_ROOT_PASSWORD=root
(5)Pod管理
(6)為mysql再創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)實(shí)例
create database mxIlink;
GRANT ALL ON *.* TO 'mendix'@'%';
flush privileges ;
9. 為微服務(wù)應(yīng)用添加環(huán)境變量
(1)編輯yaml文件
為其中一個(gè)添加內(nèi)容:
- name: ADMIN_PASSWORD
value: Password1!
- name: DATABASE_URL
value: mysql://mendix:mendix@ilink-mysql:3306/mendix
##另外一個(gè)添加內(nèi)容:
- name: ADMIN_PASSWORD
value: Password1!
- name: DATABASE_URL
value: mysql://mendix:mendix@ilink-mysql:3306/mxIlink
##兩者數(shù)據(jù)庫(kù)實(shí)例不同即可
(2)當(dāng)pod的數(shù)量和期望一致時(shí),則應(yīng)用部署完成
另外一個(gè)微服務(wù)平臺(tái)接收到的Task數(shù)據(jù)
在構(gòu)建鏡像的時(shí)候提到了Rest API,傳統(tǒng)的方式是ip+port,現(xiàn)在可以直接使用service-name的方式調(diào)用。傳統(tǒng)方式:
現(xiàn)在的方式:
同理相互調(diào)用。TSF提供服務(wù)注冊(cè)、服務(wù)發(fā)現(xiàn)等服務(wù)治理相關(guān)的功能。
目前我們部署的服務(wù)都是一個(gè)實(shí)例,可通過(guò)容器服務(wù)平臺(tái)進(jìn)行彈性伸縮。
TraceId追蹤
服務(wù)健康狀況:
延時(shí)狀態(tài)碼統(tǒng)計(jì):
由于之前已經(jīng)創(chuàng)建了日志配置項(xiàng),因此可以通過(guò)TSF的日志服務(wù)可以對(duì)日志進(jìn)行檢索。
通過(guò)通過(guò)多種查詢方式如基本查詢、Lucene語(yǔ)法、正則表達(dá)式。如下所示:
關(guān)于低代碼應(yīng)用在TSF實(shí)現(xiàn)服務(wù)治理的解決方案是什么問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。