优点:消息中间件主要解决了各个模块异步调动问题,解除了模块之间的耦合,提高了运行的性能。
一.点对点方式
生产者
1.创建连接工厂
ActiveMQConnectionFactory 基于TCP协议
ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616")
2.创建连接
Connection connection=connectionFactory.createConnection();
3.启动连接
connection.start();
4.获取Session,参数1:是否启动事务 参数2:消息的确认方式
Session session=connection.creatSession(false,AUTO_ACKNOWLEDGE);
5.创建队列对象
Queue queue=session.creatQueue("test-queue");
6.创建消息的生产者对象 Destination是Queue的父接口
MessageProduceer producer=session.createProducer(queue);
7.创建消息对象(文本消息)
TextMessage textMessage=session.creatTextMessage("欢迎您");
8.发送消息
producer.send(textMessage);
9.关闭资源
producer.close();
session.close();
connection.close();

消费者
1.创建连接工厂
ActiveMQConnectionFactory 基于TCP协议
ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616")
2.创建连接
Connection connection=connectionFactory.createConnection();
3.启动连接
connection.start();
4.获取Session,参数1:是否启动事务 参数2:消息的确认方式
Session session=connection.creatSession(false,AUTO_ACKNOWLEDGE);
5.创建队列对象
Queue queue=session.creatQueue("test-queue");
6.创建消费者对象
MessageConsumer consumer=session.createConsumer(queue);
7.设置监听
consumer.setMessageListener(new MessageLister(){
  public void onMessage(Message message){
  TextMessage textMessage=(TextMessage)message;
  try{
  System.out.println("提取的消息:"+textMessage.getText());
  }catch(JMSException e){
  e.printStackTrace();
}
}
});
8.等待键盘输入
System.in.read();
9.关闭资源
consumer.close();
session.close();
connection.close();

二.订阅者模式
生产者
1.创建连接工厂
ActiveMQConnectionFactory 基于TCP协议
ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616")
2.创建连接
Connection connection=connectionFactory.createConnection();
3.启动连接
connection.start();
4.获取Session,参数1:是否启动事务 参数2:消息的确认方式
Session session=connection.creatSession(false,AUTO_ACKNOWLEDGE);
5.创建主题对象
Topic topic=session.creatTopic("test-topic");
6.创建消息的生产者对象 Destination是Queue的父接口
MessageProduceer producer=session.createProducer(topic);
7.创建消息对象(文本消息)
TextMessage textMessage=session.creatTextMessage("欢迎您");
8.发送消息
producer.send(textMessage);
9.关闭资源
producer.close();
session.close();
connection.close();

消费者
1.创建连接工厂
ActiveMQConnectionFactory 基于TCP协议
ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616")
2.创建连接
Connection connection=connectionFactory.createConnection();
3.启动连接
connection.start();
4.获取Session,参数1:是否启动事务 参数2:消息的确认方式
Session session=connection.creatSession(false,AUTO_ACKNOWLEDGE);
5.创建主题对象
Topic topic=session.creatTopic("test-topic");
6.创建消费者对象
MessageConsumer consumer=session.createConsumer(topic);
7.设置监听
consumer.setMessageListener(new MessageLister(){
  public void onMessage(Message message){
  TextMessage textMessage=(TextMessage)message;
  try{
  System.out.println("提取的消息:"+textMessage.getText());
  }catch(JMSException e){
  e.printStackTrace();
}
}
});

8.等待键盘输入
System.in.read();
9.关闭资源
consumer.close();
session.close();
connection.close();

