ActiveMq池
有两种连接方式
1.Spring 引用
<!-- 配置JMS连接工厂 -->
<bean id="connectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
destroy-method="stop">
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>failover:(tcp://192.168.2.211:62617,tcp://192.168.2.211:62618,tcp://192.168.2.211:62619)?maxReconnectAttempts=10</value>
</property>
<property name="useAsyncSend">
<value>true</value>
</property>
</bean>
</property>
</bean>
2.配置文件
MqUserName=admin
MqPassword=admin
MqUrl=failover:(tcp://192.168.2.211:62617,tcp://192.168.2.211:62618,tcp://192.168.2.211:62619)
3.代码
import java.util.Properties; import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.pool.PooledConnectionFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class ActiveMqUtils { private static PooledConnectionFactory factory; static{
//方式一
// Properties pps = new Properties();
// String url="",name="",pwd="";
// try {
// pps.load(ActiveMqUtils.class.getClassLoader().getResourceAsStream("MqProperty.properties"));
// url = pps.getProperty("MqUrl");
// name = pps.getProperty("MqUserName");
// pwd = pps.getProperty("MqPassword");
// ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory();
// activeMQConnectionFactory.setUserName(name);
// activeMQConnectionFactory.setPassword(pwd);
// activeMQConnectionFactory.setBrokerURL(url);
//
// factory = new PooledConnectionFactory( activeMQConnectionFactory); // session数
// int maximumActive = 5;
// factory.setMaximumActiveSessionPerConnection(maximumActive);
// factory.setIdleTimeout(120);
// factory.setMaxConnections(5);
// factory.setBlockIfSessionPoolIsFull(true);
// } catch (Exception e) {
// e.printStackTrace();
// } //方式二
String[] springConfigFiles = {"mybatis-spring-config.xml","module-service-config.xml" };
ApplicationContext ctx = new ClassPathXmlApplicationContext( springConfigFiles );
factory = (PooledConnectionFactory) ctx.getBean( "connectionFactory" );
} public static void doSend(String key,String message){
Connection connection =null;
Session session;
Destination destination;
MessageProducer producer;
try {
connection =factory.createConnection();
connection.start();
session = connection.createSession(Boolean.TRUE,Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue(key);
producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
TextMessage msgObj = session .createTextMessage(message);
producer.send(msgObj);
session.commit();
}catch (Exception e) {
e.printStackTrace();
}
finally {
close(connection);
}
} public static String doReceive(String key){
String rs="";
Connection connection =null;
Session session;
Destination destination;
MessageConsumer consumer;
try {
connection =factory.createConnection();
connection.start();
session = connection.createSession(Boolean.FALSE,
Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue("sales");
consumer = session.createConsumer(destination);
TextMessage message = (TextMessage) consumer.receive(10);
if (null != message) {
rs = message.getText();
}
}catch (Exception e) {
e.printStackTrace();
}
finally {
close(connection);
}
return rs;
} /**
* 关闭连接
*/
public static void close(Connection connection) {
try {
if (connection != null) {
connection.close();
}
} catch (JMSException e) { e.printStackTrace();
}
} public static void main(String[] agrs){ for(int i= 0;i<20;i++){
long begin = System.currentTimeMillis();
ActiveMqUtils.doSend("1111", "sss");
long end = System.currentTimeMillis();
System.out.println("耗时:"+(end-begin));
} }
}
ActiveMq池的更多相关文章
- ActiveMQ学习心得:连接池的简单实现和模板模式的应用
一.安装activemq 下载地址:https://archive.apache.org/dist/activemq/5.13.0/apache-activemq-5.13.0-bin.zip 下载完 ...
- ActiveMQ 的线程池
ActiveMQ 的线程池实质上也是 ThreadPoolExecutor,不过它的任务模型有自己的特点,我们先看一个例子: public static void main(String[] args ...
- JMS之——ActiveMQ时抛出的错误Could not connect to broker URL-使用线程池解决高并发连接
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/69046395 解决使用activemq时抛出的异常:javax.j ms.JMSE ...
- ActiveMQ使用线程池实现消息的生产与消费
jar文件:spring3.1jar,以及 项目src路径下文件:config.properties 读取config.properties文件JAVA类: package com.lejob.lej ...
- JMS学习之路(一):整合activeMQ到SpringMVC
JMS的全称是Java Message Service,即Java消息服务.它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息.把它应用到实际的业务需求中的话我们可以 ...
- Spring下ActiveMQ实战
MessageQueue是分布式的系统里经常要用到的组件,一般来说,当需要把消息跨网段.跨集群的分发出去,就可以用这个.一些典型的示例就是: 1.集群A中的消息需要发送给多个机器共享: 2.集群A中消 ...
- ActiveMQ与spring集成实现Queue模式
ActiveMQ可以和spring很好的集成,下面我们来看看,如何做个集成的demo. (1)pom.xml引入相关jar <!-- spring相关 begin --> <depe ...
- ActiveMQ的介绍及使用实例.
今天就来说下 这个项目中使用ActiveMQ的情况, MQ: message queue, 顾名思义就是消息队列的意思. 一: 使用场景: 消息队列在大型电子商务类网站,如京东.淘宝.去哪儿等网站有 ...
- ActiveMQ 即时通讯服务 浅析
一. 概述与介绍 ActiveMQ 是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provi ...
随机推荐
- 编写unit test以及自动化测试WebDriver
http://msdn.microsoft.com/en-us/library/hh694602.aspx#BKMK_Quick_starts http://www.seleniumhq.org/ ...
- 闲扯淡json格式与对象
在这里推荐使用http://json.tongxiehui.net/ 这个在线解析jso格式 JSON 语法是 JavaScript 对象表示语法的子集. 数据在名称/值对中 数据由逗号分隔 花括号保 ...
- HttpClient_使用httpclient必须知道的参数设置及代码写法、存在的风险
结论: 如果使用httpclient 3.1并发量比较大的项目,最好升级到httpclient4.2.3上,保证并发量大时能抗住.httpclient 4.3.3,目前还有一些bug:还是用4.2.x ...
- js获取屏幕大小
1.js获取屏幕大小 <html> <script> function a(){ document.write( "屏幕分辨率为:"+screen.widt ...
- Oracle 客户端免安装数据库连接
PLSQL Developer 连接数据库需要安装Oracle客户端,在这里介绍一种Oracle客户端解压式安装,而不是exe安装. 安装步骤: 1:确定客户端安装所在主机的系统位数 2:选择正确的客 ...
- js 遮罩层 loading 效果
//调用方法 //关闭事件<button onclick='LayerHide()'>关闭</button>,在loadDiv(text)中,剔除出来 //调用LayerSho ...
- script标签不带属性与带async、defer的区别
<script> 当页面解析到script标签时,会停止解析并下载对应的脚本,并马上执行,执行完毕后再继续解析页面 <script async> async 在下载脚本的同时不 ...
- CSS样式优化
一.css代码优化作用与意义 1.减少占用网页字节.在同等条件下缩短浏览器下载css代码时间,相当于加快网页打开速度2.便于维护.简化和标准化css代码让css代码减少,便于日后维护3.让自己写的cs ...
- [LintCode] Decode Ways 解码方法
A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...
- PCTUSED和PCTFREE对数据操作的影响
1概念理解 首先PCTUSED和PCTFREE都是针对数据块的存储属性,单位都是%.其中PCTFREE决定了数据块什么时候从free list中移除,系统就不可以再往该数据块中插入数据,对于数据块中已 ...