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

淮北市网站建设友情链接收录

淮北市网站建设,友情链接收录,织梦做的网站图片路径在哪里,网络推广策划方案范文一、JTA组件简介1、JTA基本概念JTA即Java-Transaction-API#xff0c;JTA允许应用程序执行分布式事务处理#xff0c;即在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序对JTA的支持极大地增强了数据访问能力。XA协议是数据库层面的一套分布式事务管理的规范,JTA…一、JTA组件简介1、JTA基本概念JTA即Java-Transaction-APIJTA允许应用程序执行分布式事务处理即在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序对JTA的支持极大地增强了数据访问能力。XA协议是数据库层面的一套分布式事务管理的规范,JTA是XA协议在Java中的实现,多个数据库或是消息厂商实现JTA接口,开发人员只需要调用SpringJTA接口即可实现JTA事务管理功能。JTA事务比JDBC事务更强大。一个JTA事务可以有多个参与者而一个JDBC事务则被限定在一个单一的数据库连接。下列任一个Java平台的组件都可以参与到一个JTA事务中2、分布式事务分布式事务(DistributedTransaction)包括事务管理器(TransactionManager)和一个或多个支持 XA 协议的资源管理器 ( Resource Manager )。资源管理器是任意类型的持久化数据存储容器例如在开发中常用的关系型数据库MySQLOracle等消息中间件RocketMQ、RabbitMQ等。事务管理器提供事务声明事务资源管理同步事务上下文传播等功能并且负责着所有事务参与单元者的相互通讯的责任。JTA规范定义了事务管理器与其他事务参与者交互的接口其他的事务参与者与事务管理器进行交互。二、SpringBoot整合JTA项目整体结构图1、核心依赖org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-jta-atomikos2、环境配置这里jtaManager的配置在日志输出中非常关键。spring:jta:transaction-manager-id: jtaManager# 数据源配置datasource:type: com.alibaba.druid.pool.DruidDataSourcedata01:driverClassName: com.mysql.jdbc.DriverdbUrl: jdbc:mysql://localhost:3306/data-oneusername: rootpassword: 000000data02:driverClassName: com.mysql.jdbc.DriverdbUrl: jdbc:mysql://localhost:3306/data-twousername: rootpassword: 0000003、核心容器这里两个数据库连接的配置手法都是一样的可以在源码中自行下载阅读。基本思路都是把数据源交给JTA组件来统一管理方便事务的通信。数据源参数ComponentConfigurationProperties(prefix spring.datasource.data01)public class DruidOneParam {private String dbUrl;private String username;private String password;private String driverClassName;}JTA组件配置package com.jta.source.conifg;ConfigurationMapperScan(basePackages {com.jta.source.mapper.one},sqlSessionTemplateRef data01SqlSessionTemplate)public class DruidOneConfig {private static final Logger LOGGER LoggerFactory.getLogger(DruidOneConfig.class) ;Resourceprivate DruidOneParam druidOneParam ;PrimaryBean(dataSourceOne)public DataSource dataSourceOne () {// 设置数据库连接MysqlXADataSource mysqlXADataSource new MysqlXADataSource();mysqlXADataSource.setUrl(druidOneParam.getDbUrl());mysqlXADataSource.setUser(druidOneParam.getUsername());mysqlXADataSource.setPassword(druidOneParam.getPassword());mysqlXADataSource.setPinGlobalTxToPhysicalConnection(true);// 事务管理器AtomikosDataSourceBean atomikosDataSourceBean new AtomikosDataSourceBean();atomikosDataSourceBean.setXaDataSource(mysqlXADataSource);atomikosDataSourceBean.setUniqueResourceName(dataSourceOne);return atomikosDataSourceBean;}PrimaryBean(name sqlSessionFactoryOne)public SqlSessionFactory sqlSessionFactoryOne(Qualifier(dataSourceOne) DataSource dataSourceOne) throws Exception{// 配置Session工厂SqlSessionFactoryBean sessionFactory new SqlSessionFactoryBean();sessionFactory.setDataSource(dataSourceOne);ResourcePatternResolver resolver new PathMatchingResourcePatternResolver();sessionFactory.setMapperLocations(resolver.getResources(classpath*:/dataOneMapper/*.xml));return sessionFactory.getObject();}PrimaryBean(name data01SqlSessionTemplate)public SqlSessionTemplate sqlSessionTemplate(Qualifier(sqlSessionFactoryOne) SqlSessionFactory sqlSessionFactory) {// 配置Session模板return new SqlSessionTemplate(sqlSessionFactory);}}4、测试对比这里通过两个方法测试结果做对比在两个数据源之间进行数据操作时只需要在接口方法加上Transactional注解即可这样保证数据在两个数据源间也可以保证一致性。Servicepublic class TransferServiceImpl implements TransferService {Resourceprivate UserAccount01Mapper userAccount01Mapper ;Resourceprivate UserAccount02Mapper userAccount02Mapper ;Overridepublic void transfer01() {userAccount01Mapper.transfer(jack,100);System.out.println(i1/0);userAccount02Mapper.transfer(tom,100);}TransactionalOverridepublic void transfer02() {userAccount01Mapper.transfer(jack,200);System.out.println(i1/0);userAccount02Mapper.transfer(tom,200);}}三、JTA组件小结在上面JTA实现多数据源的事务管理使用方式还是相对简单通过两阶段的提交可以同时管理多个数据源的事务。但是暴露出的问题也非常明显就是比较严重的性能问题,由于同时操作多个数据源,如果其中一个数据源获取数据的时间过长,会导致整个请求都非常的长,事务时间太长,锁数据的时间就会太长自然就会导致低性能和低吞吐量。因此在实际开发过程中对性能要求比较高的系统很少使用JTA组件做事务管理。作为一个轻量级的分布式事务解决方案在小的系统中还是值得推荐尝试的。最后作为Java下的API原理和用法还是值得学习一下开阔眼界和思路。四、源代码地址到此这篇关于SpringBoot2整合JTA组件实现多数据源事务管理的文章就介绍到这了,更多相关SpringBoot2 JTA多数据源事务管理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家
http://wiki.neutronadmin.com/news/144073/

