当前位置: 首页 > 知识库问答 >
问题:

如何清除消息集线器主题?

澹台星光
2023-03-14

在使用MessageHub进行开发时,我经常会发现我想从一个主题中清除我的开发数据。

如何清除MessageHub主题?

共有1个答案

厉钊
2023-03-14

从Message Hub中清除Kafka主题的唯一方法是删除并重新创建该主题。您可以使用Message Hub服务提供的Web UI手动执行此操作。或者,您可以使用REST API来管理Kafka主题。使用REST API的优点是可以编写脚本。

Message Hub REST API在Swagger中的文档如下:https://github.com/ibm-messaging/message-hub-docs/blob/master/kafka-administration-api/kafkatopicmanagement.yaml。如果你不是一个大摇大摆的大师,那么剩下要删除的调用是:

POST /admin/topics/<TOPICNAME>

您需要使用x-auth-token头指定消息集线器API密钥(来自VCAP_SERVICES),以验证请求。因此curl实现示例如下所示:

curl -k -v -X DELETE -H 'Content-Type: application/json' -H 'Accept: */*' \
    -H 'X-Auth-Token: yourapikeyhere' \                                          
    https://admin-endpoint-goes-here/admin/topics/<TOPICNAME>

Kafaka主题删除是异步的。因此,在重新创建主题之前,您需要确保原始主题的删除过程已经完成。这可以通过轮询以下endpoint直到它返回404(未找到)状态代码来实现:

GET /topics/<TOPICNAME>

x-auth-token头必须同样存在)。卷曲:

curl -k -v -H -H 'Accept: application/json' \
    -H 'X-Auth-Token: yourapikeyhere' \
    https://admin-endpoint-goes-here/topics/<TOPICNAME>

要(重新)创建主题,需要以下REST请求(还需要x-auth-token):

POST /admin/topics
{                                                                                
  "name": "TOPICNAME",                                                        
  "partitions": 2                                                                
}

在curl中,这将是:

curl -k -v -H 'Content-Type: application/json' -H 'Accept: */*' \
    -H 'X-Auth-Token: yourapikeyhere' \
    -d '{ "name": "TOPICNAME", "partitions": 2 }' \
    https://admin-endpoint-goes-here/admin/topics
 类似资料:
  • 如何从weblogic JMS队列中清除/删除消息 我的是一个集群环境,在服务中使用。 获取以下异常。

  • 是否需要删除/清除Azure门户中Azure服务总线队列中的活动/死信消息?目前,我们已经向队列发送了几条消息,而活动消息和一些死信消息都无缘无故地保留在那里,并且我们的服务总线用户没有以某种方式触发,因此我们希望删除这些消息,以使队列再次干净。为了等到服务总线在过期后丢弃这些消息,我们可以自己手动删除它们吗?

  • 增加在这里并不理想,因为我实际上并不想接受那么大的消息。

  • 我写了一份火花工作。这项工作进展顺利,没有任何问题。然而,当我查看我的错误日志文件时,我看到了许多类型为 不确定为什么spark会将这些报告为错误。当它们看起来像某种调试消息时。

  • 我们设置了几个ActiveMQ Artemis 2.17.0集群,以便在数据中心之间使用镜像进行复制。 在ActiveMQ Artemis 2.17.0或更高版本中有什么方法可以实现这一点吗?

  • 我使用Drupal 7最新的开发版本。 我已经安装了清漆和过期模块并设置它们。它们工作得很好,但是我有一个关于从清漆中删除缓存的问题。 问题是如何只删除索引(主页)页面的清漆缓存,而不删除其他页面的缓存。我看了清漆日志,发现每次Drupal执行命令时,整个清漆缓存都被删除了 此命令由varnish模块或expire模块执行,它表示删除主页(索引)页的缓存。但正如我看到的,它正在删除varnish中