seata: no available service ‘null‘ found, please make sure registry config correct

原创
07/20 10:55
阅读数 2.6K

发现报这个错误的时候有点懵,因为配置是拷贝的1.3.0的配置,按道理是没问题的,百度了下,基本都是说配置找不到的问题,事务分组有问题。

下面来解决,先说下我的版本 seata 1.4.2 ,但其实1.3.0 和 1.4.2 没什么区别。

首先贴下nacos的配置,

看着这2个版本配置不一样,实际上用有效的就那15 个配置。

真正有用的配置就是这下面的

# 配置项值为TC集群名, my_test_tx_group需要与客户端保持一致  default需要和服务端registry.conf中registry中的cluster保持一致
service.vgroupMapping.my_test_tx_group=default
# 事务会话信息存储方式 file本地文件(不支持HA),db数据库|redis(支持HA)
store.mode=db
# db模式数据源类型
store.db.datasource=druid
# db模式数据库类型
store.db.dbType=mysql
# 模式数据库驱动
store.db.driverClassName=com.mysql.jdbc.Driver
# 数据库url ,在使用mysql作为数据源时,建议在连接参数中加上rewriteBatchedStatements=true
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true
# 数据库账户
store.db.user=root
# 数据库账户密码
store.db.password=root
# 数据库初始连接数
store.db.minConn=5
# 数据库最大连接数
store.db.maxConn=30
# 全局事务表名
store.db.globalTable=global_table
#db模式分支事务表名  默认branch_table
store.db.branchTable=branch_table
# 查询全局事务一次的最大条数
store.db.queryLimit=100
# 全局锁表名
store.db.lockTable=lock_table
# 获取连接时最大等待时间
store.db.maxWait=5000

这个配置就是源码中这里的配置

上传到的nacos,这一块就不多说了。

下面贴比较重要的nacos配置文件。

注意下这个tc集群名,

然后配置文件好多要和nacos对应

其实出现这个错误的时候,跟踪下源码即可知道,

查看NettyClientChannelManager 类,就能看到这个错误

跟踪一下,发现这里拿不到

my_test_tx_group

对应的数据。问题根源就在这里

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部