Seata是什么

这里引用官方解释

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。

环境搭建

Nacos + Seata

Nacos

使用Nacos作为配置中心和注册中心

Seata支持多种配置方式(nacos、consul、apollo、etcd、zookeep、file),详看Seata官方文档

安装(Docker方式,其他方式见Nacos官方文档):

  1. 导入Nacos所需的表

    去github下载安装包,一般选最新的就行,地址

    解压进入conf目录,将nacos-mysql.sql导入数据库

  2. Docker执行

docker run \
--name nacos \
-d \
-p 8848:8848 -p 9848:9848 -p 9555:9555 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=127.0.0.1 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=wangguyu \
-e MYSQL_SERVICE_PASSWORD=wangguyu \
-e MYSQL_SERVICE_DB_NAME=nacos \
nacos/nacos-server

参数解释:

  • MODE:单机模式
  • SPRING_DATASOURCE_PLATFORM:mysql支持
  • MYSQL_SERVICE_HOST:mysql地址
  • MYSQL_SERVICE_PORT:mysql端口
  • MYSQL_SERVICE_USER:mysql用户名
  • MYSQL_SERVICE_PASSWORD:mysql密码
  • MYSQL_SERVICE_DB_NAME:mysql数据库名

Seata

Seata需要提供服务端给客户端连接,有两种安装方式:

此处使用官方软件包安装:

  1. 解压安装包,修改nacos地址

    进入conf目录,参考application.example.yml修改配置文件,连接nacos

  2. 命令启动

    进入bin目录,执行以下命令

    sh seata-server.sh -p 8091 -h 127.0.0.1 -m file

    参数说明:

    -p:监听端口

    -h:seata在注册中心显示的地址(内网访问可忽略,如果seata服务端在外网,客户端在内网,切记配置此参数为公网地址)

    -m:存储模式(支持file、db)

    验证

    登录nacos控制台,在菜单 服务管理→ 服务列表 中,看到seata服务注册成功。

    详情页的ip显示正常,则证明seata服务启动成功。

    当前时间2022年7月4日,Seata在github的releases页最新版本是v1.5.1

    此版本有bug,seata-server.sh命令使用-h参数无效

    详见bugfix: fix missing command line args

    修复了bug,但是半个月了都不发布release,牛逼,浪费了我几个小时。

    修复方法:

    按下图修改bin/seata-server.sh文件(红框部分)

使用

参考官方demo

因为直接使用的官方demo代码,只是修改了配置,此处就不多赘述。

注意事项

我的环境是Nacos和Seata服务端都放在云服务器,所以启动Seata服务端的时候,要使用-h参数指定外网ip,否则Seata客户端无法连接服务端

参考资料

Nacos文档

Docker Hub(Nacos)

Seata文档

Spring-cloud-alibaba官方demo

