- 53
- 0
- 共 0 条
- 全部回答
-
紫梦风铃 普通会员 1楼
在一些分布式系统中,比如 Kafka、RabbitMQ 等,有“ACK”(Acknowledged)消息的延迟提交机制。以下是延迟提交 ACK 的几种常见方法:
- 设置延迟:
- 在创建或者更新 Kafka 或 RabbitMQ 话题时,设置延迟时间。例如,创建一个新的主题时,可以设置为 "延迟 ACK",并在后续的 Acknowledge 消息发送时,将延迟时间设置为 1 秒。例如:
$ kafkacat create topic <topic-name> -D topic.replication.factor=1 -D topic.idle.ms=1 - 在 RabbitMQ 中,设置主题的 ack 设置,可以使用队列的 ack 参数,例如:
rabbitmqctl setqueue <queue-name> ack 1 -
在 Kafka 中,设置队列的 ack 参数,可以使用 broker 设置,例如:
kafka.properties advertised-topic.delay.ms=1 -
重置延迟:
- 如果在发送 Acknowledgement 消息后,需要立即提交 ACK,可以在发送 Acknowledgement 消息后,先将其设置为 "非延迟" 或 "延迟确认",然后再设置为 "延迟"。例如:
$ kafkacat send <queue-name> --acknowledgement=non-delayed --acknowledgement-time=1000 --acknowledgement-expiration-time=5000 - 在 RabbitMQ 中,可以使用队列的 non-delayed 消息属性,设置为 "非延迟" 或 "延迟确认"。例如:
rabbitmqctl setqueue <queue-name> non-delayed -
在 Kafka 中,可以使用 broker 设置,设置队列的 non-delayed 消息属性,例如:
kafka.properties advertised-topic.non-delayed.consumer.poll.interval.ms=1000 -
设置默认延迟:
- 如果用户希望在 Acknowledgement 消息发送时,不设置延迟,但期望在后续的消息发送时,自动提交 ACK,可以在 Kafka 或 RabbitMQ 的主题设置中,设置默认的 Acknowledgement 等待时间。例如:
$ kafka.properties topic.auto-commit-delay.ms=0 $ rabbitmqctl setqueue <queue-name> auto-commit=true -
在 RabbitMQ 中,可以在队列的 auto-commit 消息属性中设置默认的 Acknowledgement 等待时间。例如:
rabbitmqctl setqueue <queue-name> auto-commit=true -
使用 ZooKeeper/Consistency Group:
- 在一些分布式系统中,如 ZooKeeper 或 Consistency Group,有类似于 Kafka 的延迟提交机制。在 ZooKeeper 中,可以通过创建一个 'kafka.consumer.commit-latency' 或 'kafka.consumer.commit-timeout' 配置项来设置 Kafka 应用程序在发送 Acknowledgement 消息时的延迟时间。例如:
zookeeper.qos.commit-latency=1000 zookeeper.qos.commit-timeout=5000 - 在 Consistency Group 中,可以使用 Consistency Group 的 commit-latency 和 commit-timeout 配置项来设置 Kafka 应用程序在发送 Acknowledgement 消息时的延迟时间。例如:
<consistency-group name="my-consistency-group"> <members> <member node="1" address="127.0.0.1:9092" port="9092"/> </members> <commit-latency>1000</commit-latency> <commit-timeout>5000</commit-timeout> </consistency-group>
注意,设置 "acknowledgement-time" 或 "commit-latency" 时,需要确保这两个参数与 ZooKeeper 或 Consistency Group 的其他配置项(如 timeout、quorum、order-of-service 等)相匹配,以避免分布式系统的资源竞争问题。
-
半个闲人 普通会员 2楼
在一些分布式系统中,比如 Kafka、RabbitMQ 等,有“ACK”(Acknowledged)消息的延迟提交机制。以下是延迟提交 ACK 的几种常见方法:
- 设置延迟:
- 在创建或者更新 Kafka 或 RabbitMQ 话题时,设置延迟时间。例如,创建一个新的主题时,可以设置为 "延迟 ACK",并在后续的 Acknowledge 消息发送时,将延迟时间设置为 1 秒。例如:
$ kafkacat create topic <topic-name> -D topic.replication.factor=1 -D topic.idle.ms=1 - 在 RabbitMQ 中,设置主题的 ack 设置,可以使用队列的 ack 参数,例如:
rabbitmqctl setqueue <queue-name> ack 1 -
在 Kafka 中,设置队列的 ack 参数,可以使用 broker 设置,例如:
kafka.properties advertised-topic.delay.ms=1 -
重置延迟:
- 如果在发送 Acknowledgement 消息后,需要立即提交 ACK,可以在发送 Acknowledgement 消息后,先将其设置为 "非延迟" 或 "延迟确认",然后再设置为 "延迟"。例如:
$ kafkacat send <queue-name> --acknowledgement=non-delayed --acknowledgement-time=1000 --acknowledgement-expiration-time=5000 - 在 RabbitMQ 中,可以使用队列的 non-delayed 消息属性,设置为 "非延迟" 或 "延迟确认"。例如:
rabbitmqctl setqueue <queue-name> non-delayed -
在 Kafka 中,可以使用 broker 设置,设置队列的 non-delayed 消息属性,例如:
kafka.properties advertised-topic.non-delayed.consumer.poll.interval.ms=1000 -
设置默认延迟:
- 如果用户希望在 Acknowledgement 消息发送时,不设置延迟,但期望在后续的消息发送时,自动提交 ACK,可以在 Kafka 或 RabbitMQ 的主题设置中,设置默认的 Acknowledgement 等待时间。例如:
$ kafka.properties topic.auto-commit-delay.ms=0 $ rabbitmqctl setqueue <queue-name> auto-commit=true -
在 RabbitMQ 中,可以在队列的 auto-commit 消息属性中设置默认的 Acknowledgement 等待时间。例如:
rabbitmqctl setqueue <queue-name> auto-commit=true -
使用 ZooKeeper/Consistency Group:
- 在一些分布式系统中,如 ZooKeeper 或 Consistency Group,有类似于 Kafka 的延迟提交机制。在 ZooKeeper 中,可以通过创建一个 'kafka.consumer.commit-latency' 或 'kafka.consumer.commit-timeout' 配置项来设置 Kafka 应用程序在发送 Acknowledgement 消息时的延迟时间。例如:
zookeeper.qos.commit-latency=1000 zookeeper.qos.commit-timeout=5000 - 在 Consistency Group 中,可以使用 Consistency Group 的 commit-latency 和 commit-timeout 配置项来设置 Kafka 应用程序在发送 Acknowledgement 消息时的延迟时间。例如:
<consistency-group name="my-consistency-group"> <members> <member node="1" address="127.0.0.1:9092" port="9092"/> </members> <commit-latency>1000</commit-latency> <commit-timeout>5000</commit-timeout> </consistency-group>
注意,设置 "acknowledgement-time" 或 "commit-latency" 时,需要确保这两个参数与 ZooKeeper 或 Consistency Group 的其他配置项(如 timeout、quorum、order-of-service 等)相匹配,以避免分布式系统的资源竞争问题。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

