全站最硬核 百万字强肝RocketMq源码 火热更新中~(四十二)
2022/1/24 22:06:51
本文主要是介绍全站最硬核 百万字强肝RocketMq源码 火热更新中~(四十二),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
如果资源路径包含namesapce,那么把namespace去掉
public static String wrapNamespace(String namespace, String resourceWithOutNamespace) {
当然也有反向的,除了去掉resource中的namespace外,还有给resource包上namespace
if (isRetryTopic(resourceWithOutNamespace)) { stringBuilder.append(MixAll.RETRY_GROUP_TOPIC_PREFIX); } if (isDLQTopic(resourceWithOutNamespace)) { stringBuilder.append(MixAll.DLQ_GROUP_TOPIC_PREFIX); } return stringBuilder.append(namespace).append(NAMESPACE_SEPARATOR).append(resourceWithoutRetryAndDLQ).toString();
基本是一样的,这里也可以看出来,Topic分RetryTopic,DLQTopic两大类
且namespace是以 % 做分割的
public static final String RETRY_GROUP_TOPIC_PREFIX = "%RETRY%"; public static final String DLQ_GROUP_TOPIC_PREFIX = "%DLQ%";
从MixAll工具类里,这一点也得到应征。
还有RetryTopic DLQTopic的判断方式:
public static boolean isRetryTopic(String resource) { return StringUtils.isNotBlank(resource) && resource.startsWith(MixAll.RETRY_GROUP_TOPIC_PREFIX); } public static boolean isDLQTopic(String resource) { return StringUtils.isNotBlank(resource) && resource.startsWith(MixAll.DLQ_GROUP_TOPIC_PREFIX); }
也就是该resource资源路径是
以RetryTopic 或者DLQTopic
开头的。
总结下namesapceutil
org.apache.rocketmq.common.protocol.NamespaceUtil
这个工具类,
它围绕namespace
提供了很多拼接,以及拆分的方法
比如把 资源路径中的 namespace 去掉
或者给 资源路径 包上namespace
回到ClientConfig类
public Set<String> withNamespace(Set<String> resourceSet) { Set<String> resourceWithNamespace = new HashSet<String>(); for (String resource : resourceSet) { resourceWithNamespace.add(withNamespace(resource)); } return resourceWithNamespace; } public String withoutNamespace(String resource) { return NamespaceUtil.withoutNamespace(resource, this.getNamespace()); } public Set<String> withoutNamespace(Set<String> resourceSet) { Set<String> resourceWithoutNamespace = new HashSet<String>(); for (String resource : resourceSet) { resourceWithoutNamespace.add(withoutNamespace(resource)); } return resourceWithoutNamespace; }
这篇关于全站最硬核 百万字强肝RocketMq源码 火热更新中~(四十二)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享