ActiveMQ要入门什么
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,本篇文章给大家分享的是有关ActiveMQ要入门什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1. 发布消息import org.a
千家信息网最后更新 2025年02月04日ActiveMQ要入门什么
本篇文章给大家分享的是有关ActiveMQ要入门什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
1. 发布消息
import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;public class BookProducer implements Runnable{ public static final String BROKER_URL = "tcp://localhost:61616"; @Override public void run() { try { //1.创建连接工厂,指定ip和端口 ConnectionFactory factory = new ActiveMQConnectionFactory(BROKER_URL); //2.使用连接工厂创建一个连接对象 Connection connection = factory.createConnection(); //3.开启连接(JMS会话) connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //使用会话创建目的地 /** * ① 点对点(Point-to-Point)。在点对点的消息系统中,消息分发给一个单独的使用者。点对点消息往往与队列(javax.jms.Queue)相关联。 * ② 发布/订阅(Publish/Subscribe)。发布/订阅消息系统支持一个事件驱动模型,消息生产者和消费者都参与消息的传递。生产者发布事件, 而使用者订阅感兴趣的事件,并使用事件。该类型消息一般与特定的主题(javax.jms.Topic)关联。 */ Destination destination = session.createQueue("book-broker") //创建生产者/消费者 MessageProducer producer = session.createProducer(destination); // MessageConsumer consumer = session.createConsumer(destination); //consumer.receive(); /** * 创建消息,支持的消息类型: * TextMessage * MapMessage * ObjectMessage:对象需要实现序列化接口 * BytesMessage * StreamMessage */ Message message = session.createTextMessage("我是一个香蕉......."); //发送消息 producer.send(message); //释放资源 producer.close(); session.close(); connection.close(); } catch (JMSException e) { e.printStackTrace(); } }}
2. 接收消息
import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.JMSException;import javax.jms.Session;import javax.jms.TextMessage;public class BookConsumer implements Runnable { @Override public void run() { try { var connection = new ActiveMQConnectionFactory(BookProducer.BROKER_URL).createConnection(); connection.start(); /** * connection.createSession(boolean transacted, int acknowledgeMode); * transacted:是否使用事务 * acknowledgeMode:应答模式 * AUTO_ACKNOWLEDGE:自动应答 * 对于同步消费者,receive方法调用返回,且没有异常发生时,将自动对收到的消息予以确认. * 对于异步消息,当onMessage方法返回,且没有异常发生时,即对收到的消息自动确认. * CLIENT_ACKNOWLEDGE:客户端手动应答 * 这种方式要求客户端使用javax.jms.Message.acknowledge()方法完成确认. * DUPS_OK_ACKNOWLEDGE:延时//批量通知 * 这种确认方式允许JMS不必急于确认收到的消息,允许在收到多个消息之后一次完成确认, 与Auto_AcKnowledge相比,这种确认方式在某些情况下可能更有效, 因为没有确认,当系统崩溃或者网络出现故障的时候,消息可以被重新传递. * 使用事务消息确认模式: * SESSION_TRANSACTED */ var session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); var consumer = session.createConsumer(session.createQueue("tmall-queue")); var message = ((TextMessage)consumer.receive()).getText(); System.out.println(message); session.close(); connection.close(); }}
或者设置监听器接收(消费者不用一直在线,监听到消息自动接收)
import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.JMSException;import javax.jms.Session;import javax.jms.TextMessage;public class BookConsumer implements Runnable { @Override public void run() { try { var connection = new ActiveMQConnectionFactory(BookProducer.BROKER_URL).createConnection(); connection.start(); var session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); var consumer = session.createConsumer(session.createQueue("tmall-queue")); consumer.setMessageListener(message -> { try { System.out.println(((TextMessage) message).getText()); }catch (JMSException e){ e.printStackTrace(); } }); } catch (JMSException e) { e.printStackTrace(); } }}
3. java内嵌ActiveMQ,自动启动一个ActiveMQ,不需要Linux启动
import org.apache.activemq.broker.BrokerService;public class Broker { //导入依赖compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.9' public void producter(){ BrokerService brokerService = new BrokerService(); brokerService.setUseJmx(true);//设置Broker的服务是否应该公开给JMX try { brokerService.addConnector("tcp://localhost:61616"); brokerService.start(); } catch (Exception e) { e.printStackTrace(); } }}
以上就是ActiveMQ要入门什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
消息
事件
消费者
消费
方式
方法
生产者
系统
生产
订阅
事务
使用者
客户
客户端
对象
工厂
更多
模式
知识
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
北京远度互联网科技
量化交易服务器搭建
湖北云创互联网科技有限公司
网络安全及病毒防护
睢宁专业性软件开发常见问题
鬼闻异录手游大唐盛典服务器
数据库根据存储方法可分为
csharp数据库
国家网络安全应急措施
苹果软件开发分成
国家网络安全周 学校
数据结构与计算机网络技术
基于复用的软件开发
海兴租房软件开发
联想服务器电源灯一个闪一个不闪
数据库格式化命令
佳明245数据库
三门峡网络技术要多少钱
sap数据库不建外键约束
宁夏煜耀互联网科技
网络安全问题汇报记录
设计师用什么软件开发客户
西华县西华营服务器
快递网络安全说明
山东盟信天下网络技术公司
宾馆网络安全整改报告模板
重庆软件开发机构排名
人间地狱进入服务器闪退
软件开发框架培训辅导费用
手机网络服务器繁忙怎么解决