ActiveMQ的基本使用的更多相关文章

  1. Java消息队列--ActiveMq 实战

    1.下载安装ActiveMQ ActiveMQ官网下载地址:http://activemq.apache.org/download.html ActiveMQ 提供了Windows 和Linux.Un ...

  2. 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)

    Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息.在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量..消息队列已经被分 ...

  3. (jms)ActiveMQ 安装配置.

    前言 ActiveMQ他是Apache出品的一个JMS提供者,管理会话和队列,运行在JVM下,支持多种语言,如JAVA,C++,C#,应用协议: OpenWire,Stomp REST,WS Noti ...

  4. node(ActiveMq)

    简单尝试了node下的ActiveMQ 1.下载apache-activemq-5.9.0,执行bat文件: 2.登录http://localhost:8161/admin可查看其管理后台: 3.安装 ...

  5. ActiveMQ的集群方案对比及部署

    转载:http://blog.csdn.net/lifetragedy/article/details/51869032 ActiveMQ的集群 内嵌代理所引发的问题: 消息过载 管理混乱 如何解决这 ...

  6. JMS学习之路(一):整合activeMQ到SpringMVC

    JMS的全称是Java Message Service,即Java消息服务.它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息.把它应用到实际的业务需求中的话我们可以 ...

  7. ActiveMQ消息队列的使用及应用

    这里就不说怎么安装了,直接解压出来就行了. 谢绝转载,作者保留所有权力 目录:  一:JMQ的两种消息模式 1.1:点对点的消息模式 1.2:订阅模式 二:点对点的实现代码 2.1:点对点的发送端 2 ...

  8. 从零开始学 Java - Spring 集成 ActiveMQ 配置(一)

    你家小区下面有没有快递柜 近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了.对,我说的就是类似快递柜.菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快 ...

  9. Spring下ActiveMQ实战

    MessageQueue是分布式的系统里经常要用到的组件,一般来说,当需要把消息跨网段.跨集群的分发出去,就可以用这个.一些典型的示例就是: 1.集群A中的消息需要发送给多个机器共享: 2.集群A中消 ...

  10. ActiveMQ(li)

    一.ActiveMQ 首先,ActiveMQ不是一个框架,它不是struct,webx,netty这种框架,它更像是tomcat服务器,因为你使用它之前必须启动它,activeMQ和JMS的关系有点类 ...

随机推荐

  1. Qt 字符串相等判断问题

    QString str = "0"; if (QString(param.value.data()) == QStringLiteral("空")) { str ...

  2. redis分布锁

    1.redis分布式锁应用的场景? 1)防止缓存穿透:热点数据过期,大量线程访问mysql 2)  防止秒杀超卖:库存数量同步给redis后,对redis数据进行扣减 3)双写一致性:缓存的数据,被修 ...

  3. OSPF配置知识总结2(单区域)

    OSPF配置知识总结2 静态路由有静态路由的好处,但也有弊端,牵一发动全身,在一个路由路径上,只要变一个,其他所有的路由器上的静态路由都要跟着改变. 用动态路由OSPF很简单就能解决这个问题.如下: ...

  4. 手机安装APK文件,出现-应用未安装-软件包无效-安装包异常

    在项目的根的gradle.properties文件中添加 android.injected.testOnly=false 即可. 猜想:因为是在打debug包,然后这个属性变为了true?然后手机会因 ...

  5. UVM reg model 常见问题记录

    1.仿真log中报出大量的"include_coverage not located, did you mean ***"? (1) user在构建register model或者 ...

  6. ORM框架的延迟加载(懒加载)

    Hibernate的延迟加载分类的延迟加载和集合的延迟加载,类的延迟加载又分调用session的load()方法的延迟加载和加载实体单向关联的另一个实体的延迟加载 1.修改配置文件 spring.jp ...

  7. ERA5气压层数据驱动WRF的一些问题

    感谢Dawn的建议,兰溪之水的WRF教程 参考了一些经验,并结合实际后,成功用ERA5驱动WRF.实际上,用ERA5数据驱动WRF的方法和用ERA-Interim 数据驱动WRF极其类似. 总结几点是 ...

  8. Andorid 11获取外部存储权限方法

    private void requestmanageexternalstorage_Permission() { if (Build.VERSION.SDK_INT >= Build.VERSI ...

  9. 记录解决方案(sqlserver篇)

    一个月的补卡次数不超过三次(即统计一个月内某人的补卡次数) 表结构是某人一天内的四次打卡状态,这样是统计当月补卡的天数了(错误) select count(*) from [Proc_HR_Punch ...

  10. ObjectARX2016-1打印HelloWolrd

    首先把Objectarx2016和VS2012安装好,安装好之后,如果在VS2012创建项目的过程中出现创建项目失败的情况,可以查看我的第一篇随笔https://www.cnblogs.com/Arc ...