设为首页 收藏本站
查看: 1084|回复: 0

[经验分享] ActiveMQ入门实例

[复制链接]

尚未签到

发表于 2017-3-1 09:19:58 | 显示全部楼层 |阅读模式
  下载ActiveMQ 5.8.0 Release版
  http://download.csdn.net/download/xisdo/5744107
  得到
DSC0000.png

  然后进入bin包
DSC0001.png

  启动该服务会看到
DSC0002.png

  登陆:http://localhost:8161/admin/,我们会看到一个登入账号以及登入密码,分别为admin,admin,,如何看这个登入账号与密码呢?
  我们应该先找到jetty.xml配置文件,修改



<bean id="securityConstraint" class="org.eclipse.jetty.util.security.Constraint">
<property name="name" value="BASIC" />
<property name="roles" value="admin" />
<property name="authenticate" value="true" />
</bean>
authenticate默认为false,我们应该改为true改为后再查看jetty-realm.properties文件我们就能看到
DSC0003.png

  登入成功后
  创建一个Queue,命名为FirstQueue
  3.创建Eclipse项目并运行
创建java project:ActiveMQ-5.8,新建lib文件夹
打开apache-activemq-5.8.0\lib目录
拷贝
activemq-broker-5.8.0.jar
activemq-client-5.8.0.jar
geronimo-j2ee-management_1.1_spec-1.0.1.jar
geronimo-jms_1.1_spec-1.1.1.jar
slf4j-api-1.6.6.jar
这5个jar文件到lib文件夹中,并Build Path->Add to Build Path
  结构如下
DSC0004.png

  Sender.java



package com.llmj.ActiveMQ.test;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
public class Sender {
private static final int SEND_NUMBER = 5;
public static void main(String[] args) {
// ConnectionFactory :连接工厂,JMS 用它创建连接  
ConnectionFactory connectionFactory; // Connection :JMS 客户端到JMS
// Provider 的连接  
Connection connection = null; // Session: 一个发送或接收消息的线程
Session session; // Destination :消息的目的地;消息发送给谁.  
Destination destination; // MessageProducer:消息发送者  
MessageProducer producer; // TextMessage message;
// 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar  
connectionFactory = new ActiveMQConnectionFactory(  
ActiveMQConnection.DEFAULT_USER,  
ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");  
try { // 构造从工厂得到连接对象  
connection = connectionFactory.createConnection();  
// 启动  
            connection.start();  
// 获取操作连接  
session = connection.createSession(Boolean.TRUE,  
Session.AUTO_ACKNOWLEDGE);  
// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置  
destination = session.createQueue("FirstQueue");  
// 得到消息生成者【发送者】  
producer = session.createProducer(destination);  
// 设置不持久化,此处学习,实际根据项目决定  
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);  
// 构造消息,此处写死,项目就是参数,或者方法获取  
            sendMessage(session, producer);  
session.commit();  
} catch (Exception e) {  
e.printStackTrace();  
} finally {  
try {  
if (null != connection)  
connection.close();  
} catch (Throwable ignore) {  
}  
}  
}
public static void sendMessage(Session session, MessageProducer producer)  
throws Exception {  
for (int i = 1; i <= SEND_NUMBER; i++) {  
TextMessage message = session.createTextMessage("ActiveMq 发送的消息"  
+ i);  
// 发送消息到目的地方  
            
System.out.println(i+ ".发送消息:" + "ActiveMq 发送的消息" + i);  
producer.send(message);  
}  
}  
}
  Receiver.java



package com.llmj.ActiveMQ.test;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
public class Receiver {
public static void main(String[] args) {
// ConnectionFactory :连接工厂,JMS 用它创建连接  
        ConnectionFactory connectionFactory;  
// Connection :JMS 客户端到JMS Provider 的连接  
Connection connection = null;  
// Session: 一个发送或接收消息的线程  
        Session session;  
// Destination :消息的目的地;消息发送给谁.  
        Destination destination;
// 消费者,消息接收者  
        MessageConsumer consumer;  
connectionFactory = new ActiveMQConnectionFactory(  
ActiveMQConnection.DEFAULT_USER,  
ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
try {  
// 构造从工厂得到连接对象  
connection = connectionFactory.createConnection();  
// 启动  
            connection.start();  
// 获取操作连接  
session = connection.createSession(Boolean.FALSE,  
Session.AUTO_ACKNOWLEDGE);  
// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置  
destination = session.createQueue("FirstQueue");  
consumer = session.createConsumer(destination);  
while (true) {  
// 设置接收者接收消息的时间,为了便于测试,这里谁定为100s  
TextMessage message = (TextMessage) consumer.receive(100000);  
if (null != message) {  
System.out.println("收到消息" + message.getText());  
} else {  
break;  
}  
}  
} catch (Exception e) {  
e.printStackTrace();  
} finally {  
try {  
if (null != connection)  
connection.close();  
} catch (Throwable ignore) {  
}  
}  
}
}
  5.测试过程
先运行:Receiver.java
再运行:Sender.java
可以看到结果
Sender运行后:
1.发送消息:ActiveMq 发送的消息1
2.发送消息:ActiveMq 发送的消息2
3.发送消息:ActiveMq 发送的消息3
4.发送消息:ActiveMq 发送的消息4
5.发送消息:ActiveMq 发送的消息5
Receiver运行后:
收到消息ActiveMq 发送的消息1
收到消息ActiveMq 发送的消息2
收到消息ActiveMq 发送的消息3
收到消息ActiveMq 发送的消息4
收到消息ActiveMq 发送的消息5
  要想看到不同的输出内容,通过点击如下图的按钮切换console
DSC0005.png

  我们在代码中设置时间为10S钟,若我们想要提前结束的话
  点击那个红色方块可以手动停止运行程序
DSC0006.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348611-1-1.html 上篇帖子: 介紹 IIS 8 全新的 HttpPlatformHandler 模組與 ASP.NET 5 Beta8 重大變更 下篇帖子: Spring + SpringMVC + Druid + MyBatis 给你一个灵活的后端解决方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表