Seata-初体验以及避坑的更多相关文章

  1. 微信小程序初体验遇到的坑

    今天,2017年1月9日凌晨,微信小程序如约上线.2007年1月9日,整整10年前的今天,苹果的iPhone手机正式问世! 经不起新技术的诱惑了,想试着开发一下看看.刚开始遇到很多坑,在这里记录一下, ...

  2. Spring Cloud Alibaba 初体验(六) Seata 及结合 MyBatis 与 MyBatis-Plus 的使用

    一.下载与运行 本文使用 Seata 1.1.0:https://github.com/seata/seata/releases Windows 环境下双击 bin/seata-server.bat ...

  3. win7升win10,初体验

    跟宿舍哥们聊着聊着,聊到最近发布正式版的win10,听网上各种评论,吐槽,撒花的,想想,倒不如自己升级一下看看,反正不喜欢还可以还原.于是就开始了win10的初体验了,像之前装黑苹果双系统一样的兴奋, ...

  4. 【尝新】微信小程序初体验

    文档地址:https://mp.weixin.qq.com/debug/wxadoc/dev/?t=1474644089434 根据文档地址中下载微信开发工具后,按照文档指引可以创建一个快速体验的小d ...

  5. python--爬虫入门(七)urllib库初体验以及中文编码问题的探讨

    python系列均基于python3.4环境 ---------@_@? --------------------------------------------------------------- ...

  6. python窗体——pyqt初体验

    连续两周留作业要写ftp的作业,从第一周就想实现一个窗体版本的,但是时间实在太短,qt零基础选手表示压力很大,幸好又延长了一周时间,所以也就有了今天这篇文章...只是为了介绍一些速成的方法,还有初学者 ...

  7. 【阿里云产品公测】消息队列服务MQS java SDK 机器人应用初体验

    [阿里云产品公测]消息队列服务MQS java SDK 机器人应用初体验 作者:阿里云用户啊里新人   初体验 之 测评环境 由于MQS支持外网访问,因此我在本地做了一些简单测试(可能有些业余),之后 ...

  8. iOS AR技术初体验,使用EasyAR示例程序的小白指南

    QQ前两天的传递火炬,是我第一次直接接触到AR.(虽然之前听同事说过,因为他喜欢玩游戏,PS.3DS等等都玩过,这个技术最开始就是从这里出现的).所以感觉很有趣,就想自己也试着搞一下玩玩...下面是我 ...

  9. 双刃剑MongoDB的学习和避坑

    双刃剑MongoDB的学习和避坑 MongoDB 是一把双刃剑,它对数据结构的要求并不高.数据通过key-value的形式存储,而value的值可以是字符串,也可以是文档.所以我们在使用的过程中非常方 ...

随机推荐

  1. 浅谈 UNIX、Linux、ios、android 他们之间的关系

    开源Linux 一个执着于技术的公众号 Unix, 简化形成了Linux,Linux则是Android的内核,而苹果则是使用unix系统作为ios和macos的内核. 几个系统出现的时间 UNIX系统 ...

  2. muduo项目介绍

    在上一个集群聊天服务器项目中,我使用了muduo作为网络库,然后主要实现了业务逻辑等,所以为了深入网络库的代码和实现,我跟着一位老师的代码去实现了muduo库的基本原理和作用,当然只是实现了主体的代码 ...

  3. 1.0 vue开篇之作

    vue官网链接:https://cn.vuejs.org/ 一. vue简介 vue目前分为2.X版和3.X版,本文以2.X版为准,后续会更新3.X版本相关教程,建议从2.X版开始学起,因为此版本经过 ...

  4. Android Studio中一套代码多版本打包

    一套代码达到以下效果: 打包不同applicationId能同时安装在同一手机上 不同logo,app名称, 不同第三方SDK接入配置(例如微信分享appid,激光推送appkey) 能区分debug ...

  5. Nexus5x 刷机

    1.刷机方式 线刷 线刷的本质的是对分区的全部内容的替换,线刷的包通常比较大. 卡刷 顾名思义,将升级包放在存储卡上,然后进入Recovery引导模式对系统进行刷机.卡刷本质是对文件的替换过程.它不会 ...

  6. Netty源码研究笔记(4)——EventLoop系列

    1. Netty源码研究笔记(4)--EventLoop系列 EventLoop,即事件驱动,它是Netty的I/O模型的抽象,负责处理I/O事件.任务. 不同的EventLoop代表着不同的I/O模 ...

  7. asp.net6 blazor 文件上传

    微软在asp.net6中给blazor新增了一个IJSStreamReference的接口. 我们今天的所有内容,都要依赖这个接口,因为它可以把流直接传到c#中,这样我们就可以做很多的骚操作了. 今天 ...

  8. SPPNet(特征金字塔池化)学习笔记

    SPPNet paper:Spatial pyramid pooling in deep convolutional networks for visual recognition code 首先介绍 ...

  9. sqlserver 插入 更新 删除 语句中的 output子句

    官方文档镇楼: https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008/ms177564(v=sql.100) 从 ...

  10. django框架4

    内容概要 编辑删除功能编写 虚拟环境 django路由层版本区别 视图函数的返回值 JsonResponse对象 form表单上传文件 request其他方法 FBV与CBV(基于函数的视图.基于类的 ...