ActiveMQ入门实例
在开始之前需要去到网上去下载一个activeMQ,(官方网站下载:http://activemq.apache.org/),然后直接解压运行bin目录下面的activemq.bat文件,启动后登陆:http://localhost:8161/admin/,创建一个Queue,命名为FirstQueue,到这里准备工作就完成了,然后就可以开始了。
第一步,创建一个普通的java项目,然后导入java包(本人导入的是activemq-all-5.9.0.jar)
第二步、添加消息发送者
public class Sender {
//连接工厂
private static ConnectionFactory connectionFactory;
static{
connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
}
public static void main(String[] args) {
//连接
Connection connection = null;
//会话
Session session = null;
//目的地,消息要发往的地方
Destination destination;
//消息发送者
MessageProducer producer = null;
try {
//获取消息连接
connection = connectionFactory.createConnection();
//开启连接
connection.start();
//通过连接创建会话
session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
//创建消息队列
destination = session.createQueue("FirstQueue");
//创建发送者
producer = session.createProducer(destination);
//发送消息
send(session, producer);
} catch (JMSException e) {
e.printStackTrace();
}finally {
try {
session.commit();
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
public static void send(Session session,MessageProducer producer) throws JMSException{
for(int i=0;i<10;i++){
//创建消息
TextMessage msg = session.createTextMessage("消息"+i);
//发送消息
producer.send(msg);
System.out.println("发送消息:消息"+i);
}
}
}
最后一步,添加消息的接受者
public class consumer {
private static ConnectionFactory connectionFactory;
static {
connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
}
public static void main(String[] args) {
Connection connection = null;
Session session = null;
Destination destination;
MessageConsumer consumer = null;
try {
connection = connectionFactory.createConnection();
connection.start();
session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue("FirstQueue");
consumer = session.createConsumer(destination);
while (true) {
TextMessage msg = (TextMessage)consumer.receive(30000);
if(msg != null){
System.out.println("接受到的消息: "+msg.getText());
}else{
break;
}
}
} catch (JMSException e) {
e.printStackTrace();
} finally {
try {
consumer.close();
session.commit();
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
注意:接受消息还可以通过MessageListener接收
public class consumerList {
private static ConnectionFactory connectionFactory;
static {
connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
}
public static void main(String[] args) {
Connection connection = null;
Session session = null;
Destination destination;
MessageConsumer consumer = null;
try {
connection = connectionFactory.createConnection();
connection.start();
session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue("FirstQueue");
consumer = session.createConsumer(destination);
consumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
TextMessage msg = (TextMessage)message;
try {
System.out.println(msg.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});
} catch (JMSException e) {
e.printStackTrace();
} finally {
try {
consumer.close();
session.commit();
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Rsyslog日志采集
文章整理自《日志分析之 ELK stack 实战》课程学习笔记 Rsyslog是CentOS6.X自带的一款系统日志工具: 1.支持多线程 2.支持TCP,SSL,TLS,RELP等协议 3.支持将日志写入MySQL,PGSQL,Oracle等多种关系型数据中 4.拥有强大的过滤器,可实现过滤系统信息中的任意部分 5.可以自定义日志输出格式 配置文件相关: [root@monitor elasticsearch-head]# cat /etc/rsyslog.conf *.info;mail.none;authpriv.none;cron.none /var/log/messages#定义各类型日志存放位置 cron.* /var/log/cron ##具体日志存放的位置 几种文件说明: auth #认证日志 authpriv #认证授权认证 cron #任务计划相关日志 kern #内核相关日志 lpr #打印 mail #邮件日志 mark(syslog) #rsyslog服务内部的信息,时间标识 news #新闻组 user #用户程序产生的相关信息 uucp #一个古老的...
-
下一篇
Java消息队列--JMS概述
1、什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持(百度百科给出的概述)。我们可以简单的理解:两个应用程序之间需要进行通信,我们使用一个JMS服务,进行中间的转发,通过JMS 的使用,我们可以解除两个程序之间的耦合。 2、JMS的优势 1、Asynchronous(异步) JMS is asynchronous by default. So to receive a message, the client is not required to send the request. The message will arrive automatically to the client as they become available.(JMS 原本就是一个异步的消息服务,客户端获取消息的时候,不需要主动发送请求,消息会自动发送给可用的客户...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS6,CentOS7官方镜像安装Oracle11G
- Crontab安装和使用
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Docker快速安装Oracle11G,搭建oracle11g学习环境

微信收款码
支付宝收款码