V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
li24361
V2EX  ›  程序员

jms 是 java 消息队列的标准, activemq 是具体实现,还是不太懂

  •  
  •   li24361 · 2015-11-21 22:36:17 +08:00 · 2860 次点击
    这是一个创建于 3291 天前的主题,其中的信息可能已经有所发展或是发生改变。

    谁能给个例子,或者比喻,原来一直就只会用 rabbitmq 和 rocketmq 这个轮子,结果系统里面别人用的封装的 mq ,看源码有点晕

    8 条回复    2015-11-24 18:02:58 +08:00
    HentaiMew
        1
    HentaiMew  
       2015-11-21 22:50:07 +08:00   ❤️ 1
    JMS 在 Java 里面跟 JPA 是同一个级别的概念,是一种与实现无关的规范。

    完全遵循 JMS 标准的的 MQ 产品,是可以在几乎不动项目代码的基础上更换 MQ 的。
    RabbitMQ 就不属于标准 JMS 实现。但是 MQ 的核心思想都是一样的。用例如 Spring 提供的 JMS API 时,更加能做到与具体 JMS 产品无关。
    li24361
        2
    li24361  
    OP
       2015-11-21 23:02:19 +08:00
    @HentaiMew 言简意赅,谢了,看来还是要多了解,不能只用轮子
    julyclyde
        3
    julyclyde  
       2015-11-22 10:19:42 +08:00
    @li24361 标准的好处就是让你很方便的 只用 轮子
    li24361
        4
    li24361  
    OP
       2015-11-22 10:31:07 +08:00
    @julyclyde 可是很多实用的轮子并没有遵循框架
    li24361
        5
    li24361  
    OP
       2015-11-22 10:31:31 +08:00
    @julyclyde 标准,说错了
    wucao219101
        6
    wucao219101  
       2015-11-22 10:58:13 +08:00   ❤️ 1
    举个栗子:最近我家里的淋浴的喷头坏掉了,我在想,是不是要换一个同样牌子的喷头才能接的上(但附近不一定能买到同样牌子的),或者要把一整套全换掉(感觉要花很多钱)。到了五金店我才发现多虑了,原来所有的喷头的接口都一样,也就是有一套统一的标准。

    JMS 同样是制定的一套标准(代号 JSR 914 ),一系列 Interface 。消息队列的开发者可以根据这个标准来实现,这样一来,跟其他系统的集成,或者切换使用其他的消息队列,就非常方便。

    Java 还有很多其他的标准,如 JAX-RS ( RESTful WebService 标准,代号 JSR 311 )、 JAX-WS 、 JDBC 、 JPA 。。。

    其实都是类似于 Java 的接口和实现类, List list = new ArrayList(); 如果哪天觉得 ArrayList 性能不好,换成 LinkedList ,不用改变其他代码,多好~
    broadliyn
        7
    broadliyn  
       2015-11-22 12:52:52 +08:00   ❤️ 1
    activemq/rabbitmq 是 AMPQ 的具体实现——你可以理解成 nginx 、 apache 、 lighthttpd 、 tomcat 等服务器是 http 协议的具体实现

    jms 是 java 消息队列的标准——你可以理解成 Servlet Api 是 java web 开发里与 http 请求、响应交互的标准接口
    julyclyde
        8
    julyclyde  
       2015-11-24 18:02:58 +08:00
    @li24361 你可以在符合标准的轮子里选嘛。那么多呢是吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1068 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 23:20 · PVG 07:20 · LAX 15:20 · JFK 18:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.