SpringCloud-Alibaba之Seata入门及踩坑

前言

上一篇老顾介绍了Seata基本原理,今天老顾来介绍一下Seata的基本使用,可以避免让小伙伴们入坑,小伙伴们也要动手操作哦!

版本对应关系

经常看老顾文章的小伙伴们,应该清楚老顾是一直推荐SpringCloud Alibaba的系统的组件的,而且Seata也是阿里开源出来的,所以大家一定要知道SpringCloud Alibaba的生态的组件版本关系

SpringCloud-Alibaba之Seata入门及踩坑_第1张图片

SpringCloud-Alibaba之Seata入门及踩坑_第2张图片

目录说明

到github中的seata项目中,下载release;并查看源文件中有个script文件

SpringCloud-Alibaba之Seata入门及踩坑_第3张图片

client目录

SpringCloud-Alibaba之Seata入门及踩坑_第4张图片

此目录存放用于客户端的配置和SQL

  • at:AT模式下的undo_log建表语句
  • conf:客户端的配置文件
  • saga:saga模式下所需表的建表语句
  • spirng:SpringBoot应用支持的配置文件

server目录

SpringCloud-Alibaba之Seata入门及踩坑_第5张图片

  • db:server端,如模式为db时 所需表的建表语句
  • docker-compose:docker容器化部署
  • helm/kubernetes:k8s相关的部署

config-center目录

SpringCloud-Alibaba之Seata入门及踩坑_第6张图片

用于存放各种配置中心的初始化脚本文件;小伙伴们从文件夹名称中,一看就知道对应什么配置中心了。

我们看nacos-config.sh脚本文件中,就能够发现需要读取config.txt。

安装Seata-Server

seata-server的包比较难下载,github上比较慢,小伙伴们懂的

下载好了后,就看到

SpringCloud-Alibaba之Seata入门及踩坑_第7张图片

我们这次就把seata和nacos相结合。

###创建Seata数据库

我们在源文件中script中的server/db目录中,打开mysql.sql,因为老顾这里使用的是mysql数据库;这个是在server存储模式为db数据库时才会有效,也是官方推荐的方式。

SpringCloud-Alibaba之Seata入门及踩坑_第8张图片

SpringCloud-Alibaba之Seata入门及踩坑_第9张图片

SpringCloud-Alibaba之Seata入门及踩坑_第10张图片

SpringCloud-Alibaba之Seata入门及踩坑_第11张图片

###config.txt配置

此文件是执行配置中心脚本时,都会读取的文件,里面配置了核心信息

SpringCloud-Alibaba之Seata入门及踩坑_第12张图片
SpringCloud-Alibaba之Seata入门及踩坑_第13张图片
SpringCloud-Alibaba之Seata入门及踩坑_第14张图片

上面的自定义组名,一定要记住,后面在配置客户端应用的时候,需要配置组名一致 seata server的数据库的配置信息

###执行nacos-config

SpringCloud-Alibaba之Seata入门及踩坑_第15张图片

执行初始化脚本nacos-config.sh配置到nacos中

chmod +x nacos-config.sh./nacos-config.sh localhost

SpringCloud-Alibaba之Seata入门及踩坑_第16张图片

执行脚本,看到此信息,表示初始化数据成功,我们再来看看nacos里面的信息。

SpringCloud-Alibaba之Seata入门及踩坑_第17张图片

可以在看到很多配置信息,以及Group组名为 SEATA_GROUP。

启动seata-server

修改seata-server目录中的conf里面,file.conf、registry.conf。

在registry.conf配置把seata-server注册到nacos中 ,并且配置中心也是为nacos。

SpringCloud-Alibaba之Seata入门及踩坑_第18张图片

seata-server中的配置信息放到nacos中

SpringCloud-Alibaba之Seata入门及踩坑_第19张图片

利用nacos作为配置中心,需要到nacos配置中心去配置数据存储方式,我们需要修改配置,可以到nacos里面修改。

SpringCloud-Alibaba之Seata入门及踩坑_第20张图片

SpringCloud-Alibaba之Seata入门及踩坑_第21张图片

注意:如果registry.conf中的config为file的话(个人测试用,生产环境不推荐),可以在file.conf中配置seata-server存储的方式配置为db,把事务相关的信息存储到数据库中

SpringCloud-Alibaba之Seata入门及踩坑_第22张图片

启动运行seata

命名参考:

Usage: sh seata-server.sh(适用 linux and mac) 或者 cmd seata-server.bat(适用 windows) [options]
#可携带参数  Options:
    --host, -h
      The host to bind. # 绑定ip地址
      Default: 0.0.0.0
    --port, -p  # 端口
      The port to listen.
      Default: 8091  # 默认
    --storeMode, -m #启动模式 文件 或数据库
      log store mode : file、db
      Default: file  ##默认
    --help  #帮助
示例sh seata-server.sh -p 8091 -h 127.0.0.1 -m file

我们这里使用db数据库存储模式,运行 sh seata-server.sh

SpringCloud-Alibaba之Seata入门及踩坑_第23张图片

我们发现seata-server在nacos中已经注册了。到此seata-server已经安装完成。

总结

今天老顾主要介绍了seata版本关系,以及源项目中的文件目录含义,和如何安装seata server,在操作过程中,小伙伴们一定要注意相关的配置文件

一定不要搞错了对应的seata版本,之前seata的1.0.0之前的版本配置信息的位置是不一样的,千万记住哦。

下篇我们就介绍实战案例,以及会遇到的一个大坑,以及解决方案。

难道这样就够了吗?不,远远不够!

提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。

备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记,以及学习视频都是可以点击这里免费领取的!

我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。

今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!

阿里一面就落马,恶补完这份“阿里面试宝典”后,上岸蚂蚁金服

阿里一面就落马,恶补完这份“阿里面试宝典”后,上岸蚂蚁金服

image.png

享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!

[外链图片转存中…(img-TOr9jD2R-1623585247362)]

[外链图片转存中…(img-OcoMjEM4-1623585247363)]

[外链图片转存中…(img-FB5W6ozY-1623585247363)]

你可能感兴趣的:(程序员,面试,java,经验分享)