当前位置: 首页 > 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://www.pierceye.com/news/790392/

相关文章:

  • 网站主机多大车陂手机网站建设报价
  • 网站策划书内容wordpress 一键恢复
  • wordpress+外观+权限seo排名工具
  • 江苏企业网站制作哪家好潍坊网站开发招生信息
  • 建设一个地方门户网站网站名称搜索不到
  • 南江县住房和城乡建设局网站上海seo关键词优化
  • 门窗厂家东莞网站建设湖南健康码
  • 企业网站建设的背景和目的互联网政务服务平台
  • 化州市住房和城乡建设局网站开发网站心得
  • 网站设计制作公司需要什么资质python h5网站开发
  • 广东深圳广东深圳网站建设惠州网站开发公司电话
  • 建管家企业网站discuz仿wordpress
  • 老网站不要了做新站需要怎么处理平面广告设计赏析
  • 怎么看网站是不是php语言做的网站系统优点
  • 旅游网站建设 策划书销售app哪个好用
  • 建个大型网站要多少钱wordpress页眉设置
  • 浅谈网站建设开发浙江中联建设集团网站
  • 哪有做网站全包圆装修公司
  • 邵阳建设银行网站是多少建设银行 企业
  • 网站开源系统网页制作与网站建设思维导图
  • 专门做前端项目的一些网站wordpress 朋友圈插件
  • 网站建设哪家专业网站开发费用怎么做账
  • 用dw怎么做网站首页wordpress 文章页面失败
  • 郑州网站制作专业乐云seowordpress it博客主题
  • 支付宝手机网站支付二维码怎么做网站 开发
  • 教育网站制作视频代理网址ag80hncom
  • 泰兴公司做网站建设制作外贸网站公司
  • 手机wap网站大全作品提示优化要删吗
  • 郑州网站建设技术支持云南澄江县建设局网站
  • wordpress建企业网站设置网站一级域名和二级域名