You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rocketmq.apache.org by "ypg666 (via GitHub)" <gi...@apache.org> on 2024/11/25 04:21:13 UTC

[D] 共享分级存储进行扩缩容的操作疑问 [rocketmq]

GitHub user ypg666 created a discussion: 共享分级存储进行扩缩容的操作疑问

我对RocketMQ5的新特性分级存储很感兴趣。

我想实验一种场景:通过共享的分级存储,broker节点master0缩容下线后,新建立的节点master1完全接管master0已发送且未被消费的消息,继续被消费。

在实际过程中遇到一些问题:新建立的节点master1挂载了共享的分级存储,但无法消费到master0已发送未被消费的消息

我做了一些尝试:
1、新节点master1使用master0的副本建立,及brokerName这些配置都一致,但挂载的本地存储store不一致。
2、手动复制tieredStoreMetadata.json到新节点,依然无法消费到共享分级存储中master0的消息。
3、手动复制tieredStoreMetadata.json、topic.json到新节点,可以消费到分级存储的消息了。

想请教,这种利用共享的分级存储实现扩缩容,新节点接管缩容节点的场景,是否存在一些对缩容节点本地store数据的依赖?具体的操作步骤是怎样的?比如需要转移本地存储中tieredStoreMetadata.json、topic.json等到新节点本地存储,并挂载共享的分级存储才可以实现接管缩容节点的分级存储数据?

另外,我的RocketMQ版本是5.3,测试是K8S的环境下,测试是通过mqadmin工具的produce和consume收发消息。

GitHub link: https://github.com/apache/rocketmq/discussions/8978

----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org


Re: [D] 共享分级存储进行扩缩容的操作疑问 [rocketmq]

Posted by "ypg666 (via GitHub)" <gi...@apache.org>.
GitHub user ypg666 edited a discussion: 共享分级存储进行扩缩容的操作疑问

我对RocketMQ5的新特性分级存储很感兴趣。

我想实验一种场景:通过共享的分级存储,broker节点master0缩容下线后,新建立的节点master1完全接管master0已发送且未被消费的消息,继续被消费。

在实际过程中遇到一些问题:新建立的节点master1挂载了共享的分级存储,但无法消费到master0已发送未被消费的消息

我做了一些尝试:
1、原节点master0发送消息后下线,新节点master1使用master0的副本建立,brokerName这些配置都一致。挂载共享的分级存储,但挂载的本地存储store不同。
2、手动复制本地store中tieredStoreMetadata.json到新节点master1,依然无法消费到共享分级存储中master0的消息。
3、手动复制本地store中tieredStoreMetadata.json、topic.json到新节点master1,可以消费到原节点master0中分级存储的消息了。

想请教:
1、这种利用共享的分级存储实现扩缩容,新节点接管缩容节点的场景,是否存在一些对缩容节点本地store数据的依赖?具体的操作步骤是怎样的?比如需要转移本地存储中tieredStoreMetadata.json、topic.json等到新节点本地存储,并挂载共享的分级存储才可以实现接管缩容节点的分级存储数据?
2、如果是brokerName等配置都不同的新节点master1,是否无法实现接管原节点master0读取分级存储数据?如果可以,要如何操作?

另外,我的RocketMQ版本是5.3,测试是K8S的环境下,测试是通过mqadmin工具的produce和consume收发消息。

GitHub link: https://github.com/apache/rocketmq/discussions/8978

----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org


Re: [D] 共享分级存储进行扩缩容的操作疑问 [rocketmq]

Posted by "ypg666 (via GitHub)" <gi...@apache.org>.
GitHub user ypg666 edited a discussion: 共享分级存储进行扩缩容的操作疑问

我对RocketMQ5的新特性分级存储很感兴趣。

我想实验一种场景:通过共享的分级存储,broker节点master0缩容下线后,新建立的节点master1完全接管master0已发送且未被消费的消息,继续被消费。

