博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ActiveMQ
阅读量:4692 次
发布时间:2019-06-09

本文共 6200 字,大约阅读时间需要 20 分钟。

ActiveMQ

  开源消息总线

MQ:message  queue=消息队列

JMS

  java message service=java消息服务(不同系统信息交换)

队列(queue)

  功能:就是对消息进行排队,消息生产者和消费者形成一对一关系

queue信息发送与接收

流程:创建连接工厂-->创建连接-->创建会话-->通过会话创建队列-->将队列放进创建的生产者-->创建消息-->生产者发送消息

信息发送

package com.test.queue;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;public class QueueSender {    //携程发送消息查询✈票    public static void send(){        //东航的服务器        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");        //连接        try {            Connection con = factory.createConnection();            con.start();            //会话            //AUTO_ACKNOWLEDGE创建会话的时候自动确认连接正确            Session session = con.createSession(false,Session.AUTO_ACKNOWLEDGE);            //创建队列---------给队列起名first            Queue queue = session.createQueue("first");            //消息生产者            MessageProducer producer = session.createProducer(queue);            //消息            TextMessage message = session.createTextMessage("第5条message:hello word");            //发送            producer.send(message);            session.close();        } catch (Exception e) {            e.printStackTrace();        }    }    public static void main(String[] args) {        send();    }}

信息接收

流程:创建连接工厂-->创建连接-->创建会话-->通过会话创建队列-->将队列放进创建的消费者-->监听队列->获取发送来的消息

package com.test.queue;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;/** * Created by MY on 2017/8/2. */public class QueueConsumer {    //东航读取消息    public static void recevice(){        ActiveMQConnectionFactory factory= new ActiveMQConnectionFactory("tcp://localhost:61616");        try {            Connection con=factory.createConnection();            con.start();            //会话            Session session=con.createSession(false, Session.AUTO_ACKNOWLEDGE);            //队列            Queue queue=session.createQueue("first");            MessageConsumer meg=session.createConsumer(queue);            //监听队列            meg.setMessageListener(new MessageListener() {                @Override                public void onMessage(Message message) {                    try {                        TextMessage msg=(TextMessage)message;                        System.out.println(msg.getText());                    } catch (JMSException e) {                        e.printStackTrace();                    }                }            });        } catch (Exception e) {            e.printStackTrace();        }    }    public static void main(String[] args) {        recevice();    }}

 

Topic(主题):

  功能:广播,一对多

package com.test.topic;import com.test.entity.Book;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;/** * Created by MY on 2017/8/2. */public class TopicSender {    public static void send(){        ActiveMQConnectionFactory factory=new ActiveMQConnectionFactory("tcp://localhost:61616");        try {            Connection con=factory.createConnection();            Session session=con.createSession(false, Session.AUTO_ACKNOWLEDGE);            Topic topic=session.createTopic("topic-first");            MessageProducer producer=session.createProducer(topic);            Book bk=new Book();            bk.setTitle("红楼梦");            ObjectMessage om= session.createObjectMessage(bk);            producer.send(om);            session.close();        } catch (JMSException e) {            e.printStackTrace();        }    }    public static void main(String[] args) {        send();    }}package com.test.topic;import com.test.entity.Book;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;/** * Created by MY on 2017/8/2. */public class TopicConsumer {    //收听    public static void listen(){        ActiveMQConnectionFactory factory=new ActiveMQConnectionFactory("tcp://localhost:61616");        factory.setTrustAllPackages(true);        try {           Connection con= factory.createConnection();           con.start();           Session session= con.createSession(false,Session.AUTO_ACKNOWLEDGE);            //主题            Topic topic=session.createTopic("topic-first");            //消费者            MessageConsumer consumer=session.createConsumer(topic);            //监听            consumer.setMessageListener(new MessageListener() {                @Override                public void onMessage(Message message) {                    ObjectMessage msg=(ObjectMessage)message;                    try {                        Book bk=(Book)msg.getObject();                        System.out.println("1"+bk.getTitle());                    } catch (JMSException e) {                        e.printStackTrace();                    }                }            });        } catch (JMSException e) {            e.printStackTrace();        }    }    public static void main(String[] args) {        listen();    }}package com.test.topic;import com.test.entity.Book;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;/** * Created by MY on 2017/8/2. */public class TopicConsumer2 {    //收听    public static void listen2(){        ActiveMQConnectionFactory factory=new ActiveMQConnectionFactory("tcp://localhost:61616");        factory.setTrustAllPackages(true);        try {            Connection con= factory.createConnection();            con.start();            Session session= con.createSession(false,Session.AUTO_ACKNOWLEDGE);            //主题            Topic topic=session.createTopic("topic-first");            //消费者            MessageConsumer consumer=session.createConsumer(topic);            //监听            consumer.setMessageListener(new MessageListener() {                @Override                public void onMessage(Message message) {                    ObjectMessage msg=(ObjectMessage)message;                    try {                        Book bk=(Book)msg.getObject();                        System.out.println("2:"+bk.getTitle());                    } catch (JMSException e) {                        e.printStackTrace();                    }                }            });        } catch (JMSException e) {            e.printStackTrace();        }    }    public static void main(String[] args) {        listen2();    }}

 

转载于:https://www.cnblogs.com/rzqz/p/7277240.html

你可能感兴趣的文章
《构建之法》第一、二、十六章阅读笔记
查看>>
arrow:让Python的日期与时间变的更好
查看>>
(转)Excel的 OleDb 连接串的格式(连接Excel 2003-2013)
查看>>
Java并发编程
查看>>
Git Stash用法
查看>>
sql server 2008学习8 sql server存储和索引结构
查看>>
Jquery radio选中
查看>>
postgressql数据库中limit offset使用
查看>>
测试思想-集成测试 关于接口测试 Part 2
查看>>
windows下mysql密码忘了怎么办?【转】
查看>>
php生成器使用总结
查看>>
T-SQL中的indexof函数
查看>>
javascript基础之数组(Array)对象
查看>>
mysql DML DDL DCL
查看>>
RAMPS1.4 3d打印控制板接线与测试1
查看>>
python with语句中的变量有作用域吗?
查看>>
24@Servlet_day03
查看>>
初级ant的学习
查看>>
redis数据结构--String
查看>>
POJ 3279 Fliptile (二进制枚举)
查看>>