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. 使用 .net + blazor 做一个 kubernetes 开源文件系统

    背景 据我所知,目前 kubernetes 本身或者其它第三方社区都没提供 kubernetes 的文件系统.也就是说要从 kubernetes 的容器中下载或上传文件,需要先进入容器查看目录结构,然 ...

  2. Next.js 在 Serverless 中从踩坑到破茧重生

    作者 杨苏博,偏后端的全栈开发,目前负责腾云扣钉的 Cloud Studio 产品.在团队中负责接技术架构设计与 Review.Cloud Studio 编辑器内核设计与开发.部分核心插件设计与开发: ...

  3. ELK 1.4 logstash各种插件

      kibana各种插件: 1.过虑插件 kv (1)KV插件:接收一个键值数据,按照指定分隔符解析为Logstash 事件中的数据结构,放到事件顶层.  常用字段:    • field_split ...

  4. 48. Rotate Image - LeetCode

    Question 48. Rotate Image Solution 把这个二维数组(矩阵)看成一个一个环,循环每个环,循环每条边,每个边上的点进行旋转 public void rotate(int[ ...

  5. 【摸鱼神器】一次搞定 vue3的 路由 + 菜单 + tabs

    做一个管理后台,首先要设置路由,然后配置菜单(有时候还需要导航),再来一个动态tabs,最后加上权限判断. 这个是不是有点繁琐?尤其是路由的设置和菜单的配置,是不是很雷同?那么能不能简单一点呢?如果可 ...

  6. DAST 黑盒漏洞扫描器 第二篇:规则篇

    0X01 前言 怎么衡量一个扫描器的好坏,扫描覆盖率高.扫描快.扫描过程安全 而最直接的效果就是扫描覆盖率高(扫的全) 怎么扫描全面,1 流量全面 2 规则漏报低 流量方面上篇已经讲过,这篇主要讲扫描 ...

  7. 2021.05.05【NOIP提高B组】模拟 总结

    T1 给你一棵树,要求增加最少的边权是的从根到每一个叶子的长度相等 不能改变原有的最大长度 这是一个贪心:尽可能往深度小的边增加 先预处理出 \(mx_i\) 表示从 \(i\) 到叶子的最大长度 然 ...

  8. 什么是Gerber文件?PCB电路板Gerber文件简介

    什么是Gerber文件: Gerber也叫"光绘",通常只代表一种格式如RS-274, 274D, 274X等,充任了将设计的图形数据转换成PCB制造的两头媒介,即一种CAD-CA ...

  9. Nginx安装及支持https代理配置和禁用TSLv1.0、TSLv1.1配置

    Linux安装Nginx Nginx安装及支持https代理配置和禁用TSLv1.0.TSLv1.1配置. 下载安装包 [root@localhost ~]# wget http://nginx.or ...

  10. vivo大规模 Kubernetes 集群自动化运维实践

    作者:vivo 互联网服务器团队-Zhang Rong 一.背景 随着vivo业务迁移到K8s的增长,我们需要将K8s部署到多个数据中心.如何高效.可靠的在数据中心管理多个大规模的K8s集群是我们面临 ...