RocketMQ - 8 消费者 push和pull模式,配置参数

PushConsumer配置

consumerGroup DEFAULT_CONSUMER Consumer 组名,多个 Consumer如果属于一个应用,订阅同样的消息,且消费逻辑一致,则应该将它们归为同一组
messageModel CLUSTERING 消息模型,支持以下两种 1、集群消费 2、广播消费
consumeFromWhere CONSUME_FROM_LAST_OFFSET Consumer 启动后,默认从什么位置开始消费
allocateMessageQueueStrategy AllocateMessageQueueAveragely Rebalance 算法实现策略
subscription {} 订阅关系
messageListener 消息监听器
offsetStore 消费进度存储
consumeThreadMin 10 消费线程池数量
consumeThreadMax 20 消费线程池数量
consumeConcurrentlyMaxSpan 2000 单队列并行消费允许的最大跨度
pullThresholdForQueue 1000 拉消息本地队列缓存消息最大数
pullInterval 0 拉消息间隔,由于是长轮询,所以为 0,但是如果应用为了流控,也可以设置大于 0 的值,单位毫秒
consumeMessageBatchMaxSize 1 批量消费,一次消费多少条消息
pullBatchSize 32 批量拉消息,一次最多拉多少条

PullConsumer配置

consumerGroup DEFAULT_CONSUMER Consumer 组名,多个Consumer 如果属于一个应用,订阅同样的消息,且消费逻辑一致,则应该将它们归为同一组
brokerSuspendMaxTimeMillis 20000 长轮询,Consumer 拉消息请求在 Broker 挂起最长时间,单位毫秒
consumerTimeoutMillisWhenSuspend 30000 长轮询,Consumer 拉消息请求在 Broker 挂起超过指定时间,客户端认为超时,单位毫秒
consumerPullTimeoutMillis 10000 非长轮询,拉消息超时时间,单位毫秒
messageModel BROADCASTING消息模型,支持以下两种 1、集群消费 2、广播消费
messageQueueListener 监听队列变化
offsetStore 消费进度存储
registerTopics [] 注册的 topic 集合
allocateMessageQueueStrategy AllocateMessageQueueAveragely Rebalance 算法实现策略

Push和Pull模式

push和pull模式在前面已经有说过了。push是broker主动去向consumer推送消息,他们之间只需要保持长连接即可。pull是consumer主动去向broker拉取消息。
push就是我们前面讲到的模式MQPushConsumer就是push模式。
pull模式将不会给出例子,因为比较繁琐。pull模式有两种做法,一种自己主动记录每次获取消息的offset,下次再次获取从这次的最大下标+1去获取,期间多长时间执行拉取,由自己实现。第二种由rocketmq帮我们完成,consumer消费完后提醒broker更新最新拉取消息的offset,多长时间拉取一次可以由设置属性让rocketmq帮我们完成。
因为pull模式是间隔一定时间去broker拉取下标从多少开始的一批消息。不可避免的容易出现重复消息的事情,所以如果使用pull,要多加一部消息去重的策略。具体的pull示例,可以参考rocketmq的example中的simple包,里面有对两种做法进行示例

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: `cluster.pushpull-interval` 是 Prometheus 中 Alertmanager 组件的一个配置项。它定义了多个 Alertmanager 实例之间的信息同步频率。 这个配置项可以让多个 Alertmanager 实例保持同步,以确保所有节点上的告警状态都是一致的。当有新的告警生成或告警状态发生变化时,各个 Alertmanager 节点会在指定频率内相互推送和拉取告警信息,以保证数据的同步。 这个配置项可以在 Alertmanager 的配置文件中进行设置。 ### 回答2: laertmanager中的cluster.pushpull-interval是一个用于配置聚集推送和拉取的时间间隔的设置。 在Prometheus中,Alertmanager是用于处理警报通知的组件。Alertmanager可以与Prometheus服务器集群进行交互,用于接收、聚集和处理警报,并根据配置的规则和接收者发送通知。 cluster.pushpull-interval参数确定了推送和拉取聚集的时间间隔。聚集推送是指将聚集的警报从一个Alertmanager实例发送到其他Alertmanager实例,以便实现警报的分布式处理。而聚集拉取是指从其他Alertmanager实例接收聚集的警报。 将这两个操作聚集起来可以维护一个警报的全局视图,确保所有的Alertmanager实例都具有相同的警报信息。cluster.pushpull-interval的配置决定了在多长时间内执行一次聚集推送和拉取的操作。 通过配置合适的cluster.pushpull-interval值,我们可以平衡Alertmanager之间的资源消耗和警报信息的实时同步。如果将cluster.pushpull-interval设置得太短,可能会导致频繁的推送和拉取操作,增加资源开销。而如果设置得太长,可能会导致警报通知不及时或信息不同步。 总之,cluster.pushpull-interval参数在Alertmanager中起着很重要的作用,通过合理设置这个参数,可以使Alertmanager在处理警报通知时实现高效、准确且同步的工作。 ### 回答3: 在Laertmanager中,cluster.pushpull-interval参数用于设置集群中数据的推送和拉取的时间间隔。Laertmanager是一个用于管理和监控Kubernetes集群的工具,它可以从Kubernetes API服务器中获取信息并将其推送到各个组件。同时,它还可以将组件产生的事件(如日志和指标)拉取回来,以便于分析和监控。 在一个大规模的Kubernetes集群中,可能包含数百或数千个节点,每个节点上可能运行着多个容器。而这些容器的状态、指标和日志等数据会不断变化,Laertmanager需要定期获取这些数据以实时监控和分析。 通过设置cluster.pushpull-interval参数,我们可以控制Laertmanager对数据的推送和拉取的时间间隔。较短的时间间隔可以使监控数据更为实时,但同时也会占用更多的网络带宽和系统资源。而较长的时间间隔可能会导致监控数据的滞后,无法实时捕捉到节点或容器的变化。 因此,在设置cluster.pushpull-interval参数时,需要根据集群的规模、网络资源、监控需求等因素进行权衡和调整。通过合理地配置参数,可以在不影响系统正常工作的前提下,保证Laertmanager对集群数据的实时监控和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值