繁体   English   中英

JMS和HornetQ

[英]JMS and HornetQ

JMS是Java消息传递“ API”,对我来说仍然不清楚像HornetQ这样的第三方API到底做什么? 没有任何默认/引用实现?

JMS只是一个规范,您可以选择任何喜欢的实现:

  • HornetQ的
  • ActiveMQ的
  • 红帽MRG
  • IBM MQ
  • Oracle MQ ...等,等等...等

除了规范外,每个人还将提供不同的功能。

例如,HornetQ提供确认确认(因此,您无需阻止等待确认的发送,而可以将高级技术用于异步操作,例如异步servlet)。

HornetQ还提供大消息。

HornetQ也提供了核心API,您无需JMS就可以使用它。

例如,我知道如果您不想使用JMS,也可以使用IBM的API。

因此,在摘要Java消息服务-JMS中,JMS只是一组Java接口,您必须选择适当的实现。

我认为您正在混合一些概念。 如您所说,JMS是一个API(如果您愿意,也可以是一个规范)。 简化的JMS定义了一组接口,某些供应商必须实现这些接口。 在您的情况下,您正在使用JBoss HornetQ。 但是,还有其他实现,例如Apache ActiveMQ和其他实现。 因此,如果您愿意或需求有变,您可以交换实现。

实现JMS API的提供程序可能包括其他功能。 但是这些是专有的,不在JMS规范中。 因此,也许复制包含在一个提供程序中,而另一个则不提供这种功能。

可以在JDBC中找到另一个示例。 JDBC本身是API,但是对于不同的数据库存在不同的实现。 与JPA相同,其中Hibernate和Toplink是主要示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM