消息中间件

作用:解耦 削峰  异步


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();
} }
});

最新文章

  1. Centos下设置VNC为3389端口
  2. mybatis输出SQL
  3. 为什么匿名内部类只能访问final变量【转】
  4. 对thinkphp静态模板表单提交的理解
  5. python两个 list 交集,并集,差集的方法+两个tuple比较操作+两个set的交集,并集,差集操作+两个dict的比较操作
  6. 函数innobase_start_or_create_for_mysql
  7. iis 5.1 连接 sql 2005
  8. [github] 创建个人网页
  9. jquery元素查找方法
  10. 有个程序猿要去当CEO了:(二)扬帆起航
  11. 将JSON格式数据转换为javascript对象 JSON.parse()
  12. Redis 的安装 使用 通知事件
  13. eclipse maven设置
  14. 微信小程序 后端用Flask实现
  15. HTML5 — 地理定位
  16. apacheh2.4和php5.5集成环境遇到的问题
  17. QQ模仿之弹窗ADDFriend事件
  18. input checkbox复选框点击获取当前选中状态jquery
  19. android自定义控件的一个思路-入门
  20. 极域电子教室3个没被发现的bug(V6 2007)

热门文章

  1. Verilog写入变量值到文件语句
  2. PHP mysqli_fetch_fields() 函数
  3. ZOJ - 4114 Flipping Game
  4. Hdu 2047 Zjnu Stadium(带权并查集)
  5. HGOI 20191103am 题解
  6. 【luoguUVA1316】 Supermarket--普通并查集+贪心
  7. Python 爬取喜马拉雅音频
  8. Ubuntu16.04搭建NetCore2.2运行环境
  9. LIUNX 安装 nginx
  10. mysql 查看当前正在执行的语句