一、项目核心环境
<spring-boot.version>2.2.5.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR3</spring-cloud.version>
<com-alibaba-cloud.version>2.2.1.RELEASE</com-alibaba-cloud.version>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${com-alibaba-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-seata</artifactId>
</dependency>
官网下载 nacos 1.2.1 和 seata 1.1.0, nacos 和 seata 的数据库脚本,可以到我的资源中心下载。
二、主要配置
1、修改 nacos 的配置文件 application.properties,启用并修改一些内容
### If user MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.2.244:3306/nacos-seata?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
完成之后,nacos 就可以启动了。
2、修改 seata 的配置文件 registry.conf
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "nacos"
nacos {
serverAddr = "192.168.2.88:8848"
namespace = ""
cluster = "default"
}
}
config {
# file、nacos 、apollo、zk、consul、etcd3
type = "nacos"
nacos {
serverAddr = "192.168.2.88:8848"
namespace = ""
group = "SEATA_GROUP"
}
}
此时 seata 的注册中心及配置中心已经改为nacos了(言外之意, file.conf 可以删除了),
接着,咋们就得想办法把 file.conf 中的配置信息放进 nacos 中,这里有两种方法
- 从官网下载 config.txt 和 相应的脚本:
# linux/mac:
sh nacos-config.sh localhost:8848
# windows:
nacos-config.py localhost:8848
# localhost:8848 需要修改成你自己nacos的访问地址
- 使用我整理的脚本(最精简版,其他配置按官网的说明,都采用默认值),直接将数据插入nacos的表中
INSERT INTO `config_info` VALUES (186, 'service.vgroupMapping.yyk_tx_group', 'SEATA_GROUP', 'default', 'c21f969b5f03d33d43e04f8f136e7682', '2020-04-14 14:36:56', '2020-04-14 14:36:56', NULL, '0:0:0:0:0:0:0:1', '', '', NULL, NULL, NULL, 'text', NULL);
INSERT INTO `config_info` VALUES (187, 'service.default.grouplist', 'SEATA_GROUP', '127.0.0.1:8091', 'c32ce0d3e264525dcdada751f98143a3', '2020-04-14 14:37:48', '2020-04-14 14:37:48', NULL, '0:0:0:0:0:0:0:1', '', '', NULL, NULL, NULL, 'text', NULL);
INSERT INTO `config_info` VALUES (188, 'store.mode', 'SEATA_GROUP', 'db', 'd77d5e503ad1439f585ac494268b351b', '2020-04-14 14:38:48', '2020-04-14 14:38:48', NULL, '0:0:0:0:0:0:0:1', '', '', NULL, NULL, NULL, 'text', NULL);
INSERT INTO `config_info` VALUES (189, 'store.db.datasource', 'SEATA_GROUP', 'druid', '3d650fb8a5df01600281d48c47c9fa60', '2020-04-14 14:39:09', '2020-04-14 14:39:09', NULL, '0:0:0:0:0:0:0:1', '', '', NULL, NULL, NULL, 'text', NULL);
INSERT INTO `config_info` VALUES (190, 'store.db.dbType', 'SEATA_GROUP', 'mysql', '81c3b080dad537de7e10e0987a4bf52e', '2020-04-14 14:39:34', '2020-04-14 14:39:34', NULL, '0:0:0:0:0:0:0:1', '', '', NULL, NULL, NULL, 'text', NULL);
INSERT INTO `config_info` VALUES (191, 'store.db.driverClassName', 'SEATA_GROUP', 'com.mysql.jdbc.Driver', '683cf0c3a5a56cec94dfac94ca16d760', '2020-04-14 14:39:55', '2020-04-14 14:39:55', NULL, '0:0:0:0:0:0:0:1', '', '', NULL, NULL, NULL, 'text', NULL);
INSERT INTO `config_info` VALUES (192, 'store.db.url', 'SEATA_GROUP', 'jdbc:mysql://192.168.2.244:3306/ak-nacos-seata?useUnicode=true', '72e90c5e05525091a5366fa8ec591c1d', '2020-04-14 14:40:17', '2020-04-14 14:40:17', NULL, '0:0:0:0:0:0:0:1', '', '', NULL, NULL, NULL, 'text', NULL);
INSERT INTO `config_info` VALUES (193, 'store.db.user', 'SEATA_GROUP', 'root', '63a9f0ea7bb98050796b649e85481845', '2020-04-14 14:40:35', '2020-04-14 14:40:35', NULL, '0:0:0:0:0:0:0:1', '', '', NULL, NULL, NULL, 'text', NULL);
INSERT INTO `config_info` VALUES (194, 'store.db.password', 'SEATA_GROUP', 'ROOTroot8888', '9a210dd006707a1d85bcb1b45aba6d37', '2020-04-14 14:40:53', '2020-04-14 14:40:53', NULL, '0:0:0:0:0:0:0:1', '', '', NULL, NULL, NULL, 'text', NULL);
INSERT INTO `config_info` VALUES (196, 'store.db.maxConn', 'SEATA_GROUP', '50', 'c0c7c76d30bd3dcaefc96f40275bdc0a', '2020-04-14 14:41:41', '2020-04-14 14:41:41', NULL, '0:0:0:0:0:0:0:1', '', '', NULL, NULL, NULL, 'text', NULL);
到这一步,seata 也可以启动了。
三、项目配置
最后在项目的 application.yml 或者 bootstrap.yml 中加入:
# nacos 的配置
spring:
cloud:
nacos:
config:
server-addr: ${nacos.url}:8848
group: DEFAULT_GROUP
prefix: demo-order
file-extension: yaml
discovery:
server-addr: ${nacos.url}:8848
# seata 的配置
seata:
enabled: true
application-id: ak-server-order
tx-service-group: yyk_tx_group
config:
type: nacos
nacos:
namespace:
serverAddr: ${nacos.url}:8848
group: SEATA_GROUP
registry:
type: nacos
nacos:
server-addr: ${nacos.url}:8848
namespace:
到此为止,大功告成。接下来就是coding,看你的了!
欢迎转发,如对你有所帮助,请点个赞,谢谢!
最后放个彩蛋,希望大家别掉坑里来,或者掉坑里的朋友能马上爬上来:
alibaba cloud 从 2.2.0.RELEASE 升级到 2.2.1.RELEASE之后,我们一个项目启动死循环刷nacos中的配置,如下图:
最后发现是 mybatis-plus 没用配置 type-aliases-package 和 mapper-locations 。