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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker使用Oracle官方镜像安装(12C,18C,19C)