当前位置: 首页 > news >正文

怎么做关不掉的网站辽阳网站制作

怎么做关不掉的网站,辽阳网站制作,杭州app建设,企业做门户网站的重要性在现代的微服务架构中#xff0c;随着业务系统的不断拆分和模块化#xff0c;分布式事务成为一个重要的挑战。为了解决微服务架构下的分布式事务问题#xff0c;Seata应运而生。Seata#xff08;Simple Extensible Autonomous Transaction Architecture#xff09;是一款开…在现代的微服务架构中随着业务系统的不断拆分和模块化分布式事务成为一个重要的挑战。为了解决微服务架构下的分布式事务问题Seata应运而生。SeataSimple Extensible Autonomous Transaction Architecture是一款开源的分布式事务解决方案旨在为微服务架构提供高效、简单的分布式事务服务。本文将详细介绍Seata的概念、原理、使用方式并为初学者提供详细的上手指南。 一、Seata的基本概念 1. 什么是Seata Seata 是阿里巴巴开源的一款分布式事务解决方案最初名为Fescar后更名为Seata。Seata通过提供一整套分布式事务的处理方案帮助开发者在微服务架构下轻松实现分布式事务的管理。 2. Seata的核心组件 Transaction Coordinator (TC)事务协调器负责维护全局事务的状态协调并驱动全局事务的提交和回滚。Transaction Manager (TM)事务管理器负责开启全局事务提交或回滚全局事务。Resource Manager (RM)资源管理器负责管理分支事务注册分支事务并最终驱动分支事务提交或回滚。 二、Seata的工作原理 Seata 使用了一种称为“AT模式”Automatic Transaction的事务模型。其工作流程如下 全局事务的开启 在TM中开启一个全局事务生成一个全局事务IDXID。 业务操作 在全局事务的上下文中进行业务操作。每个微服务在执行数据库操作时会生成相应的分支事务并将分支事务注册到TC。 全局事务的提交/回滚 当业务操作完成后由TM向TC发起全局事务的提交或回滚请求。TC根据全局事务的状态通知各个RM进行相应的分支事务提交或回滚操作。 三、Seata的使用方式 1. 环境搭建 1下载和安装Seata Server 你可以从Seata的GitHub仓库下载最新的Server版本。下载完成后解压文件并进入解压后的目录。 2配置文件修改 在conf目录下有多个配置文件需要根据实际情况进行修改如registry.conf和file.conf。registry.conf用于配置注册中心和配置中心file.conf用于配置TC的存储。 示例registry.conf registry {type filefile {name file.conf} }config {type filefile {name file.conf} }示例file.conf store {mode filefile {dir sessionStore} }3启动Seata Server 在bin目录下运行以下命令启动Seata Server sh ./seata-server.sh2. 集成Seata到Spring Boot项目 1引入依赖 在pom.xml中添加Seata的依赖 dependencygroupIdio.seata/groupIdartifactIdseata-all/artifactIdversion1.4.2/version !-- 请根据最新版本进行替换 -- /dependency2配置文件 在application.yml中添加Seata相关配置 spring:cloud:alibaba:seata:tx-service-group: my_tx_group # 自定义事务分组名seata:registry:type: nacos # 使用的注册中心类型nacos:server-addr: 127.0.0.1:8848 # 注册中心地址config:type: nacos # 使用的配置中心类型nacos:server-addr: 127.0.0.1:8848 # 配置中心地址3配置数据源代理 在Spring Boot项目中配置Seata的数据源代理 import io.seata.rm.datasource.DataSourceProxy; import com.zaxxer.hikari.HikariDataSource;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class DataSourceConfiguration {Beanpublic DataSourceProxy dataSource(HikariDataSource hikariDataSource) {return new DataSourceProxy(hikariDataSource);} }4注解使用 在需要开启分布式事务的方法上使用GlobalTransactional注解 import io.seata.spring.annotation.GlobalTransactional; import org.springframework.stereotype.Service;Service public class MyService {GlobalTransactionalpublic void myBusinessMethod() {// 业务逻辑} }3. 使用示例 假设我们有两个微服务分别为OrderService和AccountService它们分别进行订单创建和账户扣款操作。我们希望这两个操作在一个全局事务中进行。 1OrderService OrderService中需要调用AccountService的扣款接口并将这两个操作纳入一个全局事务。 OrderService的代码示例如下 import com.example.order.feign.AccountFeignClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import io.seata.spring.annotation.GlobalTransactional;RestController public class OrderController {Autowiredprivate AccountFeignClient accountFeignClient;PostMapping(/createOrder)GlobalTransactionalpublic String createOrder(RequestBody OrderRequest orderRequest) {// 创建订单逻辑// ...// 调用AccountService扣款accountFeignClient.decreaseBalance(orderRequest.getUserId(), orderRequest.getAmount());return Order created successfully;} }2AccountService AccountService中实现扣款逻辑并确保操作的原子性。 AccountService的代码示例如下 import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate;RestController public class AccountController {Autowiredprivate JdbcTemplate jdbcTemplate;PostMapping(/decreaseBalance)public String decreaseBalance(RequestParam(userId) String userId, RequestParam(amount) Double amount) {String sql UPDATE account SET balance balance - ? WHERE user_id ?;jdbcTemplate.update(sql, amount, userId);return Balance decreased successfully;} }四、常见问题和解决方案 1. Seata Server连接问题 如果Seata Server无法连接到注册中心或配置中心请检查以下几点 确认registry.conf和file.conf中的配置是否正确。确认注册中心和配置中心服务是否启动并正常运行。 2. 数据源代理配置 确保数据源代理配置正确使用DataSourceProxy代理数据源。同时确保Seata客户端和Server的版本匹配以避免兼容性问题。 3. 事务注解生效问题 确保在需要开启事务的方法上使用了GlobalTransactional注解并且Spring的AOP配置正确。如果事务注解没有生效可能是因为AOP配置不正确或者Spring Boot的自动配置不完整。 五、总结 通过本文的讲解我们详细介绍了Seata的基本概念、工作原理、使用方式及常见问题的解决方案。Seata在微服务架构下提供了高效、简单的分布式事务解决方案帮助开发者轻松实现全局事务管理。希望通过这篇详细的讲解能够帮助初学者全面掌握Seata并在实际项目中得心应手地使用它。 如果你对Seata还有其他疑问或有更多的使用技巧欢迎在评论区分享和讨论。记住编程不仅仅是写代码更是不断学习和交流的过程。Happy coding!
http://www.dnsts.com.cn/news/34560.html

