没有队列的JMS

没有队列的JMS,jms,Jms,我不是JMS方面的专家,最近在我的项目中遇到了一种情况,他们希望使用JMS在应用程序之间进行通信。是否可以在没有底层MQ软件(如Websphere MQ/TIBCO EMS)的情况下使用JMS进行异步通信。我的想法是,就像我们使用JDBCAPI与下面的物理数据库产品(如Oracle/DB2DB)对话一样,我们将使用JMS与物理队列对话。但是我的团队说只有JMS,没有队列。有人能帮我理解吗?我们使用WebSphere6.0Server和spring框架 提前谢谢 您是对的:JMS只是一个接口,它不

我不是JMS方面的专家,最近在我的项目中遇到了一种情况,他们希望使用JMS在应用程序之间进行通信。是否可以在没有底层MQ软件(如Websphere MQ/TIBCO EMS)的情况下使用JMS进行异步通信。我的想法是,就像我们使用JDBCAPI与下面的物理数据库产品(如Oracle/DB2DB)对话一样,我们将使用JMS与物理队列对话。但是我的团队说只有JMS,没有队列。有人能帮我理解吗?我们使用WebSphere6.0Server和spring框架


提前谢谢

您是对的:JMS只是一个接口,它不包含任何实现。与JDBC的比较非常合适

使用JMS时,始终需要JMS提供程序。提供者是JMS实现,它与面向消息的中间件接口


大多数应用服务器都内置了JMS提供程序,因此您的团队可能打算在没有外部提供程序的情况下使用JMS。

您是正确的:JMS只是一个接口,它不包含任何实现。与JDBC的比较非常合适

使用JMS时,始终需要JMS提供程序。提供者是JMS实现,它与面向消息的中间件接口

大多数应用服务器都内置了JMS提供程序,所以您的团队可能意味着在没有外部提供程序的情况下使用JMS

是否可以在没有底层MQ软件(如Websphere MQ/TIBCO EMS)的情况下使用JMS进行异步通信

这毫无意义。需要注意的几点:

  • JMS只是一个例子。根据规范,您可以将其想象为一组API/接口/方法签名和管理规则
  • 有各种组织/公司提供这些API的实现。Apache的ActiveMQ、IBM的Websphere MQ或TIBCO EMS就是其中的一些例子
  • 现在,当您说我想使用JMS时,您需要一个与JMS兼容的服务器,即理解规范规定的规则的服务器。这通常称为MQ服务器,由提供商提供
  • 我的想法是,就像我们使用JDBCAPI与下面的物理数据库产品(如Oracle/DB2DB)对话一样,我们将使用JMS与物理队列对话。但是我的团队说只有JMS,没有队列

    这里需要注意两件事。当你说你想使用数据库和JDBCAPI来与JMS通信时,这是不可能的。请理解为什么使用JMS。简而言之,它用于在两个解耦系统之间传输消息。JMS服务器使用的存储类型(以及是否可配置)将取决于提供程序。通常,所有数据库都具有DB存储类型,并且可以配置为使用您的DB

    下一个JMS有两种类型的通信-
    PTP(对等)
    使用
    队列
    PUBSUB(发布-订阅)
    使用
    主题
    。当你说你正在使用JMS时,一切都可以归结为这两种类型中的任何一种以及它的一些变体。现在当你说JMS没有队列时,也许你的团队是指使用PUBSUB。但是,这并不是你随机决定并在应用程序中使用的东西。这一决定是根据您的需求做出的,因为两者的行为不同

    是否可以在没有底层MQ软件(如Websphere MQ/TIBCO EMS)的情况下使用JMS进行异步通信

    这毫无意义。需要注意的几点:

  • JMS只是一个例子。根据规范,您可以将其想象为一组API/接口/方法签名和管理规则
  • 有各种组织/公司提供这些API的实现。Apache的ActiveMQ、IBM的Websphere MQ或TIBCO EMS就是其中的一些例子
  • 现在,当您说我想使用JMS时,您需要一个与JMS兼容的服务器,即理解规范规定的规则的服务器。这通常称为MQ服务器,由提供商提供
  • 我的想法是,就像我们使用JDBCAPI与下面的物理数据库产品(如Oracle/DB2DB)对话一样,我们将使用JMS与物理队列对话。但是我的团队说只有JMS,没有队列

    这里需要注意两件事。当你说你想使用数据库和JDBCAPI来与JMS通信时,这是不可能的。请理解为什么使用JMS。简而言之,它用于在两个解耦系统之间传输消息。JMS服务器使用的存储类型(以及是否可配置)将取决于提供程序。通常,所有数据库都具有DB存储类型,并且可以配置为使用您的DB


    下一个JMS有两种类型的通信-
    PTP(对等)
    使用
    队列
    PUBSUB(发布-订阅)
    使用
    主题
    。当你说你正在使用JMS时,一切都可以归结为这两种类型中的任何一种以及它的一些变体。现在当你说JMS没有队列时,也许你的团队是指使用PUBSUB。但是,这并不是你随机决定并在应用程序中使用的东西。这一决定是根据您的需求做出的,因为两者的行为不同

    首先,您需要队列/主题来使用JMS

    其次(您的团队可能意味着不使用WebSphere MQ,因为我的团队也这么说)

    IBM红皮书中的此图将完全回答您的问题(与WS6相同):

    第4页


    您可能将使用的是WebSphere默认消息传递提供程序。

    首先,您需要队列/主题来使用JMS

    其次(您的团队可能意味着不使用WebSphere MQ,因为我的团队也这么说)

    IBM红皮书中的此图将完全回答您的问题(与WS6相同):

    第4页


    您可能将使用的是WebSphere默认消息传递提供程序。

    WebSphere Application Server具有内部队列(我猜它们将其命名为默认队列),并且它们具有自己的JMS实现(甚至与WebSphere MQ的JMS实现不同)。也许你的团队是