说明:本文讲解为nacos1.2.1+seata1.2.0/1.1.0版本
下载地址:https://github.com/alibaba/nacos/releases
1.下载上传至linux服务器,tar -zxvf 解压
2.进入nacos-server-1.2.1\nacos\conf 修改application.properties
注意这个一定要改成false,否则会有大量的日志
server.tomcat.accesslog.enabled=falsespring.datasource.platform=mysql ### Count of DB: db.num=1 ### Connect URL of DB: db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user= db.password= #注意这个一定要改成false,否则会有大量的日志 server.tomcat.accesslog.enabled=false
3.去mysql数据库创建nacos 运行 nacos-mysql.sql脚本 ,之后再运行一下语句
INSERT INTO `users` VALUES ('nacos', '$2a$10$ZLP2nt6d4bVYAcBExmR5d.uyDBlu.M0rSqJu5HvWPi/Tjx/zTkFEm', '1'); INSERT INTO `roles` VALUES ('nacos', 'ROLE_ADMIN'); DROP TABLE IF EXISTS `permissions`; CREATE TABLE `permissions` ( `role` varchar(50) NOT NULL, `resource` varchar(255) NOT NULL, `action` varchar(8) NOT NULL, UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE );
4.进入bin目录 运行 启动
sh startup.sh -m standalone
这里必须要加 -m standalone 否则会出现一下情况
可以看一下日志,日志中提示集群配置文件的问题,这里默认启动是集群环境,所以要以单机模式启动
5.通过 ip地址:8848 访问成功 账号密码都是nacos
下载地址:http://seata.io/zh-cn/blog/download.html 源码和启动包都下载
源码中配置目录讲解
1.上传安装包和源码中以下文件到Linux服务器
2.修改config.txt 中的 配置
store.mode=db store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true store.db.user= store.db.password=
3.进入nacos 运行 脚本
sh /usr/local/seata/nacos/nacos-config.sh -h localhost -p 8848
如果出现以下错误。说明找不到配置文件路径错误,修改执行脚本中的路径即可
4.查看nacos配置打入成功
5.修改seata的registry.config中的registry和config 的 type = "nacos"
6.进入seata 的 bin 目录 启动seata
nohup ./seata-server.sh &
注意这里必须nohup打头,这样关闭linux连接工具服务不会掉,比如对比zookeeper的启动脚本
(博主作为非专业运维人员,这个坑也让我头疼了两天)
6.进入nacos查看是否成功启动
nacos 下载地址:https://github.com/alibaba/nacos/releases
seata下载地址:http://seata.io/zh-cn/blog/download.html
1.创建nacos数据库,由于seata的源码中没有windos环境的配置导入脚本,只有 .py 和 .sh 可以使用 上面的linux环境预先向数据库导入好配置 也可以装一下git双击运行sh脚本
2.创建seata数据库,导入上面介绍的sql
3.修改好上面Linux环境所需要修改的nacos和seata的配置
4.进入bin 双击 startup.cmd 启动nacos
5.进入bin 双击 seata-server.bat 启动seata
io.seata.common.exception.ShouldNeverHappenException: [xid:10.8.0.26:8091:2042993961]get tablemeta failed
以上问题原因是参与事物的表未加主键,解决方法加上主键即可
io.seata.core.exception.RmTransactionException:
Response[ TransactionException[branch register request failed.
xid=172.19.131.240:8091:2042995578, msg=Data truncation: Data too long for ]
解决方法改为适合的长度即可
这里seata1.2有一个隐藏的坑,会发现源码中一个是 vgroupMapping 一个是vgroup-mapping 这里我们统一改成vgroupMapping