Seata安裝之ZK注冊Apollo配置
準(zhǔn)備:
Seata1.4.2
前提:
ZK 服務(wù)為:localhost:2181
-
Seata服務(wù)為:
- ConfigService:192.168.200.169:8080
- AdminService:192.168.200.169:8090
- PortalService:192.168.200.169:8070
mysql 數(shù)據(jù)庫新增了 seata 需要的一些表
1. 先上傳seata的配置信息 config.txt 到 Apollo服務(wù)
參考:seata參數(shù)配置 中的 參數(shù)同步到配置中心使用demo
主要看下面這段內(nèi)容:
Apollo
sh ${SEATAPATH}/script/config-center/apollo/apollo-config.sh -h localhost -p 8070 -e DEV -a seata-server -c default -n application -d apollo -r apollo -t 3aa026fc8435d0fc4505b345b8fa4578fb646a2c
參數(shù)說明:
-h: host,默認(rèn)值 localhost
-p: port幻梯,默認(rèn)值 8070
-e: 所管理的配置環(huán)境刨仑,默認(rèn)值 DEV
-a: Namespace 所屬的 AppId,默認(rèn)值 seata-server
-c: 所管理的配置集群名苫耸, 一般情況下傳入 default 即可州邢。如果是特殊集群,傳入相應(yīng)集群的名稱即可褪子,默認(rèn)值 default
-n: 所管理的 Namespace 的名稱量淌,如果是非 properties 格式骗村,需要加上后綴名,如 sample.yml呀枢,默認(rèn)值 application
-d: item 的創(chuàng)建人胚股,格式為域賬號,也就是 sso 系統(tǒng)的 User ID
-r: 發(fā)布人裙秋,域賬號琅拌,注意:如果 ApolloConfigDB.ServerConfig 中的 namespace.lock.switch 設(shè)置為 true 的話(默認(rèn)是 false),那么該環(huán)境不允許發(fā)布人和編輯人為同一人摘刑。所以如果編輯人是 zhangsan进宝,發(fā)布人就不能再是 zhangsan。
-t: Apollo 管理員在 http://{portal_address}/open/manage.html 創(chuàng)建第三方應(yīng)用枷恕,創(chuàng)建之前最好先查詢此AppId是否已經(jīng)創(chuàng)建党晋。創(chuàng)建成功之后會(huì)生成一個(gè) token
以上參數(shù)說明詳情請看:
https://github.com/ctripcorp/apollo/wiki/Apollo開放平臺
1.1. apollo 進(jìn)入開放平臺授權(quán)管理,開放平臺API
這里是為了活尊,獲取 apollo 的 jwt 的 Token隶校。
1.2. 下載 并 修改 的 config.txt
注意:下自己seata 的版本,我這里是 seata1.4.2 的配置文件
注意:這里的作用是 seata 從 apollo 中加載 file.conf 中的配置信息蛹锰。
注意:config.txt 存放的位置:$SEATA_HOME/config.txt
修改
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
# driverClassName 可能 改為 com.mysql.cj.jdbc.Driver
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true
store.db.user=username
store.db.password=password
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
1.3. 下載 并 執(zhí)行 apollo-config.sh
注意:下自己seata 的版本深胳,我這里是 seata1.4.2 的上傳腳步
腳步上傳存放的位置:$SEATA_HOME/script/apollo-config.sh
在 $SEATA_HOME/script 目錄下執(zhí)行命令
sh apollo-config.sh \
# apollo portal ip 地址 和 端口
-h localhost -p 8070 \
# 上傳到 apollo 中的環(huán)境
-e DEV \
# 上傳到 apollo 中的 項(xiàng)目ID
-a seata-server \
# 上傳到 apollo 中的 集群ID
-c default \
# 上傳到 apollo 中的 命名空間
-n application \
# 上傳使用的 創(chuàng)建人身份
-d apollo \
# 上傳后使用的發(fā)布人身份
-r apollo \
# apollo 開放平臺API 的token
-t 3aa026fc8435d0fc4505b345b8fa4578fb646a2c
2. 修改 $SEATA_HOME/conf/registry.conf
registry
{
# file 、nacos 铜犬、eureka舞终、redis、zk癣猾、consul敛劝、etcd3、sofa
type = "zk"
zk {
cluster = "default"
serverAddr = "127.0.0.1:2181"
sessionTimeout = 6000
connectTimeout = 2000
username = ""
password = ""
}
file {
name = "file.conf"
}
}
config
{
# file纷宇、nacos 夸盟、apollo、zk像捶、consul上陕、etcd3
type = "apollo"
apollo {
# 注意:1.4.2 這里要新增一個(gè) seata 與 cluster 一樣,否則會(huì)出現(xiàn)啟動(dòng)空指針
seata="default"
cluster = "default"
appId = "seata-server"
## apolloConfigService will cover apolloMeta
apolloMeta = "http://192.168.200.169:8080"
apolloConfigService = "http://192.168.200.169:8080 "
namespace = "micro_service.seata-server"
apolloAccesskeySecret = "08ebb61d4dad8dc479522181469ec629bf01495a"
}
file {
name = "file.conf"
}
}
3. 啟動(dòng) seata
應(yīng)該不會(huì)有什么問題拓春。