Consul 注册中心

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

本文基于 Seata 1.4.2,把 Seata 注册到 Consul 上,以 file 作为配置中心

Consul 版本建议 1.8+,下文以 Consul 1.11.2 为例

预备工作

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

如果您只想快速体验,也可以使用以下 docker 命令启动一个 Consul 容器,输入 http://localhost:8500 访问 Consul 控制台

  1. docker run -d --name=consul -p 8500:8500 -p 8600:8600/udp consul:1.11.2 agent -dev -client=0.0.0.0 -ui

快速上手

Seata 融合 Consul 注册中心的非常简单,分 Server 端和 Client 端

Server 端只需要配置“注册中心”

Client 端则需要增加 Maven 依赖以及配置

Server端配置注册中心

下载 Seata 1.4.2 release 并解压

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

  1. registry {
  2. type = "consul"
  3. consul {
  4. # 注册到 Consul 上的集群名称,默认是 default
  5. cluster = "default"
  6. serverAddr = "127.0.0.1:8500"
  7. aclToken = ""
  8. }
  9. }

执行 /bin/seata-server.bat (Windows) 或 /bin/seata-server.sh (Unix) 启动 Seata,服务将运行在本地 8091 端口上

进入 Consul 控制台,查看 Seata 是否注册成功

Client 端增加 Maven 依赖

以 SpringBoot 项目为例,在项目 pom.xml 中加入

  1. <dependency>
  2. <groupId>io.seata</groupId>
  3. <artifactId>seata-spring-boot-starter</artifactId>
  4. <version>最新版(Seata版本)</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework.cloud</groupId>
  8. <artifactId>spring-cloud-starter-consul-discovery</artifactId>
  9. </dependency>

Client端配置

在 application.yml 中加入对应的注册中心,其余配置参考

  1. seata:
  2. registry:
  3. consul:
  4. server-addr: 127.0.0.1:8500
  5. # 事务分组配置,1.4.2 默认名称为 my_test_tx_group ,1.5版本将改为 default_tx_group
  6. # 有关事务分组,请参考 http://seata.io/zh-cn/docs/user/txgroup/transaction-group.html
  7. tx-service-group: my_test_tx_group
  8. service:
  9. # 事务分组与集群映射关系
  10. vgroup-mapping:
  11. my_test_tx_group: default

Client 配置完成后启动应用并稍待片刻,出现以下后日志就可以正式体验 Seata 服务

  1. register TM success. client version:1.4.2, server version:1.4.2,channel:[id: 0xa4675e28, L:/127.0.0.1:8238 - R:/127.0.0.1:8091]
  2. register RM success. client version:1.4.2, server version:1.4.2,channel:[id: 0x408192d3, L:/127.0.0.1:8237 - R:/127.0.0.1:8091]
  3. register success, cost 94 ms, version:1.4.2,role:RMROLE,channel:[id: 0x408192d3, L:/127.0.0.1:8237 - R:/127.0.0.1:8091]
  4. register success, cost 94 ms, version:1.4.2,role:TMROLE,channel:[id: 0xa4675e28, L:/127.0.0.1:8238 - R:/127.0.0.1:8091]