跳到主要内容
版本:v1.2

ZooKeeper 注册中心

ZooKeeper是 Seata 组件中重要的注册中心实现

本文以ZooKeeper作为注册中心,以 file 作为配置中心

ZooKeeper版本建议 3.4.13及以上,下文以 ZooKeeper 3.4.14版本为例

预备工作

当您准备将 Seata 注册到 ZooKeeper 之前,请确保已经启动 ZooKeeper 服务。如果您尚且不熟悉 ZooKeeper 的基本使用的话,可先行参考 ZooKeeper官方文档

快速上手

Seata 融合 ZooKeeper 注册中心的操作步骤非常简单,大致步骤可分为“增加 Maven 依赖”以及“配置注册中心“。

Server端配置注册中心

下载 Seata 1.2.0 release 并解压

在 /conf/registry.conf 中修改对应配置中心,其余配置参考

registry {
type = "zk"

zk {
# 注册到 zk 上的集群名称,默认是 default
cluster = "default"
serverAddr = "127.0.0.1:2181"
sessionTimeout = 6000
connectTimeout = 2000
username = ""
password = ""
}
}

执行 /bin/seata-server.bat (Windows) 或 /bin/seata-server.sh (Unix) 启动 Seata,服务将运行在本地 8091 端口上,打开ZooKeeper客户端命令行,输入 ls /registry/zk/default,查看到节点地址即注册成功(如下)

[zk: localhost:2181(CONNECTED) 1] ls /registry/zk/default
[127.0.0.1:8091]

Client端配置

如果使用io.seata:seata-spring-boot-starter依赖,需要在 application.yml 中加入如下zookeeper的配置项,其余配置参考

seata:
registry:
type: zk
zk:
server-addr: 127.0.0.1:2181
# 事务分组配置,1.4.2 默认名称为 my_test_tx_group ,1.5版本将改为 default_tx_group
# 有关事务分组,请参考 https://seata.apache.org/zh-cn/docs/user/txgroup/transaction-group
session-timeout: 6000
connect-timeout: 2000
username:
password:
tx-service-group: my_test_tx_group
service:
# 事务分组与集群映射关系
vgroup-mapping:
my_test_tx_group: default

或者使用io.seata:seata-all依赖,则需要在file.conf中加入事务分组与集群映射关系:

  vgroupMapping.my_test_tx_group = "default"

并在registry.conf文件中加入zookeeper的配置项,其余配置参考

  zk {
serverAddr = "127.0.0.1:2181"
sessionTimeout = 6000
connectTimeout = 2000
username = ""
password = ""
}

Client 配置完成后启动应用并稍待片刻,即可正式体验 Seata 服务