精华内容
下载资源
问答
  • ActiveMQ之消息分发策略
    千次阅读
    2019-05-11 15:00:13

    分发策略

    queue的分发策略

    可插拔的分发策略只适用于topic。queue的分发策略比较固定:轮询(默认)或按照严格顺序。同时我们也应该了解prefect的意义。

    ActiveMQ的prefetch缺省参数是针对处理大量消息时的高性能和高吞吐量而设置的,因此默认的prefect值很大,默认的分发策略会尽快尝试将预取缓冲区填满(prefetch buffers)。

    然而在有些情况下,例如只有少量的消息而且单个消息的处理时间比较长,那么在缺省的prefetch和dispatch policies下,这些少量的消息总是倾向于被分发到个别的consumer上。这样就会因为负载的不均衡分配而导致处理时间的增加。

    对于队列,你可以选择使用轮询或按严格顺序(strictOrderDispatch)。
    strictOrderDispatch表示在直到当前消费者的prefetch缓冲区满了之后才选择下一个消费者进行消息的分发。

    通过下面的方式来启用按严格顺序分发的策略:

    <policyEntry queue=">" strictOrderDispatch="false" />
    

    如果你有几个优先级不同的消费者,消息会先发送给优先级最高的消费者,直到它的prefect缓冲区满,然后再下一个,等等。

    从5.14.0版开始——strictOrderDispatch=true选项将确保只有一个消费者时重新发送消息的顺序是严格的。

    topic的分发策略

    所有实现了org.apache.activemq.broker.region.policy.DispatchPolicy的都可以。默认实现是org.apache.activemq.broker.region.policy.SimpleDispatchPolicy,它将消息传递给所有的订阅者。一个更高级的实现示例是org.apache.activemq.broker.region.policy.PriorityNetworkDispatchPolicy,它只会分发给拥有最高优先级的网络消费者。这在循环网络拓扑结构中非常有用,因为在这种拓扑结构中,到消费者的路由不止一条。

    下面是一个Destination策略配置示例

    <destinationPolicy> 
      <policyMap> 
        <policyEntries> 
          <policyEntry topic="FOO.>"> 
            <dispatchPolicy> 
              <roundRobinDispatchPolicy/> 
            </dispatchPolicy>  
            <subscriptionRecoveryPolicy> 
              <lastImageSubscriptionRecoveryPolicy/> 
            </subscriptionRecoveryPolicy> 
          </policyEntry>  
          <policyEntry topic="ORDERS.>"> 
            <dispatchPolicy> 
              <strictOrderDispatchPolicy/> 
            </dispatchPolicy>  
            <!-- 1 minutes worth -->  
            <subscriptionRecoveryPolicy> 
              <timedSubscriptionRecoveryPolicy recoverDuration="60000"/> 
            </subscriptionRecoveryPolicy> 
          </policyEntry>  
          <policyEntry topic="PRICES.>"> 
            <!-- lets force old messages to be discarded for slow consumers -->  
            <pendingMessageLimitStrategy> 
              <constantPendingMessageLimitStrategy limit="10"/> 
            </pendingMessageLimitStrategy>  
            <!-- 10 seconds worth -->  
            <subscriptionRecoveryPolicy> 
              <timedSubscriptionRecoveryPolicy recoverDuration="10000"/> 
            </subscriptionRecoveryPolicy> 
          </policyEntry>  
          <policyEntry tempTopic="true" advisoryForConsumed="true"/>  
          <policyEntry tempQueue="true" advisoryForConsumed="true"/> 
        </policyEntries> 
      </policyMap> 
    </destinationPolicy>
    
    

    参考:http://activemq.apache.org/dispatch-policies.html
    参考:https://blog.51cto.com/1754966750/1923299

    更多相关内容
  • kafka版本:kafka_2.11-0.9.0.1 kafka jar包版本:0.9.0.1 kafka集群:192.168.1.101,192.168.1.102,192.168.1.103 ...partition分发策略主要是自定义Partitioner的实现类,通过根据key和分区数量来实现
  • 以此访问模型为输入,建立典型的刚系统,研究中心节点并发流处理能力、边缘节点缓存能力两个参数和节目访问规律之间的匹配关系及其对内容分发效果的影响.仿真结果表明:在给定的服务质量要求下,性价比最优的系统...
  • RabbitMQ 消息的分发策略

    千次阅读 2022-03-12 23:25:04
    两种方式,典型的git就有推拉机制,我们发送的http请求就是一种典型的拉取数据库数据返回的过程,而消息队列MQ是一种推送的过程,而这些推机制绘话用到很多的业务场景也有很多对应推机制策略。 发布订阅:生产者...

    MQ消息队列有如下几个角色:
    1、生产者
    2、存储消息
    3、消费者
    那么生产者生成消息以后,MQ进行存储,消费者是如何获取消息的呢?一般获取数据的方式无外乎推(push)或者拉(pull);两种方式,典型的git就有推拉机制,我们发送的http请求就是一种典型的拉取数据库数据返回的过程,而消息队列MQ是一种推送的过程,而这些推机制绘话用到很多的业务场景也有很多对应推机制策略。

     

    发布订阅:生产者发送消息到消息队列进行存储,消费者们只要订阅了,就会收到消息队列中的消息,是一种推的机制。这是它一个最基础的功能。


    轮询分发:生产者将消息投递到消息队列,消息队列会按照一定的机制将消息推送给消费者,而这种规则呢是一种公平的分发;并不会因为消费者的延时而造成他的不公平性(不论你的服务器性能怎么样,都会是公平的,消息队列中的消息平均分发,不会造成数据的倾斜),一旦有一个消费者消费了消息,后面的消费者就不会重复的去消费消息;自动应答。


    公平分发:公平分发会按照服务器的性能来分配,快的消费多一点,慢的消费少一点(能者多劳);会造成数据的倾斜;一旦有一个消费者消费了消息,后面的消费者就不会重复的去消费消息;需要手动应答。


    重发:当app创建了订单,但是订单系统出现了故障,这个时候我们的消息队列中会有一个应答机制,它没有收到消费成功的反馈(如:消费的服务器出现故障),就会造成消息的堆积,但是堆积的消息不会删除掉,它会重新发送给另一个消费的服务器来进行消费,以此类推;它的目的就是为了保证消息的一个可靠性(KafKa不支持重发)。


    消息拉取:rbc通讯机制,消息被动拉取。

    展开全文
  • 基于LTE D2D技术的车联网通信架构与数据分发策略研究.pdf
  • 一款相当不错的MSI封半软件,组策略默认只支持MSI格式安装发布和指派,可通过此软件对.EXE或其它格式安装包程序进行重新封装再利用DC域策略发布
  • 大数据Kafka(十):kafka生产者数据分发策略

    千次阅读 多人点赞 2021-08-29 16:44:35
    生产者数据分发策略 策略一:用户指定了partition 策略二:用户发生数据的时候指定了key没有指定partition ,采用hash算法 策略三: 当用户既没有指定partition也没有key。采用粘性的划分策略(Sticky Partitioning ...
    展开全文
  • 消息的分发策略

    2021-03-16 10:35:04
    消息的分发策略 MQ消息队列有下面几个角色 1.生产者 2.存储消息 3.消费者 生产者生成消息后,MQ进行存储,消费者是如何获取消息的呢?一般获取消息数据的方式是推(push)和拉(pull)两种方式,典型的git就是有推拉...

    消息的分发策略

    MQ消息队列有下面几个角色
    1.生产者
    2.存储消息
    3.消费者

    生产者生成消息后,MQ进行存储,消费者是如何获取消息的呢?一般获取消息数据的方式是推(push)和拉(pull)两种方式,典型的git就是有推拉机制,我们发送的http请求就是一种典型的拉去数据库数据返回的过程。而消息队列MQ是一种推送的过程。

    场景分析

    在这里插入图片描述

    消息分发策略的机制和对比

    在这里插入图片描述

    轮询分发

    在轮询分发的场景下,交换机并不知道后面消费者的消费能力,就两个消费者一人一个这样轮询
    缺点:不同消费者处理任务的时间是不一样的,这样会造成性能浪费

    公平分发

    公平分发的本质就是能者多劳
    1,使用公平分发,必须关闭自动应答ack,然后改成手动应答方式。
    2,每个消费者发送确认消息之前,消息队列不发送下一个消息到消费者,一次只处理一个消息。
    限制发送给同一个消费者不得超过1条消息。
    3,消费者增加了channel.basicQos(1)控制同一消息消费次数。
    在spring boot里面的配置

    publisher-confirms: true  #消息发送到交换机确认机制,是否确认回调
        publisher-returns: true   #消息发送到交换机确认机制,是否返回回调
        listener:
          simple:
            acknowledge-mode: auto    #自动应答ack auto   manual 手动跟新,设置auto,则就是公平分发
            concurrency: 1              #定义最小的消费者数量
            max-concurrency: 100       #定义最大的消费者数量
            retry:
              enabled: false          #是否支持重试
              #将自动应答模式关闭,即开启acknowledge机制
            prefetch: 0              #预读设置,prefetch默认是1,如果设置为0就是轮询模式;就是告诉同一时间将几个消息给消费者,
    
    展开全文
  • IP-guard企业信息监管系统,是一款领先的内网安全软件,它能够协助企业解决最棘手的内网安全问题,借助IP-guard强大的功能,企业能够有效地进行用户行为管理,防范信息外泄,文档透明加密,敏感内容识别管理系统DLP...
  • 基于5G通信技术的车联网面临高速率、低时延、高可靠性和大量流...其次,针对簇内车辆的流媒体数据分发,提出一种带时延约束的 D2D 协作中继转发策略,设计最优中继选择算法,大幅提高数据传输速率,提升网络吞吐量。
  • springcloudgateway可以为所有的微服务统一加前缀/api/app吗,就像zuul中zuul:  prefix: /api/app这样配置就可以为所有的路由加上前缀api/app,springcloudgateway应该怎么像这样统一前缀吗,如果是单个的可以这样 ...
  • exe2msi exe转msi 域策略软件分发
  • 提出了一种新的编码数据分发算法,该算法通过收集每个多播路径簇上承载业务信息的带宽,来确定编码后数据的分发策略,使编码节点能够对带宽不相同的数据进行处理并在解码节点正确解码,从而更加贴近现实网络。...
  • RabbitMQ札记-消息分发策略

    千次阅读 2018-09-30 15:31:15
    今天来学习RabbitMQ的消息分发策略。 在RabbitMQ札记-RabbitMQ入门一文中,我们曾学习过RabbitMQ的概念模型,其中就介绍过消息分发策略。 Exchange表示交换器,用来接收生产者发送的消息并将这些消息路由给队列...
  • #资源达人分享计划#
  • #资源达人分享计划#
  • 任务分发策略在Oracle数据库集群中的应用研究.pdf
  • 基于可重构路由器上缓存的流媒体协作分发策略
  • 基于可重构路由器上缓存的流媒体协作分发策略.pdf
  • 分发策略 消息是kafka中最基本的额数据单元,在kafka中,一条消息由key、value两部分构成, 在发送一条消息时,我们可以指定这个key,producer会根据key来判断当前这条消息应该 路由存储到哪个partition。 默认分发...
  • 另一方面,在拨号的环境下,可以在R1和R3上精确的控制宣告的路由条目,避免OSPF进程学到其他不必要的网络
  • 基于可重构路由器上缓存的流媒体协作分发策略刍议.pdf
  • P2P 视频点播 内容分发策略
  • #资源达人分享计划#
  • ActiveMQ学习笔记-分发策略

    千次阅读 2017-05-16 22:45:51
    默认的分发策略是org.apache.activemq.broker.region.policy.SimpleDispatchPolicy,而network 中的分发策略是将消息往优先级高的进行发送org.apache.activemq.broker.region.policy.PriorityNetworkDispatchPolicy ...
  • 滴滴订单分配策略.pdf

    2021-01-23 12:38:04
    滴滴订单分配策略.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 125,462
精华内容 50,184
关键字:

产品分发策略