相关文章:

  • 做网络销售哪些网站比较好购物网站公司要花费多少钱
  • 做网站需要几步公司怎么建设官网
  • 网站建设从入门a家兽装定制网站
  • 人事处网站开发文献综述h5 响应式网站国外
  • 怎样做网站域名注册30秒网站
  • 网站建设的步骤过程视频下载京东商城网上购物
  • 电子商务网站建设资料百度域名排行
  • 网店网站模板广州番禺新楼盘最新房价
  • 做贸易选哪家网站京美建站官网
  • 谷歌云 阿里云 做网站广州建站快车
  • 东莞哪里能学建设网站给个网站最新的2021
  • 网站开发专业培训免费小程序制作平台
  • wordpress网站主机名编辑网站
  • 做网站用虚拟主机怎么样硬件开发平台是什么意思
  • 用python做的网站多吗化妆品公司网站源码
  • 兰州企业网站株洲优化公司
  • 前端网站开发百度网站怎么做信息
  • 建站快车用户登录小程序询价表
  • 织梦网站管理系统做机械设备网站
  • 网站开发的选题审批表仿爱奇艺网站源码
  • 做零食用哪个网站好网站备案跟域名有什么关系
  • 农庄网站模板不要验证码的广告网站
  • 珠海公司网站制作做网站用php转html
  • 北京网站排名北京住房与城乡建设网站
  • 最超值的锦州网站建设做销售有什么技巧和方法
  • 蒲县网站建设有什么网站可以做团购
  • 帝国网站后台管理系统五大跨境电商平台对比分析
  • 在柬埔寨做网站彩票推广怎么找推广平台
  • 如何建设自己的网站来获取流量哪里做网站百度收录块
  • 临海门户网站住房和城乡建设规划局成都互联网公司排名