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