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

ActiveMQ使用总结

    博客分类:
  • mq
 
阅读更多

1、ActiveMQ支持消息过滤设置规则和用法

selector支持下列几种方式:

(1) String literals: "color ='blue'"

(2) Byte strings: “myBytes <> "0X0AFC23"”

(3) Numeric values: "NoltemsInStock > 20"

(4) Boolean literals TRUE or FALSE: "AcctDetails=TRUE"

(5) Composite expressions: "Type='car' AND (color = 'blue' OR color ='green') AND weight> 2500"

 

使用方式:

(1)创建生产者在send函数之前添加过滤属性:

  message->setStringProperty("Color",pColor);

  producer->send(message);

(2)在创建消费者createConsumer时进行如下设置:

  std::string MessageFilter="color ='blue'"

  m_pConsumer = m_pSession->createConsumer(m_pDestination, m_MessageFilter);

  m_pConsumer->setMessageListener(this);

 

 

2、错误:Channel was inactive for too long (服务器消息较长时间没有消息发送时,客户端会报这个错误)

解决方法:在建立连接的Uri中加入: wireFormat.maxInactivityDuration=0

 

3、采用failover方式连接导致卡死

解决方法:不采用failover连接

 

4、ActiveMQ发送模式

(1)ActiveMQ异步发送,只需新增参数transport.useAsyncSend=true,具体如下:

      BrokerUri = "tcp://127.0.0.1:61616?transport.useAsyncSend=true"

(2)ActiveMQ同步发送,只需新增参数transport.useAsyncSend=false,具体如下:

      BrokerUri = "tcp://127.0.0.1:61616?transport.useAsyncSend=false"

      其实activeMQ在默认情况下就是同步发送,所以在同步发送时可以简写为:

      BrokerUri = "tcp://127.0.0.1:61616"

 

 

5、错误:The Session is closed(网络异常时客户端会报出这个错误)

解决办法:在建立连接的Uri中加入: maxReconnectDelay=10000

maxReconnectDelay 最大重连间隔

 

 

6、ActiveMQ负责均衡

对broker采取了负载均衡和基于共享文件系统的主备配置,这个时候,客户端生产者和消费者的URI中用

