风人园
弱水三千,只取一瓢,便能解渴;佛法无边,奉行一法,便能得益。
随笔 - 99, 文章 - 181, 评论 - 56, 引用 - 0
数据加载中……
ActiveMq 的安装及整合spring 使用
1、下载 安装
在windows xp 上,直接解压就可以使用
在2003 上,还需要配置一下,缺一个文件,否则无法启动
2、mq 配置
默认使用 文件持久化的方式,无需进行配置,只需要通过代码,标记消息为持久化即可
//设置 消息为 ‘持久化’ 消息,队列服务器重启后,会重新载入
message.setJMSDeliveryMode(DeliveryMode.PERSISTENT);
message.setString("context", context);
2、整合spring
mq的spring 配置文件, 此处三个bean
mq 服务器配置,sender ,监听器
完成系统的消息发送和接收
<
bean id
=
"
connectionFactory
"
class
=
"
org.apache.activemq.ActiveMQConnectionFactory
"
>
<
property name
=
"
brokerURL
"
value
=
"
tcp://10.10.1.31:61616
"
/>
</
bean
>
<
bean id
=
"
jmsTemplate
"
class
=
"
org.springframework.jms.core.JmsTemplate
"
>
<
property name
=
"
connectionFactory
"
ref
=
"
connectionFactory
"
/>
</
bean
>
<!--
============================
消息发送
==============================
-->
<!--
ecp.sd.log
-->
<
bean id
=
"
logDestination
"
class
=
"
org.apache.activemq.command.ActiveMQQueue
"
>
<
constructor
-
arg value
=
"
km.wlog
"
/>
</
bean
>
<
bean id
=
"
logMessageSender
"
class
=
"
com.chint.mq.sender.LogMessageSender
"
>
<
property name
=
"
destination
"
ref
=
"
logDestination
"
/>
<
property name
=
"
jmsTemplate
"
ref
=
"
jmsTemplate
"
/>
</
bean
>
<!--=============================
队列监听器
==========================
-->
<!--
日志 队列监听器
<
bean id
=
"
logContextListener
"
class
=
"
com.chint.mq.listener.LogContextListener
"
>
</
bean
>
<
bean
class
=
"
org.springframework.jms.listener.SimpleMessageListenerContainer
"
>
<
property name
=
"
connectionFactory
"
ref
=
"
connectionFactory
"
/>
<
property name
=
"
destinationName
"
value
=
"
km.wlog
"
/>
<
property name
=
"
messageListener
"
ref
=
"
logContextListener
"
/>
</
bean
>
-->
消息发送者
@Service
public
class
LogMessageSender
extends
BaseMessageSender
{
public
void
sendMessage(
final
String context)
{
jmsTemplate.send(destination,
new
MessageCreator()
{
@Override
public
Message createMessage(Session session)
throws
JMSException
{
MapMessage message
=
session.createMapMessage();
//
设置 消息为 ‘持久化’ 消息,队列服务器重启后,会重新载入
message.setJMSDeliveryMode(DeliveryMode.PERSISTENT);
message.setString(
"
context
"
, context);
logger.info(
"
KM INFO [LogMessageSender] send message context ({})
"
, context);
return
message;
}
}
);
}
}
消息接受者
/** */
/**
*
@author
wxf
*
*/
public
class
LogContextListener
extends
BaseContextListener
implements
MessageListener
{
@Autowired
private
WorkLogManager workLogManager;
@Override
public
void
onMessage(Message arg)
{
if
(arg
instanceof
MapMessage)
{
MapMessage message
=
(MapMessage)arg;
try
{
String context
=
message.getString(
"
context
"
);
logger.info(
"
KM INFO [LogContextListener] get message context ({})
"
, context);
}
catch
(JMSException e)
{
throw
JmsUtils.convertJmsAccessException(e);
}
}
else
{
System.out.println(arg.toString());
}
}
}
以上就完成了 MQ的使用,比较简单。
通过spring使用mq从代码来讲还是很简单的,但是mq的性能可能需要额外的调整一下才能达到最佳的状态,特别是大数量的情况下。
仅作记录
posted on 2011-11-09 09:25
风人园
阅读(624)
评论(0)
编辑
收藏
所属分类:
MQ
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
Powered by:
BlogJava
Copyright © 风人园
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2011年11月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(11)
给我留言
查看公开留言
查看私人留言
随笔分类
.Net(2)
(rss)
Android(9)
(rss)
Common(1)
(rss)
Eclipse/myEclipse(2)
(rss)
ECP(11)
(rss)
Ext(9)
(rss)
Hibernate(6)
(rss)
iBatis(3)
(rss)
J2EE
(rss)
Java(9)
(rss)
jBPM(10)
(rss)
jQuery(1)
(rss)
JSF(5)
(rss)
MQ(1)
(rss)
OperaMasks(4)
(rss)
PHP(2)
(rss)
Profiler(1)
(rss)
ROR(4)
(rss)
Ruby(2)
(rss)
Spring(6)
(rss)
SpringSecurity(3)
(rss)
Struts2(6)
(rss)
随笔档案
2018年3月 (3)
2017年5月 (1)
2016年12月 (5)
2016年11月 (4)
2014年3月 (1)
2013年6月 (1)
2012年4月 (2)
2012年2月 (1)
2011年11月 (1)
2011年9月 (2)
2011年8月 (1)
2010年12月 (2)
2009年12月 (1)
2009年11月 (2)
2009年9月 (3)
2009年8月 (19)
2009年6月 (4)
2009年4月 (1)
2008年10月 (1)
2008年7月 (1)
2008年3月 (5)
2008年2月 (1)
2008年1月 (6)
2007年12月 (3)
2007年7月 (2)
2007年6月 (1)
2007年5月 (11)
2007年4月 (5)
2007年1月 (6)
2006年12月 (1)
2006年7月 (1)
文章分类
AJAX(3)
(rss)
AP Server(1)
(rss)
Cache(3)
(rss)
CSS(1)
(rss)
DAO(4)
(rss)
Database(12)
(rss)
Design Pattern
(rss)
DotNet(10)
(rss)
Eclipse(7)
(rss)
Enterprise(1)
(rss)
iOS(1)
(rss)
J2EE(1)
(rss)
Java(47)
(rss)
JavaScript(10)
(rss)
JBoss(2)
(rss)
Linux(3)
(rss)
Open Source(5)
(rss)
Oracle(4)
(rss)
Other(1)
(rss)
PHP(1)
(rss)
Spring(13)
(rss)
Struts(11)
(rss)
SWT(1)
(rss)
Test(3)
(rss)
Web(27)
(rss)
Web Service(3)
(rss)
XML(1)
(rss)
感悟(1)
(rss)
生活(7)
(rss)
算法(2)
(rss)
文章档案
2018年3月 (1)
2014年3月 (1)
2012年7月 (1)
2011年11月 (1)
2010年7月 (1)
2010年6月 (1)
2009年9月 (1)
2009年8月 (1)
2009年6月 (1)
2009年5月 (1)
2009年4月 (4)
2008年10月 (1)
2008年7月 (1)
2008年4月 (1)
2008年3月 (1)
2008年2月 (2)
2008年1月 (2)
2007年12月 (4)
2007年11月 (3)
2007年10月 (3)
2007年9月 (8)
2007年8月 (1)
2007年7月 (2)
2007年6月 (1)
2007年5月 (8)
2007年4月 (2)
2007年3月 (14)
2007年2月 (5)
2007年1月 (12)
2006年12月 (24)
2006年11月 (1)
2006年9月 (1)
2006年8月 (1)
2006年7月 (35)
2006年6月 (31)
2006年4月 (1)
新闻档案
2015年10月 (1)
收藏夹
生活
(rss)
友情链接
中文爱百科
搜索
最新评论
1. re: JSF--ajax4jsf入门示例(repeater)[未登录]
dafdfa
--dd
2. re: eclipse网络连接代理设置
very good
--matz
3. re: SOP入门---第一個Spring AOP程式 [未登录]
非常感谢,我找的就是这个
--brave
4. re: Spring MVC异常处理(ZT)
写得可以哦。
--红泪
5. re: Spring MVC异常处理(ZT)
评论内容较长,点击标题查看
--类
阅读排行榜
1. eclipse中启动tomcat的时配置jvm参数(6258)
2. JSF--整合spring(6082)
3. hibernate 关联查询错误(Path expected for join)(4899)
4. Ext应用三 -- Tab(2)(4844)
5. hibernate 延迟加载的错误 failed to lazily initialize a collection of role(4798)
评论排行榜
1. springmodule整合spring jbpm配置(16)
2. Ext应用三 -- Tab(2)(5)
3. JSF--整合spring(3)
4. Rome使用入门(3)
5. jBPM之swimlane (2)