在实际过程中遇到一些问题:新建立的节点master1挂载了共享的分级存储,但无法消费到master0已发送未被消费的消息

我做了一些尝试:
1、原节点master0发送消息后下线,新节点master1使用master0的副本建立,brokerName这些配置一致。挂载共享的分级存储,但挂载的本地存储store不同。
2、在1的基础,手动复制本地store中tieredStoreMetadata.json到新节点master1,依然无法消费到共享分级存储中master0的消息。
3、在1的基础,手动复制本地store中tieredStoreMetadata.json、topic.json到新节点master1,可以消费到原节点master0中分级存储的消息了。

想请教:
1、这种利用共享的分级存储实现扩缩容,新节点接管缩容节点的场景,是否存在一些对缩容节点本地store数据的依赖?具体的操作步骤是怎样的?比如需要转移本地存储中tieredStoreMetadata.json、topic.json等到新节点本地存储,并挂载共享的分级存储才可以实现接管缩容节点的分级存储数据?
2、如果是brokerName等配置都不同的新节点master1,是否无法实现接管原节点master0读取分级存储数据?如果可以,要如何操作?

另外,我的RocketMQ版本是5.3,测试是K8S的环境下,测试是通过mqadmin工具的produce和consume收发消息。

GitHub link: https://github.com/apache/rocketmq/discussions/8978

----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org


Re: [D] 共享分级存储进行扩缩容的操作疑问 [rocketmq]

Posted by "lizhimins (via GitHub)" <gi...@apache.org>.
GitHub user lizhimins added a comment to the discussion: 共享分级存储进行扩缩容的操作疑问

整个方案可行,有一些建议
1. 可以根据 provider 的接口,按照特定的后端实现一下 file segment 和 metadata maneger,json 格式刷写的压力比较高
2. 如果要运行一个不带本地磁盘的分级存储,本地 broker 启动的时候有个 recover 位点的流程
3. 相比于 5.3.0 有一些 bugfix 在目前的 develop 分支上,可以参考一下

GitHub link: https://github.com/apache/rocketmq/discussions/8978#discussioncomment-11378874

----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org


Re: [D] 共享分级存储进行扩缩容的操作疑问 [rocketmq]

Posted by "ypg666 (via GitHub)" <gi...@apache.org>.
GitHub user ypg666 edited a discussion: 共享分级存储进行扩缩容的操作疑问

我对RocketMQ5的新特性分级存储很感兴趣。

我想实验一种场景:通过共享的分级存储,broker节点master0缩容下线后,新建立的节点master1完全接管master0已发送且未被消费的消息,继续被消费。

在实际过程中遇到一些问题:新建立的节点master1挂载了共享的分级存储,但无法消费到master0已发送未被消费的消息

我做了一些尝试:
1、原节点master0发送消息后下线,新节点master1使用master0的副本建立,brokerName这些配置都一致。挂载共享的分级存储,但挂载的本地存储store不同。
2、在1的基础,手动复制本地store中tieredStoreMetadata.json到新节点master1,依然无法消费到共享分级存储中master0的消息。
3、在1的基础,手动复制本地store中tieredStoreMetadata.json、topic.json到新节点master1,可以消费到原节点master0中分级存储的消息了。

想请教:
1、这种利用共享的分级存储实现扩缩容,新节点接管缩容节点的场景,是否存在一些对缩容节点本地store数据的依赖?具体的操作步骤是怎样的?比如需要转移本地存储中tieredStoreMetadata.json、topic.json等到新节点本地存储,并挂载共享的分级存储才可以实现接管缩容节点的分级存储数据?
2、如果是brokerName等配置都不同的新节点master1,是否无法实现接管原节点master0读取分级存储数据?如果可以,要如何操作?

另外,我的RocketMQ版本是5.3,测试是K8S的环境下,测试是通过mqadmin工具的produce和consume收发消息。

GitHub link: https://github.com/apache/rocketmq/discussions/8978

----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org