/xml配置文件/其他配置/activemq的配置/activemq笔记.txt
运行H:\黑马java淘宝68元\14-国际物流云商项目\day14\day14\资料\activeMQ\soefware\apache-activemq-5.14.5\bin\win64的activemq.bat打开服务器,
访问http://localhost:8161可以管理和查看详细队列,账号密码都是admin。
没有该文件的话解压apache-activemq-5.14.5-bin.zip得到。
两种消息模式:
1、queue,类似qq聊天,一方发了消息后会一直保存在queue里,直到对方接收或者消息过期;生产者发送10条信息,两个消费者消费,会发现Messages Enqueued +10,Messages Dequeued+10,两个消费者消费总条数是10
2、topic,类似qq群,一方发了消息后群里所有人都会接收到,新入群的收不到入群前的信息;生产者发送10条信息,两个消费者消费,会发现Messages Enqueued +10,Messages Dequeued+20,每个消费者消费条数是10
消费者有两种方式消费,一种是用receive手动消费,receive一次消费一次,
一种是用监听,有新信息就会调用监听的onMessage方法处理信息。
基本版要导的包:
activemq-all
spring-beans
spring整合要导的包:
activemq-all
spring-jms
xbean-spring
spring-beans
发送消息全部用textmessage即可,发送对象时转json,接收时转对象。
=====================================================================
用如下方法可以传文件:读文件时不能用循环读,否则s.writeBytes(b)只会报错最后一次数据
@Override
public Message createMessage(Session session) throws JMSException {
StreamMessage s = session.createStreamMessage();
String x = "E:/..../img/024.jpg";
byte[] b = new byte[1024 * 1024];
try {
InputStream in=new FileInputStream(x)
in.read(b);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
s.writeBytes(b);
return s;
}
@Override
public void onMessage(javax.jms.Message message) {
try {
StreamMessage s = (StreamMessage) message;
byte[] b = new byte[1024 * 1024];
s.readBytes(b);
FileOutputStream f = new FileOutputStream("1.jpg");
f.write(b);
f.close();
} catch (Exception e) {
e.printStackTrace();
}
}
=====================================================================
可以实现a发送信息给b,b处理后在把结果反馈给a。需要使用两套发送和监听系统,
a发给b一套,b发给a一套。如果只用一套系统,会出现a发送的信息被a自己接收,b同样。
推荐阅读
- MyEclipse中防止代码格式化时出现换行的情况的设置
- JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象
- tomcat启动时报invalid LOC header (bad signature)错误
- docker中运行zabbix/zabbix-web-nginx-mysql镜象,前端页面显示时间不准确的问题(差5个小时)
- java.lang.NoSuchMethodError: 'feign.Request$Body feign.Request.requestBody()
- maven must be "pom" but is "jar" 填坑记
- npm 报错(permission denied Please try running this command again as root/Administrator.)
- IDEA中Lombok使用
- 基于Crawler4j + jsoup实现爬虫