activeMQ(1)
2024-09-05 08:18:00
消息中间件
作用:解耦 削峰 异步
JMS编码总体架构:
一般代码流程
@Test
public void test1(){
//创建连接工厂
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(MQ_URL);
try {
Connection connection = factory.createConnection();
connection.start(); //创建会话session
Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE); //创建目的地(具体是队列还是主题)
Queue queue = session.createQueue("myFirstQueue"); //创建消息的生产者
MessageProducer producer = session.createProducer(queue);
for (int i = 0; i < 3; i++) {
//创建消息
TextMessage message = session.createTextMessage("hello--->"+i);
//通过消息生产者发送消息至mq
producer.send(message);
}
producer.close();
session.close();
connection.close(); }catch (Exception e){
e.printStackTrace();
} System.out.println("********************"); }
@Test
public void test2(){
//创建连接工厂
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(MQ_URL);
try {
Connection connection = factory.createConnection();
connection.start(); //创建会话session
Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE); //创建目的地(具体是队列还是主题)
Queue queue = session.createQueue("myFirstQueue"); //创建消息的消费者
MessageConsumer consumer = session.createConsumer(queue);
for (int i = 0; i < 3; i++) {
TextMessage message = (TextMessage)consumer.receive(); //阻塞式接收
if(message!=null){
System.out.println("receive---->"+message.getText());
}
}
//监听器式接收
consumer.setMessageListener((Message message) -> {
if (message != null && message instanceof TextMessage) {
try {
System.out.println(((TextMessage) message).getText());
} catch (Exception e) {
e.printStackTrace();
} }
});
consumer.close(); session.close(); connection.close(); }catch (Exception e){ e.printStackTrace(); } System.out.println("********************"); }
consumer.setMessageListener((Message message) -> {
if (message != null && message instanceof TextMessage) {
try {
System.out.println(((TextMessage) message).getText());
} catch (Exception e) {
e.printStackTrace();
} }
});
最新文章
- Centos下设置VNC为3389端口
- mybatis输出SQL
- 为什么匿名内部类只能访问final变量【转】
- 对thinkphp静态模板表单提交的理解
- python两个 list 交集,并集,差集的方法+两个tuple比较操作+两个set的交集,并集,差集操作+两个dict的比较操作
- 函数innobase_start_or_create_for_mysql
- iis 5.1 连接 sql 2005
- [github] 创建个人网页
- jquery元素查找方法
- 有个程序猿要去当CEO了:(二)扬帆起航
- 将JSON格式数据转换为javascript对象 JSON.parse()
- Redis 的安装 使用 通知事件
- eclipse maven设置
- 微信小程序 后端用Flask实现
- HTML5 — 地理定位
- apacheh2.4和php5.5集成环境遇到的问题
- QQ模仿之弹窗ADDFriend事件
- input checkbox复选框点击获取当前选中状态jquery
- android自定义控件的一个思路-入门
- 极域电子教室3个没被发现的bug(V6 2007)