nacos-sentinel-seata的安装部署
首先准备好nacos的数据库,然后在docker里面运行nacos容器
这里在第一次运行的时候指定存储配置文件的数据库信息,然后可以查看到nacos进程。
然后是sentinel做服务熔断和降低处理
自定义类并加载至IOC容器,用于书写降级之后的逻辑代码
在openfeign接口上指明fallback的类字节码文件。至此书写完毕回调函数
在需要使用sentinel的微服务可以进行如上的配置,这里的feign.sentinel.enabled = true 可以让feign作为簇点被哨兵监视
下面的dashboard则配置了sentinel的服务器地址,默认的controller会作为簇点被哨兵监视。
最后是seata的安装和使用。
首先确保 mysql nacos 和seata在同一个网络内
然后 在虚拟机里面运行如下命令,IP是虚拟机的ip 然后seata是数据卷的挂载目录,我们在运行命令之前,先拷贝一些配置文件,具体如下所示
docker run --name seata \
-p 8099:8099 \
-p 7099:7099 \
-e SEATA_IP=192.168.150.101 \
-v ./seata:/seata-server/resources \
--privileged=true \
--network hmall \
-d \
seataio/seata-server:1.5.2
然后在application.yml文件里面指明数据库和nacos的地址 ,目的是存储分布式事务的信息 配置nacos的目的是 一方面是服务注册 另一方面是书写共享配置文件,其他微服务读取到这个文件就可以把自身事务交给seata去处理。
这里以购物车微服务为例
先导依赖
然后读取nacos的共享文件
然后就可以通过seata日志查看 确实是交给seata去管理分布式事务了。