Seata安装之ZK注册Apollo配置
准备:
Seata1.4.2
前提:
ZK 服务为:localhost:2181
-
Seata服务为:
- ConfigService:192.168.200.169:8080
- AdminService:192.168.200.169:8090
- PortalService:192.168.200.169:8070
mysql 数据库新增了 seata 需要的一些表
1. 先上传seata的配置信息 config.txt 到 Apollo服务
参考:seata参数配置 中的 参数同步到配置中心使用demo
主要看下面这段内容:
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
参数说明:
-h: host,默认值 localhost
-p: port,默认值 8070
-e: 所管理的配置环境,默认值 DEV
-a: Namespace 所属的 AppId,默认值 seata-server
-c: 所管理的配置集群名, 一般情况下传入 default 即可。如果是特殊集群,传入相应集群的名称即可,默认值 default
-n: 所管理的 Namespace 的名称,如果是非 properties 格式,需要加上后缀名,如 sample.yml,默认值 application
-d: item 的创建人,格式为域账号,也就是 sso 系统的 User ID
-r: 发布人,域账号,注意:如果 ApolloConfigDB.ServerConfig 中的 namespace.lock.switch 设置为 true 的话(默认是 false),那么该环境不允许发布人和编辑人为同一人。所以如果编辑人是 zhangsan,发布人就不能再是 zhangsan。
-t: Apollo 管理员在 http://{portal_address}/open/manage.html 创建第三方应用,创建之前最好先查询此AppId是否已经创建。创建成功之后会生成一个 token
以上参数说明详情请看:
https://github.com/ctripcorp/apollo/wiki/Apollo开放平台
1.1. apollo 进入开放平台授权管理,开放平台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. 下载 并 执行 apollo-config.sh
注意:下自己seata 的版本,我这里是 seata1.4.2 的上传脚步
脚步上传存放的位置:$SEATA_HOME/script/apollo-config.sh
在 $SEATA_HOME/script 目录下执行命令
sh apollo-config.sh \
# apollo portal ip 地址 和 端口
-h localhost -p 8070 \
# 上传到 apollo 中的环境
-e DEV \
# 上传到 apollo 中的 项目ID
-a seata-server \
# 上传到 apollo 中的 集群ID
-c default \
# 上传到 apollo 中的 命名空间
-n application \
# 上传使用的 创建人身份
-d apollo \
# 上传后使用的发布人身份
-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 这里要新增一个 seata 与 cluster 一样,否则会出现启动空指针
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. 启动 seata
应该不会有什么问题。