暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

seata-1.3.0+nacos1.3.2实现分布式事务(一)

大数据开发运维架构 2021-01-22
633

一、概述

    这里分两篇文章进行讲解seata+nacos实现分布式事务,本篇文章主要讲解seata和nacos的安装配置,这里我都是在我本机win10环境进行的配置,linux环境配置类似,这里就不再讲解。涉及到的组件版本:

组件版本
Seata1.3.0
Nacos1.3.2
SpringCloudHoxton.SR1
SpringCloud Alibaba2.1.0.RELEASE
SpringBoot2.2.2.RELEASE

二、安装配置

1.需要准备的文件

1)nacos1.3.2

下载地址:

    https://github.com/alibaba/nacos/releases

    2)seata1.3.0:

    下载地址:

      https://github.com/seata/seata/releases

      3)seata数据库初始化脚本(seata从0.9版本之后需要单独下载)

      下载地址:

              https://github.com/seata/seata/tree/develop/script/server/db,这里我用的是mysql数据库,这里下载mysql.sql

      4)seata配置文件1:config.txt(seata从0.9版本之后需要单独下载)

      下载地址:

        https://github.com/seata/seata/tree/develop/script/config-center

        5)seata配置文件2:nacos-config.sh(seata从0.9版本之后需要单独下载)

        下载地址:

          https://github.com/seata/seata/tree/develop/script/config-center/nacos

          6)seata事务表undo_log,实现分布式事务的各个微服务对应的数据库,必须要有一张undo_log表,这

          里暂时用不到,下篇文章实战中会用到,

          下载地址:(选mysql.sql)

            https://github.com/seata/seata/tree/develop/script/client/at/db

            2.nacos1.3.2安装(win10环境)

            1)将nacos-server-1.3.2.zip下载解压,解压后目录结构如下:

            2)nacos默认内置deby数据库,这里修改为mysql,将数据持久化到mysql数据库中,修改conf下的application.properties文件,如下图所示:

            3)我这里数据库名称为nacos_config,执行conf下的schema.sql文件对nacos数据库进行初始化,执行完毕后下面有几张表,如下图所示:

            4)默认nacos启动时集群模式,这里我修改bin目录下的startup.cmd文件,让他默认启动模式为standalone模式,如下图所示:

            5)执行执行startup.cmd启动nacos,默认端口是8848,默认登录用户:nacos,密码:nacos,可看到如下界面,说明nacos安装成功:

            3.seata1.3.0安装(win10环境)

            1)将seata-server-1.3.0.zip下载解压,解压后目录结构如下:

            2)这里我们将seata数据也持久化到mysql中,新建seata数据库执行上面下载的mysql.sql脚本,生产三张表,如下图所示:

            3)修改conf目录下的registry.conf文件,修改后端存储为mysql数据库:

            4)修改conf目录下的file.conf文件,将seata注册到nacos中:

                这里我整理了一个模板,里面详细说明了各个配置项的含义:

              # 注册中心
              registry {
              # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
              # 如果是file,则需要配置file.conf
              # 因为本例使用nacos,此处填写nacos
                type = "nacos"
              # 【重要】此处是nacos中的服务注册配置
              nacos {
              # 【重要】本服务端在nacos中的微服务名称,后面seata客户端的application.yml中要用到
              application = "serverAddr"
              # nacos地址(默认为8848,笔者此处做了负载均衡改了端口)
              serverAddr = "127.0.0.1:8848"
              # seata-server微服务的分组
              group = "SEATA_GROUP"
              # seata-server微服务的命名空间,此处省略,使用默认值public
              namespace = ""
              # 【重要】seata-server作为集群时的集群名字,与前面nacos中设定事务分组属性(service.vgroupMapping.my_test_tx_group)保持一致
              cluster = "default"
              # nacos1.2加入了鉴权,账号密码不可省略
              username = "nacos"
              password = "nacos"
              }
              }
              # 配置中心
              config {
              # file、nacos 、apollo、zk、consul、etcd3
              # 因为本例使用nacos,此处填写nacos
                type = "nacos"
              nacos {
              serverAddr = "127.0.0.1:8848"
              namespace = ""
              # 【重要】本服务端的配置在nacos配置列表哪个分组下,要与上面推送到nacos的分组列表保持一致,默认是SEATA_GROUP。
              group = "SEATA_GROUP"
              username = "nacos"
              password = "nacos"
              }
              }

              5)接下来通过脚本向nacos导入配置,将config.txt放到根目录,将nacos-config.sh放置到conf目录,如下图所示:

                  通过git bash执行nacos-config.sh将配置导入到nacos中:

                  执行成功后,可在nacos中看到seata配置信息,执行过程中可能会报一些redis等的错误,由于我们只用到了nacos,可直接忽略即可,如下图所示:

              6)进入bin目录,执行seata-server.bat启动seata-server,启动成功后可在nacos中看到以下服务信息:

                  至此nacos+seata安装配置已完成,下一篇文章通过代码演示,如何实现分布式事务。

                感谢大家的持续关注,只要有空余时间,争取把自己的Hadoop相关经验和采坑记录都分享给大家。

                如果觉得我的文章能帮到您,请关注微信公众号“大数据开发运维架构”,并转发朋友圈,谢谢支持!

              文章转载自大数据开发运维架构,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论