ActiveMQ概念介绍
是Apache下的开源项目,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现,消息中间件。
消息中间件
A传递消息到B(功能或者系统),有比较强的耦合关系,但是耦合关系会带来一些问题,需要将AB断开
但是AB之间有依赖关系,需要找一个第三方M,进行通信。A发送消息到M,B从M获得消息,进行处理。
使用第三方进行消息传递,这种第三方叫做中间件。
作用
最主要的功能:实现JMS Provider,实现高可用高性能,可伸缩性,易于和安全企业级面向消息服务的系统。
异步操作(调用)
A发送消息到消息中间件,不必等待B消息结果的处理.
特点

1、 多种语言和协议编写客户端。语言: Java、C、C++、C#、Ruby、Perl、Python、PHP。应用协议:OpenWire、Stomp REST、WS Notification、XMPP、AMQP

2、完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)

3、对spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性

4、通过了常见J2EE服务器(如 Geronimo、JBoss 4、GlassFish、WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上

5、支持多种传送协议:in-VM、TCP、SSL、NIO、UDP、JGroups、JXTA

6、支持通过JDBC和journal提供高速的消息持久化

7、从设计上保证了高性能的集群,客户端-服务器,点对点

8、支持Ajax

9、支持与Axis的整合

10、可以很容易得调用内嵌JMS provider,进行测试

消息形式
1、点对点(queue)
2、一对多(topic)
##########
MOM基本功能:将信息以消息的形式,从一个应用程序传送到另一个或多个应用程序
MOM主要特点:
1.消息异步接受,类似手机短信行为,消息发送者不需要等待消息接受者的响应,减少软件多系统集成的耦合度
2.消息可靠接受,确保消息在中间件可靠保存,只有接受方收到消息后才删除消息,多个消息也可以组成原子事物
应用场景:
多个系统间整合和通讯时候,通常要求:
1。可靠传输,数据不能丢失,有时候也要求不能重复传输
2.异步传输,否则各个系统同步发送接收数据,互相等待,造成系统瓶颈。
 简单的例子
创建两个工程A和工程B编写测试类
package activemqA;import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;//生产者
public class Sender {public static void main(String args[]){Sender sender = new Sender();sender.sendMessage("hello,activemqB");}public void sendMessage(String msg){ConnectionFactory connectionFactory = null;Connection connection = null;Session session = null;try {//1.创建连接工厂connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");//2.得到一个连接connection = connectionFactory.createConnection();//3.创建一个Sessionsession = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//4.创建目的地Destination destination = session.createQueue("myQueue");//5.创建发送者MessageProducer messageProducer = session.createProducer(destination);//6.创建文本消息TextMessage textMessage = session.createTextMessage(msg);//7.发送消息messageProducer.send(textMessage);} catch (JMSException e) {e.printStackTrace();}finally{//8.关闭connection和sessiosntry {if(connection !=null){connection.close();}if (session !=null) {session.close();}} catch (JMSException e) {e.printStackTrace();}}}
}

消费者

package activemqB;import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;//消费者
public class Receiver {public static void main(String args[]){Receiver receiver = new Receiver();receiver.receiverMessage();}public void receiverMessage(){ConnectionFactory connectionFactory = null;Connection connection = null;Session session =null;try {//1.创建连接工厂connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");//2.得到一个连接connection = connectionFactory.createConnection();//3.创建一个Sessionsession = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//4.创建目的地Destination destination = session.createQueue("myQueue");//5.创建接受者MessageConsumer messageConsumer = session.createConsumer(destination);//6.打开连接
            connection.start();//7.接收消息TextMessage textMessage = (TextMessage) messageConsumer.receive(1000);//8.输出验证System.out.println("接收到的消息为:"+textMessage.getText());} catch (JMSException e) {e.printStackTrace();}finally {try {if (connection !=null) {connection.close();}if (session !=null) {session.close();}} catch (JMSException e) {e.printStackTrace();}}}
}

转载于:https://www.cnblogs.com/fengzhongzhuzu/p/9958313.html

activemq概念介绍相关推荐

  1. c语言 activemq,activemq概念介绍

    ActiveMQ概念介绍 是Apache下的开源项目,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现,消息中间件. 消息中间件: A传递消息到B(功能或者系统),有比较强的耦合 ...

  2. ActiveMQ简单介绍以及安装

    ActiveMQ简单介绍以及安装   现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文深入浅出JMS(一)–JMS ...

  3. cocos2d-x一些核心概念介绍

    cocos2d-x一些核心概念介绍 Cocos2d-x中有很多概念,这些概念很多来源于动画.动漫和电影等行业,例如:导演.场景和层等概念,当然也有些有传统的游戏的概念.Cocos2d-x中核心概念:导 ...

  4. FPGA之道(75)静态时序分析(一)基本概念介绍

    文章目录 前言 基本概念介绍 常用时间参数介绍 tsu 建立时间要求 建立时间余量 th 保持时间要求 保持时间余量 tco Maximum frequency (or Minimum period) ...

  5. Lesson 13.2 模型拟合度概念介绍与欠拟合模型的结构调整策略

    一.模型拟合度概念介绍与实验 1.测试集的"不可知"悖论   通过此前课程内容介绍,我们已经知道了机器学习模型主要通过模型在测试集上的运行效果来判断模型好坏,测试集相当于是&quo ...

  6. linux块设备驱动(一)——块设备概念介绍

    linux块设备驱动(一)--块设备概念介绍 本文来源于: 1. http://blog.csdn.net/jianchi88/article/details/7212370 2. http://bl ...

  7. HTML/CSS学习笔记01【概念介绍、基本标签】

    w3cschool菜鸟教程.CHM(腾讯微云):https://share.weiyun.com/c1FaX6ZD HTML/CSS学习笔记01[概念介绍.基本标签.表单标签][day01] HTML ...

  8. 《统计自然语言处理》读书笔记 一.基础知识及概念介绍

    最近准备学习自然语言处理相关的知识,主要参考<统计自然语言处理·宗成庆>和<Natural Language Processing with Python>,推荐大家阅读.第一 ...

  9. DNS术语,组件和概念介绍

    DNS术语,组件和概念介绍 2014年2月18日发布 255.4k个意见 DNS 概念LINUX基础常见问题 介绍 DNS或域名系统往往是学习如何配置网站和服务器的一个非常困难的部分.了解DNS如何工 ...

最新文章

  1. linux操作系统教学,Linux操作系统教学视频
  2. 安卓中实现两端对齐,中间fill_parent的方法
  3. Android O: View的绘制流程(一): 创建和加载
  4. 2019ICPC(上海) - Color Graph(二分图+状态压缩)
  5. php laravel 调试,php – Xdebug laravel artisan命令
  6. Java对象都是在堆上分配空间吗?答案竟然是...
  7. 基于基于jsp+mysql+Spring的SpringBoot美容院预约管理系统设计和实现
  8. opencv android
  9. mysql存储过程实验几轮_想问下数据库中有关存储过程的实验,求大神!
  10. python int函数和二进制、八进制、十进制转换
  11. [0715]Jsoi Test sequence
  12. 【SENCHA TOUCH】改了tomcat的IP访问!java的session失效问题! [ Web 开发]
  13. m3u8手机批量转码_M3U8批量转换app-M3U8批量转换MP4软件下载v1.0 安卓版-西西软件下载...
  14. win10安装wget
  15. 各种说明方法的答题格式_说明文方法答题格式
  16. uni-app和H5页面使用支付宝登陆问题解决
  17. kvm虚拟机上安装kata
  18. 五万字 | Hive知识体系保姆级教程
  19. mysql查询95031班人数_MySQL的查询练习 - osc_1ngzqx2h的个人空间 - OSCHINA - 中文开源技术交流社区...
  20. cuDNN: efficient Primitives for Deep Learning 论文阅读笔记

热门文章

  1. Javascript基础系列之(五)条件语句(if条件语句)
  2. react html编辑器,在线代码编辑器 Codemirror 的轻量级 React 组件
  3. linux下svn常用命令集锦
  4. fastreport4打印预览
  5. js获取CuteEditor的值
  6. oracle支持ipv6,准备现有的网络以支持 IPv6
  7. php mysql查询例子_php mysql一个查询优化的简单例子
  8. Ubuntu14.04+RabbitMQ3.6.3+Golang的最佳实践
  9. C#实现TreeView向XML的绝对转换类
  10. c#制作的简单的画图板