使用Couchbase 文件存储数据库、Spring Data Couchbase spring-boot-starter-artemis 为JMS messaging使用Apache Artemis...通过 Tomcat JDBC 连接池使用JDBC spring-boot-starter-mobile 通过Spring Mobile构建Web应用 spring-boot-starter-validation...使用Spring AMQP、Rabbit MQ spring-boot-starter-data-cassandra 使用Cassandra分布式数据库、Spring Data Cassandra spring-boot-starter-social-facebook...使用 Spring Social Facebook spring-boot-starter-jta-atomikos 为 JTA 使用 Atomikos spring-boot-starter-security...用连接简化的 Spring Cloud 连接器进行云服务就像Cloud Foundry、Heroku那样 spring-boot-starter-jta-bitronix 为JTA transactions
spring.jta.atomikos.datasource.concurrent-connection-validation true 是否使用并发连接验证。...spring.jta.atomikos.properties.service 应该启动的事务管理器实施。...如果未指定持续时间后缀,则将使用秒。 spring.transaction.rollback-on-commit-failure 是否在提交失败时回滚。...默认情况下,使用自动递增计数器。 spring.artemis.embedded.topics 以逗号分隔的主题列表,用于在启动时创建。...spring.kafka.listener.missing-topics-fatal true 如果代理中没有至少一个配置的主题,则容器是否应无法启动。
= detect # PID文件(应用程序文件写入器) # 如果使用ApplicationPidFileWriter但是无法写入PID文件,则失败。...spring.jta.atomikos.datasource.test-query = #用于在返回连接之前验证连接的SQL查询或语句。...spring.jta.bitronix.connectionfactory.user = #用于连接到JMS提供者的用户。...spring.hornetq.port = 5445 #HornetQ代理端口。 # JMS (Jms 配置) # 连接工厂JNDI名称。设置时,优先于其他连接工厂自动配置。...spring.jms.listener.acknowledge-mode= # 启动时自动启动容器。
37.发送电子邮件 Spring框架提供了使用 JavaMailSender 界面发送电子邮件的简单抽象,Spring Boot为其提供了自动配置以及启动器模块。...您可以使用 spring-boot-starter-jta-atomikos Starter引入相应的Atomikos库。...Spring Boot自动配置Atomikos并确保将适当的 depends-on 设置应用于Spring beans以正确启动和关闭顺 序。...您可以使用 spring-boot-starter-jta-bitronix 启动程序将适当的Bitronix依赖项添加到项 目中。...与Atomikos一样,Spring Boot自动配置Bitronix并对beans进行后处理,以确保启动和关闭顺序正确。
集成 Apache ActiveMQ,基于 JMS 的消息队列 spring-boot-starter-artemis 集成 Apache Artemis,基于 JMS 的消息队列 spring-boot-starter-amqp...集成 Spring AMQP 和 Rabbit MQ 的消息队列 spring-boot-starter-aop 集成 Spring AOP 和 AspectJ 面向切面编程 spring-boot-starter-batch...连接池 spring-boot-starter-jersey 集成 JAX-RS 和 Jersey 构建 RESTful web 应用,是 spring-boot-starter-web 的一个替代...的替代 Starter spring-boot-starter-json 用于读写 JSON spring-boot-starter-jta-atomikos 集成 Atomikos 实现 JTA 事务...集成 Spring Boot Actuator,提供生产功能以帮助监控和管理应用程序 这个意味着和任何技术、任何业务没关系,只要用了 Spring Boot 框架,上了生产环境就能使用,也不是只有生产才能使用
本节提供了常见的Spring Boot属性和对使用它们的基础类的引用的列表。...spring.jta.narayana.recovery-jms-pass = #恢复管理器使用的JMS密码。...spring.jta.narayana.recovery-jms-user = #恢复管理器使用的JMS用户名。...#JMS (JmsProperties) spring.jms.jndi-name = #连接工厂JNDI名称。设置时,优先于其他连接工厂自动配置。...spring.jms.listener.auto-startup = true #启动时自动启动容器。 spring.jms.listener.concurrency = #最小并发消费者数。
SpringBoot应用启动器基本的一共有44种,具体如下: 1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。...5)spring-boot-starter-artemis 通过Apache Artemis支持JMS的API(Java Message Service API)。...8)spring-boot-starter-cloud-connectors 支持Spring Cloud Connectors,简化了在像Cloud Foundry或Heroku这样的云平台上连接服务...18)spring-boot-starter-hornetq 通过HornetQ支持JMS。...22)spring-boot-starter-jta-atomikos 通过Atomikos支持JTA分布式事务处理。
= detect# PID文件(应用程序文件写入器)# 如果使用ApplicationPidFileWriter但是无法写入PID文件,则失败。...spring.jta.atomikos.datasource.test-query = #用于在返回连接之前验证连接的SQL查询或语句。...spring.jta.bitronix.connectionfactory.user = #用于连接到JMS提供者的用户。...spring.hornetq.port = 5445 #HornetQ代理端口。# JMS (Jms 配置)# 连接工厂JNDI名称。 设置时,优先于其他连接工厂自动配置。...spring.jms.jndi-name= # 容器的确认模式。 默认情况下,监听器被自动确认处理。spring.jms.listener.acknowledge-mode= # 启动时自动启动容器。
>org.springframework.boot spring-boot-starter-activemq...配置连接 spring.activemq.in-memory=true //使用内存 spring.activemq.pool.enabled=false //不需要开启连接池...#JMS config spring.activemq.broker-url=tcp:// :61616 //mq单独服务地址 spring.activemq.user=...//用户名 spring.activemq.password= //密码 注意:如果没有设置mq的单独服务地址默认会将在项目启动时启动一个单独的MQ服务。...--启动连接密码-->
和spring boot整合、rabbitMQ/active MQ和spring boot整合。...2:启动 ? 在bin文件夹下有64和32位找到自己系统响应的文件夹打开。凯哥使用的是64位的 ? 双击activemq.bat批处理就启动了。 启动如下图: ?...二:spring boot中应用active mq 2.1:在pom.xml文件中添加mq相关的依赖。 ? 2.2:MQ配置类 ? 注:必须使用@Configuration 或者是spring 其他注解。这样该类才可以被spring管理。...至此spring boot整合active MQ方案一完成。
笔者认同"talk is cheap,show me the code",因此在文章最后,给出一个完整的Atomikos与spring、mybatis整合的完整案例。...但是如果我们的应用不是一个web应用,而是一个本地应用,不需要被部署到application server中,无法使用application server提供的事务管理器功能。...又或者我们使用的web容器并没有事务管理器的功能,如tomcat。对于这些情况,我们可以直接使用一些第三方的事务管理器类库,如JOTM和Atomikos。...之后,不管这个RM是DB,还是MQ,TM并不关心,因为其操作的是XAResource接口。而其他规范(如JDBC、JMS)的实现者,同时也对此接口进行实现。...例如,下面我们将要提到Atomikos,就支持与spring事务整合。
集成 Apache ActiveMQ,基于 JMS 的消息队列 spring-boot-starter-artemis 集成 Apache Artemis,基于 JMS 的消息队列 spring-boot-starter-amqp...集成 Spring AMQP 和 Rabbit MQ 的消息队列 spring-boot-starter-aop 集成 Spring AOP 和 AspectJ 面向切面编程 spring-boot-starter-batch...连接池 spring-boot-starter-jersey 集成 JAX-RS 和 Jersey 构建 RESTful web 应用,是 spring-boot-starter-web 的一个替代...的替代 Starter spring-boot-starter-json 用于读写 JSON spring-boot-starter-jta-atomikos 集成 Atomikos 实现 JTA...集成 Spring Boot Actuator,提供生产功能以帮助监控和管理应用程序 这个意味着和任何技术、任何业务没关系,只要用了 Spring Boot 框架,上了生产环境就能使用,也不是只有生产才能使用
Boot整合ActiveMQ Queue boot 使用的是 2.1.5 pom依赖 org.springframework.boot...org.springframework.boot spring-boot-starter-web..."/> JDBC消息存储 配置 MQ+MySQL 添加mysql数据库的驱动包到lib文件夹下(如果你使用的是其他连接池 需要将连接池的相关jar包拷贝进来...,失败则继续尝试。...很多高性能的应用,允许在失败的情况下有少量的数据丢失。如果你的应用满足这个特点,你可以使用异步发送来提高生产率,即使发送的是持久化消息。 异步发送 它可以最大化producer端的发送效率。
= detect # PID文件(应用程序文件写入器) # 如果使用ApplicationPidFileWriter但是无法写入PID文件,则失败。...spring.jta.atomikos.datasource.test-query = #用于在返回连接之前验证连接的SQL查询或语句。...spring.jta.bitronix.connectionfactory.user = #用于连接到JMS提供者的用户。...spring.hornetq.port = 5445 #HornetQ代理端口。 # JMS (Jms 配置) # 连接工厂JNDI名称。 设置时,优先于其他连接工厂自动配置。...spring.jms.listener.acknowledge-mode= # 启动时自动启动容器。
实现是com.atomikos.icatch.jta.TransactionImp 2、针对实现了JDBC规范中规定的实现了XADataSource接口的数据库连接池,以及实现了JMS规范的MQ客户端提供一层封装...JTA事务的bean,注意在使用jta事务的时候,依然可以使用spring的声明式事务管理 package com.tianshouzhi.atomikos; import com.tianshouzhi.atomikos.mappers.db_user.UserMapper...--指定com.tianshouzhi.atomikos.mappers.db_user包下的UserMapper接口使用ssf_user获取底层数据库连接--> atomikos.mappers.ds_account包下的AccountMapper接口使用ssf_account获取底层数据库连接--> <property...} #提交失败时,再抛出一个异常之前,最多可以重试几次,默认值为5 com.atomikos.icatch.oltp_max_retries=5 #提交失败时,每次重试的时间间隔,默认10000ms com.atomikos.icatch.oltp_retry_interval
,这中间的过程中用户查看自己的余额已经扣费成功,但票的信息却没有,此时可以使用事务失败回滚的方式依次回退,这种叫弱一致性;又或者可以把处理失败的内容发送至一个错误队列中,由人工处理等方式解决,这种叫最终一致性...Spring JTA分布式事务实现 可以使用如JBoss之类的应用服务器提供的JTA事务管理器 可以使用Atomikos、Bitronix等库提供的JTA事务管理器 不使用Spring JTA的分布式事务实现...最大努力一次提交 依次提交事务 可能出错 通过AOP或Listener实现事务直接的同步 JMS最大努力一次提交+重试 适用于其中一个数据源是MQ,并且事务由读MQ消息开始 利用MQ消息的重试机制 重试的时候需要考虑重复消息...datasource connection spring DataSourceUtils源码 spring DataSourceUtils 使用已有的connection,只是控制数据库连接的释放,不是事务...使用debug方式模拟运行,第一个order事务提交以后,第二user个事务执行的时候把mysql服务给停掉,出现如下异常 [1m5dts69wa.png] 重启启动msyql服务,程序继续运行,此时来看数据库
ConnectionFactory :连接工厂,JMS 用它创建连接 Connection :JMS 客户端到JMS Provider 的连接 Session: 一个发送或接收消息的线程 Destination...>spring-boot-starter-activemq 配置连接 application.properties # 连接地址 默认连接端口为 61616 spring.activemq.broker-url...=tcp://localhost:61616 spring.activemq.user=admin spring.activemq.password=admin # 开启连接池 最大连接数100 spring.activemq.pool.enabled...=true spring.activemq.pool.max-connections=100 启动文件配置 xxxApplication.java package com.example.demo;
在一个Spring Boot项目中,连接多个数据源还是比较常见的。...如果库存扣减失败,那么我们希望订单创建也能够回滚。 如果这两条数据在一个数据库中,那么通过之前介绍的事务管理就能轻松解决了。但是,当这两个操作位于不同的数据库中,那么就无法实现了。...在Spring Boot 2.x中,整合了这两个JTA的实现: Atomikos:可以通过引入spring-boot-starter-jta-atomikos依赖来使用 Bitronix:可以通过引入spring-boot-starter-jta-bitronix...依赖来使用 由于Bitronix自Spring Boot 2.3.0开始不推荐使用,所以在下面的动手环节中,我们将使用Atomikos作为例子来介绍JTA的使用。...动手试试 下面我们就来实操一下,如何在Spring Boot中使用JTA来实现多数据源下的事务管理。
领取专属 10元无门槛券
手把手带您无忧上云