failover:(tcp://192.168.1.117:61616,tcp://192.168.1.118:61616,tcp://broker3:61616)

 

 

6、ActiveMQ的ACK设置

根据不同的需要可以将ACK设置为Session::CLIENT_ACKNOWLEDGE 或  Session::AUTO_ACKNOWLEDGE 默认为Session::AUTO_ACKNOWLEDGE 如:

if( clientAck )

{

session = connection->createSession( Session::CLIENT_ACKNOWLEDGE);

}

else

{

session = connection->createSession( Session::AUTO_ACKNOWLEDGE);

}

 

7、ActiveMQ的Topic设置

根据不同的需要可以将Topic设置为Topic或  Queue默认为Queue如:

if(useTopic)

{

   destination = session->createTopic(destURI);

}

else

{

   destination = session->createQueue(destURI);

}

 

8、ActiveMQ的DeliveryMode设置(生产者时设置)

根据不同的需要可以将DeliveryMode设置为DeliveryMode::NON_PERSISTENT或  DeliveryMode::PERSISTENT默认为DeliveryMode::NON_PERSISTENT如:

if(usePersistent)

{

   producer->setDeliveryMode( DeliveryMode::PERSISTENT);

}

else

{

   producer->setDeliveryMode( DeliveryMode::NON_PERSISTENT);

}

 

分享到:
评论

相关推荐

    ActiveMq总结.docx

    ActiveMQ因其强大的功能、灵活的配置以及广泛的兼容性,在企业级应用中被广泛使用。 #### 二、ActiveMQ应用场景 ##### 2.1 业务解耦 在实际业务场景中,系统之间的交互往往需要通过复杂的调用来完成。使用消息...

    ActiveMQ使用入门.pdf

    总结来说,ActiveMQ是Java世界中广泛使用的消息中间件,通过JMS接口提供可靠的消息传递功能。了解其工作原理和API,对于构建健壮的、分布式的Java应用程序至关重要。无论是简单的点对点通信还是复杂的发布/订阅模式...

    ActiveMQ中间件面试总结.xmind

    ActiveMQ中间件面试总结

    activemq问题总结

    **标题:“ActiveMQ问题总结”** 在分布式系统中,消息队列扮演着至关重要的角色,它作为组件间通信的一种高效手段,确保了系统的解耦、异步处理和高可用性。ActiveMQ是Apache软件基金会开发的一款开源消息中间件,...

    aix上websphere activemq部署总结.doc

    在IBM AIX操作系统上部署Websphere与ActiveMQ是一项复杂的工作,涉及到多个步骤和技术细节。以下是对这个过程的详尽解析: 首先,我们要了解环境背景: 1. Aix Version5:这是一个基于UNIX的操作系统,由IBM开发,...

    ActiveMQ学习总结.docx

    【ActiveMQ 学习总结】 在现代网络通讯中,HTTP 请求通常采用同步方式,基于请求-响应模式。这意味着客户端调用服务端接口后,必须等待服务端返回结果才能继续执行,这种方式称为同步调用。然而,同步调用的缺点...

    工作学习-消息中间件activeMQ学习总结

    本文总结了消息中间件ActiveMQ的学习要点,涵盖了为什么使用消息中间件、消息中间件的组成、JMS规范、ActiveMQ简介、消息中间件的应用场景等方面。 一、为什么使用消息中间件 使用消息中间件可以解决分布式系统...

    ActiveMQ安装和使用

    ### ActiveMQ 安装与使用详解 #### 一、ActiveMQ简介 ActiveMQ 是Apache出品的一款优秀的开源消息中间件,支持多种消息传输协议,并且具备良好的扩展性。它基于Java语言开发,支持JMS标准,同时也支持AMQP、STOMP...

    activeMQ使用软件,以及初始化页面

    总结来说,ActiveMQ是一个强大的消息中间件,它的易用性、灵活性和可靠性使其成为企业级应用的首选。通过理解并熟练掌握ActiveMQ的使用,开发者可以构建出高效、可扩展的应用系统,并通过其丰富的管理工具来监控和...

    activeMQ使用JDBC所需要的jar包

    总结来说,使用ActiveMQ的JDBC持久化需要合适的jar包支持,包括ActiveMQ自身的JDBC相关库、数据库驱动和连接池库。正确配置这些组件并设置好数据源,才能确保ActiveMQ能有效地利用JDBC进行消息持久化。

    activeMQ总结

    总结 ActiveMQ作为JMS的一个实现,提供了一种标准化的消息传递解决方案,适用于构建高并发、高可靠性的分布式系统。其点对点和发布/订阅模式满足了不同场景下的需求,而丰富的特性和广泛的语言支持使其成为许多企业...

    ActiveMQ高并发处理方案

    - **非阻塞IO**:通过配置ActiveMQ使用非阻塞IO,可以减少线程的使用,从而支持更多并发连接。 - **消息分发线程池**:通过设置 `org.apache.activemq.UseDedicatedTaskRunner` 为 `false`,可以让ActiveMQ使用一个...

    activeMq in action 使用activeMq开发JMS的简单讲述

    本篇文章将深入探讨如何使用ActiveMQ进行JMS开发,以及ActiveMQ的核心特性。 一、Java消息服务(JMS) JMS是一种为分布式环境设计的消息传递规范,它定义了生产、存储和消费消息的标准接口。通过JMS,应用程序可以...

    ActiveMQ的安装与使用

    3. **网络传输优化**:ActiveMQ使用高效的网络协议,降低延迟,提高消息传递效率。 4. **多种协议支持**:除了JMS,还支持STOMP、AMQP、MQTT等协议,适应不同应用场景。 5. **消息筛选和分组**:通过消息选择器,...

    apache-activemq Linux版本

    总结来说,Apache ActiveMQ是Linux环境下的强大消息中间件,提供了丰富的特性和高度的灵活性,对于构建分布式系统和实现微服务架构有着重要的作用。通过理解和掌握ActiveMQ的使用,可以提升系统的可扩展性和稳定性,...

    ActiveMQ客户端

    总结来说,Apache ActiveMQ客户端提供了与ActiveMQ服务器通信的工具和接口,允许开发者构建可靠、高效的分布式消息系统。通过理解和使用这个客户端,你可以构建出能够处理大量并发消息、支持多种消息模式的应用程序...

    ActiveMQ消息服务器 v6.0.1.zip

    总结,ActiveMQ v6.0.1是一个强大且灵活的消息中间件,适用于各种分布式环境中的消息传递需求。通过其丰富的特性和广泛的支持,开发者可以构建出高效、可靠的系统架构。对于毕业设计论文和计算机案例研究,ActiveMQ...

    activemq入门总结

    标题 "activemq入门总结" 暗示了本文将主要围绕Apache ActiveMQ,一个流行的开源消息代理和队列中间件进行讲解。ActiveMQ是基于Java Message Service (JMS) API 的,它允许应用程序在分布式环境中发送和接收消息,...

    activemq activeMq笔记

    需要注意的是,使用消息连接池需要引入额外的依赖 `activemq-pool.jar`。 #### 存储数据库配置 ActiveMQ 支持多种持久化方式,包括 KahaDB 和 LevelDB 等。如果需要将消息存储到关系型数据库中,则需要进行相应的...

    ActiveMQ_使用failover模式进行连接切换时,线程断开

    在使用ActiveMQ消息中间件时,我们常常需要考虑如何在多个实例之间实现高可用性(HA)。其中一种常用的方式是采用**Failover(故障转移)**模式来确保即使一个节点出现问题,另一个节点也能接管服务,从而维持系统的...

Global site tag (gtag.js) - Google Analytics