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

常州微信网站建设市场公司网站维护建设费入什么科目

常州微信网站建设市场,公司网站维护建设费入什么科目,修改wordpress登录页面,什么是网站开发时间进度表SSM 如何使用 Seata 框架实现分布式事务#xff1f; 分布式事务是现代分布式系统中必不可少的一部分#xff0c;而 Seata 框架是一种常用的分布式事务处理方式。在 SSM 框架中#xff0c;我们可以使用 Seata 框架来管理分布式事务。本文将介绍如何在 SSM 框架中使用 Seata …SSM 如何使用 Seata 框架实现分布式事务 分布式事务是现代分布式系统中必不可少的一部分而 Seata 框架是一种常用的分布式事务处理方式。在 SSM 框架中我们可以使用 Seata 框架来管理分布式事务。本文将介绍如何在 SSM 框架中使用 Seata 框架实现分布式事务并提供相应的代码示例。 什么是 Seata 框架 Seata 框架是一种分布式事务解决方案它可以帮助我们解决分布式事务的一致性问题。Seata 框架基于 TCCTry-Confirm-Cancel事务模型将分布式事务拆分成以下三个阶段 Try 阶段在该阶段中系统会尝试执行分布式事务。如果所有参与者都执行成功则分布式事务进入 Confirm 阶段。否则分布式事务进入 Cancel 阶段。Confirm阶段在该阶段中系统会向所有的参与者发出 confirm 请求通知它们提交分布式事务。如果所有参与者都提交成功则分布式事务提交。否则分布式事务回滚。Cancel 阶段在该阶段中系统会向所有的参与者发出 cancel 请求通知它们回滚分布式事务。如果所有参与者都回滚成功则分布式事务回滚。否则需要手动处理分布式事务的异常情况。 Seata 框架通过将分布式事务拆分成三个阶段可以保证分布式事务的一致性并且具有较高的性能和可靠性。 SSM 如何使用 Seata 框架实现分布式事务 在 SSM 框架中使用 Seata 框架实现分布式事务主要涉及以下三个方面 数据库的事务管理 在 SSM 框架中我们可以使用 Spring 的声明式事务管理来管理数据库的事务。通过在 Service 层中添加 Transactional注解我们可以将一组数据库操作绑定到一个事务中。在使用 Seata 框架时我们需要将事务管理器设置为 SeataTransactionManager并通过 dataSource 属性指定数据源。 以下是一个使用 Seata 框架的数据库事务管理的示例代码 Configuration public class AppConfig {Beanpublic DataSource dataSource() {// 创建数据源return new DruidDataSource();}Beanpublic PlatformTransactionManager transactionManager() {// 创建事务管理器return new SeataTransactionManager();} }Service Transactional public class UserServiceImpl implements UserService {Autowiredprivate UserMapper userMapper;OverrideGlobalTransactionalpublic void transferMoney(int fromUserId, int toUserId, double money) {// 扣除转出用户的余额userMapper.updateUserBalance(fromUserId, -money);// 增加转入用户的余额userMapper.updateUserBalance(toUserId, money);} }在上面的示例代码中我们通过 Transactional 注解将 transferMoney() 方法绑定到一个事务中并使用 SeataTransactionManager 作为事务管理器。此外我们还使用了 GlobalTransactional 注解来标记分布式事务的入口。 Seata 服务端的配置 在使用 Seata 框架时我们需要在项目中引入 Seata 相关的依赖并在 Seata 服务端进行相应的配置。Seata 服务端主要包括以下两个组件 Seata Server用于管理 Seata 分布式事务的注册、发现和协调。Seata RMResource Manager用于管理分布式事务中涉及的资源如数据库、消息队列等。 以下是一个使用 Seata 框架的 Seata 服务端配置的示例代码 seata:enabled: trueapplication-id: ${spring.application.name}tx-service-group: my_test_tx_groupconfig:type: nacosnacos:server-addr: localhost:8848namespace: seataregistry:type: nacosnacos:server-addr: localhost:8848namespace: seatastorage:type: dbdb:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/seata?useUnicodetruecharacterEncodingutf-8autoReconnecttruefailOverReadOnlyfalseuseSSLfalseallowPublicKeyRetrievaltrueusername: rootpassword: 123456table: global_tablemin-conn: 5max-conn: 30global-table:create-table-if-not-exists: true在上面的示例代码中我们在 application.yml 文件中配置了 Seata 相关的参数。其中seata.enabled 属性用于开启 Seata 功能seata.application-id 属性用于指定应用 IDseata.tx-service-group 属性用于指定事务组。seata.config 属性和 seata.registry 属性分别用于指定 Seata 的配置中心和注册中心。在本示例中我们使用了 Nacos 作为配置中心和注册中心。seata.storage 属性用于指定 Seata 的存储方式我们在本示例中使用了 MySQL 数据库作为存储方式。 分布式事务的编程实现 在 SSM 框架中我们可以使用 Seata 提供的 GlobalTransactional 注解来标记分布式事务的入口。当我们在 Service 层中的某个方法标记了该注解后Seata 就会自动协调该方法中的所有数据库操作并根据 TCC 事务模型来执行分布式事务。 以下是一个使用 Seata 框架实现分布式事务的示例代码 Service public class OrderServiceImpl implements OrderService {Autowiredprivate OrderMapper orderMapper;Autowiredprivate AccountMapper accountMapper;Autowiredprivate StorageMapper storageMapper;GlobalTransactionalOverridepublic void createOrder(Order order) {// 扣减库存storageMapper.updateStorage(order.getProductId(), -order.getCount());// 扣减账户余额accountMapper.updateAccount(order.getUserId(), -order.getMoney());// 创建订单orderMapper.createOrder(order);} }在上面的示例代码中我们使用了 GlobalTransactional 注解来标记 createOrder() 方法该方法中包含了三个数据库操作扣减库存、扣减账户余额和创建订单。在该方法中我们通过调用 updateStorage() 方法、updateAccount() 方法和 createOrder() 方法来执行数据库操作。由于该方法被标记为全局事务当其中任何一个操作失败时Seata 就会自动回滚所有操作确保分布式事务的一致性。 总结 本文介绍了在 SSM 框架中使用 Seata 框架实现分布式事务的方法。通过使用 Seata 框架我们可以有效地解决分布式事务的一致性问题提高系统的性能和可靠性。在实现分布式事务时我们需要注意事务管理、Seata 服务端的配置和分布式事务的编程实现等方面。希望本文能够为大家在 SSM 框架中使用 Seata 框架实现分布式事务提供帮助。 参考资料 Seata 官方文档Spring 官方文档
http://www.hkea.cn/news/14305505/