相关文章:

  • 响应式网站制作教程wordpress一键倒入微信
  • 网站优化排名易下拉技术WordPress源码路由
  • 网站加在线qq中信建设有限责任公司哈萨克斯坦分公司
  • 北京网站建设 性价比wordpress po
  • 搜索引擎网站的搜素结果有何区别黄江镇做网站
  • 微网站与移动开发是做什么的网站推广的几种方法
  • 智能免费建站企业形象策划论文
  • 常州微信网站建设方案昆山制造网站的地方
  • 如何创建网站小程序网站建设英文怎么说
  • 重庆市工程建设信息网官方网站做兼职的网站都有哪些工作内容
  • 营销型网站建设xywlcnwordpress删除顶部设置菜单
  • 网站建设合同违约新密做网站推广
  • 广州网站建设培训学校wordpress菜单字体大小
  • 网站建设运营维护合同珲春市建设局网站是多少
  • 广西建设职业技术学院教育网站常用的系统开发方法有哪些
  • 视频制作培训机构西安企业网站seo
  • 吉林做网站优化智慧团建网页手机版官网
  • 各大网站的名字荆州哪有做网站的公司
  • 苏州高级网站建设项目融资平台
  • 免费建网站 建站之星网站建设百度搜索到左边的图
  • 自己做的网站出现iis7四川工程造价信息网
  • 个人网站设计论文怎么写古交网站建设推广
  • 南宁网站建设方案详细方案网络规划设计师教程第二版
  • 在凡科上做的网站无法加载出来红色博客网站源码
  • 鞍山云网站建设银行网站驱动
  • pr模板免费下载网站长沙设计网站多少钱
  • 做网站有什么软件wordpress插件一键安装
  • 做视频网站要多大的服务器四川电子商务网站
  • 做网站有底薪吗seo网站架构
  • 做app护肤网站公司装修设计公司