前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >动力节点Java学习资料讨论JMS与ActiveMQ的内部逻辑

动力节点Java学习资料讨论JMS与ActiveMQ的内部逻辑

原创
作者头像
动力节点Java培训
修改2018-12-19 10:32:15
3680
修改2018-12-19 10:32:15
举报
文章被收录于专栏:Java学习资料Java学习资料

两个系统之间或者分布式系统之间的信息通信,是我们开发中比较常见的场景,比如系统A要把信息发送给系统B,这个问题我们应该如何去处理??

1999年,原来的SUN公司领衔提出了一种面向消息的中间件服务--JMS规范(标准);

JMS即Java消息服务(Java Message Service的简称),是Java EE 的标准/规范之一。

这种规范(标准)指出:消息的发送应该是异步的、非阻塞的。

也就是说消息的发送者发送完消息后就直接返回了,不需要等待接收者接收到消息后才能返回,发送者和接收者可以说是互不影响。

所以这种规范(标准)能够减轻或消除系统瓶颈,实现系统之间去除耦合,提高系统的整体可伸缩性和灵活性。

JMS是Java EE中定义的一组标准API,它自身并不是一个消息服务系统,它是消息传送服务的一个抽象,也就是说它定义了消息传送的接口而并没有具体实现。

JMS规范经历了多年的发展,并随着Java EE进行了几次升级,版本从1.0到最新的2.1,它们分别是:

Java EE 8 --> Java Message Service API 2.1

Java EE 7 --> Java Message Service API 2.0?

Java EE 6 --> Java Message Service API 1.1

Java EE 5 --> Java Message Service API 1.1

J2EE1.4 --> Java Message Service API 1.1

我们知道JMS只是消息服务的一组规范和接口,并没有具体的实现,而ActiveMQ就是JMS规范的具体实现;

ActiveMQ是Apache下的一个项目,采用Java语言开发;

ActiveMQ 是一款非常流行的开源消息服务器,实现了JMS规范,官网: http://activemq.apache.org/

ActiveMQ与JMS关系,我们知道,JMS只是定义了一组有关消息传送的规范和标准,并没有真正实现,也就说JMS只是定义了一组接口而已,就像JDBC抽象了关系数据库访问、JPA抽象了对象与关系数据库映射、JNDI抽象了命名目录服务访问一样,JMS具体的实现由不同的消息中间件厂商提供,比如Apache ActiveMQ就是JMS规范的具体实现,Apache ActiveMQ才是一个消息服务系统,而JMS不是。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com