zoukankan      html  css  js  c++  java
  • 关于 ActiveMQ 的消息模式

    1、JMS Queue 执行 load balancer语义:
    一条消息仅能被一个 consumer(消费者) 收到。如果在 message 发送的时候没有可用的
    consumer,那么它将被保存一直到能处理该 message 的 consumer 可用。如果一
    个 consumer 收到一条 message 后却不响应它,那么这条消息将被转到另一个
    consumer 那儿。一个 Queue 可以有很多 consumer,并且在多个可用的 consumer
    中负载均衡。

    点对点消息传递域的特点如下:
    •  每个消息只能有一个消费者。
    •  消息的生产者和消费者之间没有时间上的相关性。无论消费者在生产者发
    送消息的时候是否处于运行状态,它都可以提取消息。

    2、Topic 实现 publish和 subscribe 语义:
    一条消息被 publish时,它将发到所有感兴趣的订阅者,所以零到多个subscriber
    将接收到消息的一个拷贝。但是在消息代理接收到消息时,只有激活订阅的
    subscriber能够获得消息的一个拷贝。

    发布/订阅消息传递域的特点如下:
    •  每个消息可以有多个消费者。
    •  生产者和消费者之间有时间上的相关性。订阅一个主题的消费者只能消费
    自它订阅之后发布的消息。JMS 规范允许客户创建持久订阅,这在一定程
    度上放松了时间上的相关性要求。持久订阅允许消费者消费它在未处于激
    活状态时发送的消息。

    3、分别对应两种消息模式:
    Point-to-Point (点对点),Publisher/Subscriber Model (发布/订阅者) 其中在 Publicher/Subscriber 模式下又有Nondurable subscription(非持久订阅)
    和 durable subscription (持久化订阅)2种消息处理方式(支持离线消息)。

    在点对点消息传递域中,目的地被成为队列(queue);在发布/订阅消息传递
    域中,目的地被成为主题(topic)。

  • 相关阅读:
    Docker安装Zookeeper并进行操作
    JVM 完整深入解析
    synchronized关键字加到static静态方法和非static静态方法区别
    submit与execute区别
    ThreadPoolTaskExecutor和ThreadPoolExecutor区别
    Redis占用内存大小
    Java中CycliBarriar和CountdownLatch区别
    Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
    文本格式
    JavaScript事件
  • 原文地址:https://www.cnblogs.com/zhenfei/p/5503719.html
Copyright © 2011-2022 走看看