SpringCloud Alibaba微服务实战八 - Seata 整合Nacos

简介: SpringCloud Alibaba微服务实战八 - Seata 整合Nacos

本篇作为SpringCloud Alibaba微服务实战系列的第八篇,主要内容是让Seata使用Nacos作为注册配置中心。系列文章,欢迎持续关注。

上篇文章中我们使用的是Seata的file配置实现分布式事务,既然本系列文章用的是Springcloud alibaba全家桶而Seata又恰好支持Naocs,那么我们肯定也将选择Nacos作为Seata的注册配置中心。本篇文章我们将一步一步把Seata整合上Nacos,大家伙跟我一起动手试试吧~

本篇文章依赖于上篇文章SpringCloud Alibaba微服务实战七 - 分布式事务


配置调整


服务端配置修改

服务端主要是修改\seata\conf\registry.conf文件,让Seata使用Nacos作为注册配置中心,修改后的文件如下:

registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos"
  nacos {
    serverAddr = "192.168.136.130:8848"
    namespace = ""
    cluster = "default"
  }
}
config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "nacos"
  nacos {
    serverAddr = "192.168.136.130:8848"
    namespace = ""
  }
}


将Seata配置推到Nacos

此处主要修改\seata\conf\nacos-config.txt文件,作如下两处修改:

  • 修改tx-service-group

    如上图所示,修改的格式为service.vgroup_mapping.${spring.alibaba.seata.tx-service-group}=default,结合我们的系统服务修改后的结果如下:
service.vgroup_mapping.account-service-seata=default
service.vgroup_mapping.product-service-seata=default
service.vgroup_mapping.order-service-seata=default
  • 开启数据库自动代理
support.spring.datasource.autoproxy=true
  • 将配置推送到Nacos
    这里我们在\seata\conf下打开git终端,执行sh nacos-config.sh 192.168.136.130

    执行完成后在git终端看到如下日志说明推送成功
init nacos config finished, please start seata-server.
  • 登录nacos控制台验证配置
    如上可以看到seata相关的63条配置。
    吐槽一下:这配置看起来好乱,期待后续这一块可以优化!

Seata Server端存储模式(store.mode)现有file、db两种(本系列用的是file模式,使用db模式可以参照官网配置http://seata.io/zh-cn/docs/ops/deploy-guide-beginner.html), 两种模式的区别如下:

  • file模式为单机模式,全局事务会话信息内存中读写并持久化本地文件root.data,性能较高;
  • db模式为高可用模式,全局事务会话信息通过db共享,相应性能差些。


客户端修改

上篇文章中我们在服务项目的resource文件夹中放入了2个文件file.confregistry.conf,这次我们只需要删掉file.conf,然后再将服务端修改后的registry.conf重新拷贝到resource文件夹。


测试


按照如下过程进行测试:

  • 启动Seata-Server
    登录nacos控制台可以发现Seata已经注册进nacos
  • 启动微服务

    在Seata控制台可以看到服务注册
  • 业务测试
    正常情况会看到如下日志

    如果出现异常需要回滚会看到这样的日志


好了,各位朋友们,本期的“SpringCloud Alibaba微服务实战八 - Seata 整合Nacos”到此就全部结束啦,咱们下篇见!

one more thing! 如果你觉得这篇文章有点用的话,求"转发"、求"在看"。名人不说暗话,我喜欢这种赶脚!

目录
相关文章
|
3天前
|
Java 关系型数据库 数据库
微服务SpringCloud分布式事务之Seata
SpringCloud+SpringCloudAlibaba的Seata实现分布式事务,步骤超详细,附带视频教程
15 1
|
2月前
|
存储 Java Nacos
Spring Cloud+Nacos+KMS 动态配置最佳实践
本文讲述了 Spring Cloud 应用中结合 Nacos 实现了运行期配置动态更新的功能,以及在此基础上结合 KMS 在不改动代码的情况下对应用使用的敏感配置进行保护,解决将配置迁移到 Nacos 中可能存在的数据安全顾虑,并对其底层工作原理做了简单介绍。
513 16
|
16天前
|
存储 监控 供应链
微服务拆分的 “坑”:实战复盘与避坑指南
本文回顾了从2~3人初创团队到百人技术团队的成长历程,重点讨论了从传统JSP到前后端分离+SpringCloud微服务架构的演变。通过实际案例,总结了微服务拆分过程中常见的两个问题:服务拆分边界不清晰和拆分粒度过细,并提出了优化方案,将11个微服务优化为6个,提高了系统的可维护性和扩展性。
37 0
|
2月前
|
运维 NoSQL Java
后端架构演进:微服务架构的优缺点与实战案例分析
【10月更文挑战第28天】本文探讨了微服务架构与单体架构的优缺点,并通过实战案例分析了微服务架构在实际应用中的表现。微服务架构具有高内聚、低耦合、独立部署等优势,但也面临分布式系统的复杂性和较高的运维成本。通过某电商平台的实际案例,展示了微服务架构在提升系统性能和团队协作效率方面的显著效果,同时也指出了其带来的挑战。
93 4
|
3月前
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
203 1
Springcloud Alibaba + jdk17+nacos 项目实践
|
3月前
|
负载均衡 算法 Java
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
40岁老架构师尼恩分享了关于SpringCloud核心组件的底层原理,特别是针对蚂蚁集团面试中常见的面试题进行了详细解析。内容涵盖了Nacos注册中心的AP/CP模式、Distro和Raft分布式协议、Sentinel的高可用组件、负载均衡组件的实现原理等。尼恩强调了系统化学习的重要性,推荐了《尼恩Java面试宝典PDF》等资料,帮助读者更好地准备面试,提高技术实力,最终实现“offer自由”。更多技术资料和指导,可关注公众号【技术自由圈】获取。
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
|
4月前
|
运维 持续交付 API
深入理解并实践微服务架构:从理论到实战
深入理解并实践微服务架构:从理论到实战
159 3
|
3月前
|
负载均衡 算法 Nacos
SpringCloud 微服务nacos和eureka
SpringCloud 微服务nacos和eureka
81 0
|
8天前
|
存储 网络协议 Nacos
高效搭建Nacos:实现微服务的服务注册与配置中心
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。
171 81
高效搭建Nacos:实现微服务的服务注册与配置中心
|
25天前
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
146 10

热门文章

最新文章