相关文章:

  • 网站建设方案实例广告公司名字
  • 通州区建设局网站温州网络问政平台官网
  • 微软的网站开发软件做淘宝优惠卷网站步骤
  • 自己免费怎么制作网站吗腾讯企业邮箱怎么开通注册
  • 网站开发的运行可行性网站导航栏固定
  • 公司网站开发费入什么科目h5模板素材
  • 外汇跟单网站建设新的seo网站优化排名 排名
  • 企业家居网站建设宣城市市政建设集团公司网站
  • 营口网站建设单位seo如何使用wordpress优化
  • 如何选择低价网站建设昆明传媒网站建设
  • 无锡崇安网站建设天津网页制作设计营销
  • 无忧建站网站建设和美工
  • 备案 个人网站名称万网网站开发
  • 花店网站建设目的线上推广专员是干嘛的
  • 网站模板 红色id如何打开wordpress
  • 网站如何开通微信支付接口南京软件开发公司有哪些
  • 酷炫 网站模板网站上做公司宣传
  • 销售一个产品的网站怎么做无锡百度
  • 做网站卖游戏装备本科学院网站建设方案
  • 备案网站容易被收录网站开发是前端吗
  • 服务器上做网站wordpress城市插件
  • 企业网站排名优化机械外贸网站
  • 网站主题旁边的图标怎么做网站在百度搜不到
  • 做网站较好的框架asp网站可运行jsp吗
  • 景点网站建设西丽网站建设
  • ppt做的最好的网站做头像网站有哪些
  • 怎样重新安装电脑wordpress盐城seo培训
  • 网站做兼容需要多少钱大数据营销的运营方式有哪些
  • 互利互通网站建设东莞电商网站建设
  • 仿站怎么修改成自己的网站工信部网站备案验证码