`
can_do
  • 浏览: 266029 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于AMQ中的事务

阅读更多
(1)、JMS事务和XA事务真正唯一的不同之处在于,XA事务中,在Prepare阶段,broker必须写所有接收到的命令(如:发消息或者应答消息)到持久化存储中,目的是broker以后能够正确的进行恢复操作。

(2)、【TransactionStore】事务存储进行事务处理,它会缓存所有的消息和应答,直到发生commit或者rollback操作;除了存储消息外,事务存储还会抑制消息的分发,直到session的commit命令发生。

(3)、采用事务后,发送消息或者应答消息的命令,实际上被缓存起来,直到commit和rollback命令发生,才会真正进行对应的操作,如:发送或者应答。

(4)、commit和callback命令需要在session调用,但是事务(提交或者回滚)是在broker端进行处理的。

(5)、【TransactionStore】实现了所有的持久化适配。

(6)、建议:JMS事务用在TextMessage上,以批量大小决定是否commit,比如每500个消息commit一次,前提每次commit前不能超过缓存的水位线。

(7)、文件切分成BypteMessage进行发送时,不能以一个文件为一个事务,因为文件大小是可变的,而缓存大小是固定的,超过水位线就会触发流控制发生,导致逻辑上的“deadlock”。

(8)、考虑下:为什么事务和批量发消息在一起?为了限制每次提交消息的大小(消息缓存时对jvm消耗),如果消息比较小,每次批量的数目可以多点,如果消息比较大,每次批量的数目应该小点。
分享到:
评论

相关推荐

    java通过AMQ通讯

    Java通过AMQ通讯是一种在分布式系统中实现消息传递的技术,主要使用了Apache ActiveMQ(简称AMQ)这一开源的消息中间件。AMQ是基于Java Message Service(JMS)规范的,它提供了一种高效、可靠的平台,使得应用程序...

    AMQ样例,参考

    标题中的“AMQ样例,参考”提示我们,这是一个关于ActiveMQ应用的示例,用于指导用户理解如何在实际环境中部署和使用ActiveMQ。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它作为消息中间件,允许应用程序...

    spring整合amq

    标题中的“spring整合amq”指的是将Spring框架与ActiveMQ(AMQ)集成,...在实际应用中,你可能需要考虑更多细节,如事务管理、异常处理、消息确认策略等。如果你能提供具体的压缩包文件内容,我可以给出更详细的指导。

    amq-spring-jms.pdf

    在Spring框架中,使用Spring JMS可以很方便地将ActiveMQ集成到Spring应用中。这包括创建消息代理、定义连接工厂、消息目的地以及使用模板来发送和接收消息等操作。 ActiveMQ的使用场景非常广泛,包括企业级消息传递...

    amq-example:A-MQ 示例

    通过这个“amq-example”,开发者可以更好地理解和掌握如何在实际生产环境中使用AMQ和OpenShift,提升他们的微服务架构设计能力,以及在分布式系统中处理消息传递的技巧。这对于那些在Java平台上构建高可用、高性能...

    amq-protocol.cr:适用于Crystal的AMQP 0.9.1序列化库

    8. **事务支持**:AMQP 0.9.1支持事务,使得一组消息可以原子性地提交或回滚。 9. **消费者模式**:提供不同的消费模式,如非持久化、独占和自动删除队列。 在使用AMQ-Protocol.cr时,开发人员可以期待以下好处: ...

    JMS详细实例学习教程

    JMS(Java Message Service)是一种基于Java平台的消息服务规范,用于在分布式系统中异步通信。JMS提供了一种灵活、可靠、可扩展的消息传递机制,使得应用程序之间可以相互通信和交换数据。 1. MQ 和 J2EE API 的...

    学习使用WebSphere MQ for Java编程

    此外,还可以利用事务支持来确保消息传递的一致性。 8. 示例和测试 安装中提供的示例程序(如 IVP)可以帮助开发者了解如何使用 WebSphere MQ for Java 进行基本操作,这些示例通常包括创建队列、发送和接收消息等...

    JMS-详细教程.pdf

    - **示例应用场景:** 在EJB容器内或直接调用JTA(Java Transaction API)接口来实现JDBC和JMS操作在同一事务中进行。 **2. JavaBeans:** - **定义:** JavaBeans 是一种可复用的Java组件模型,主要用于构建基于Java...

    activem监听工具用于监听消息队列

    标签“amq监听工具”明确了我们讨论的是ActiveMQ(AMQ)的相关工具,这通常指的是`ActiveMQ Console`,这是一个基于Web的管理界面,用户可以使用浏览器访问来监控和管理ActiveMQ服务器。 在压缩包子文件"MQClient...

    误解:可靠的消息可以解决分布式事务

    神话可靠的消息可解决分布式事务模组myth-admin:事务日志管理背景神话注释:框架通用注释神话共通:框架通用类神话核心:框架核心包(注释处理,日志存储...) 神话仪表板:管理后台前端myth-dubbo:支持dubbo框架...

    ActiveMQ的持久化(数据库)[归类].pdf

    5. **事务管理**:在 ActiveMQ 中,可以使用事务确保消息的原子性。这意味着消息的发送和持久化可以作为一个事务处理,保证了在系统故障时消息不会部分发送或丢失。 6. **恢复策略**:在系统故障后,ActiveMQ 使用...

    个人整理的好用工具类

    这样的插件通常会包含自动分片策略、事务管理、查询路由等功能。开发者需要理解数据库分片的基本原理,以及如何在Mybatis配置中集成并使用此类插件。 其次,"拼音工具类"可能是一个用于汉字与拼音转换的库。在处理...

    私塾在线 高级java软件架构师实战培训视频教程 阶段一 代码及目录 91-97 讲 共148

    4. **AMQ结合业务功能的开发**:这部分内容分布在第95、96和97节,重点讲解如何将ActiveMQ融入到实际业务逻辑中,可能涉及的话题有如何设计消息模型、如何处理并发和数据一致性、以及如何通过消息中间件实现服务间的...

    MQTT C++客户端

    反而通过发送简化的AMQ实体,用户被赋予了构建例如这些实体的能力。这些实体也是规范的一部分,形成了在线路层协议顶端的一个层级:AMQP模型。这个模型统一了消息模式,诸如之前提到的发布/订阅,队列,事务以及流...

    ActiveMQ中文手册

    1.2.7 本地事务 3 1.3 JMS 规范的变迁 4 2.ActiveMQ 4 2.1 Broker 4 2.1.1 运行Broker 4 2.1.2 嵌入式Broker 4 2.1.3 监控Broker 5 2.2 Transport 9 2.2.1 VM Transport 9 2.2.2 TCP Transport 10 ...

    0927分布式消息通信-ActiveMQ1

    13. **消息持久化策略**:ActiveMQ提供了多种持久化机制,如KahaDB、AMQ、JDBC、内存和levelDB。 14. **高性能策略**:网络连接器(networkConnector)用于优化Broker间的通信,静态和动态网络连接提供了灵活的配置...

    C# 使用ActivityMQ 订阅 发布模式P2P模式

    在IT行业中,消息队列(Message Queue,简称MQ)是一种重要的中间件技术,它用于解耦应用程序组件,提高系统的可扩展性和可靠性。...通过AMQ压缩包中的示例代码,你可以更深入地学习和实践这两种模式的实现细节。

    MSMQ、RabbitMQ、ActiveMQ消息队列调试工具

    可用于调试MSMQ、RabbitMQ、ActiveMQ三种消息队列 其中MSMQ支持Active、Binary、XML格式(要勾选事务) RabbitMQ支持逐条接发、批量接发、RPC回调模式、新建队列、建立持久化队列、连接测试等功能。

Global site tag (gtag.js) - Google Analytics