【问题标题】:Difference between TopicAdminClient and Publisher when publishing message发布消息时 TopicAdminClient 和 Publisher 的区别
【发布时间】:2022-01-02 18:29:28
【问题描述】:

我浏览了 Google Java Docs,发现当我们想向 PubSub 发布消息时,两个类都可以做同样的事情(我们可以配置重试设置、批处理设置、端点等)。

我想知道何时使用 TopicAdminClient 而不是 Publisher,反之亦然,如果我们使用任何特定类,我们是否有任何性能优势

更具体地说,除了下面的评论之外,当我们要发布消息时,这两个类之间是否有任何显着差异?

与特定主题相关联的 Cloud Pub/Sub 发布者 创作

【问题讨论】:

    标签: google-cloud-platform google-cloud-pubsub


    【解决方案1】:

    开源的神奇之处,您可以阅读代码并发表自己的意见。

    如果您比较 PublisherTopicAdminClient 类,您会立即看到差异。

    Publisher 专门用于发布消息。好的,带有默认参数的原始消息,但您也可以微调流控制以更好地优化与 PubSub 的通信。

    TopicAdminClient 专门处理主题:创建、更新、删除。并且还大致发布了一条消息。这里没有流控制:获取消息并发布它。


    现在,对于您的问题,完美的答案一如既往地是“视情况而定!”。

    • 如果只使用 publish 方法发布带有默认参数的消息,两者没有区别。
    • 但是,如果您开始使用流控制并更改默认参数,您可以在 2 个类之间获得不同的性能(更好或更差!!)

    【讨论】:

    • 在 TopicAdminClient 中我们也可以设置 FlowController 设置,我是不是在这里遗漏了什么?
    • 如果是这样,我想念那部分!
    • 使用默认参数发布不会使PublisherTopicAdminClient 的发布相同。 Publisher 类默认进行批处理和异步发送消息。 TopicAdminClient 中的发布方法只是将每个发布调用直接代理到服务器。我不知道TopicAdminClient 中存在FlowController
    • 嗨@KamalAboul-Hosn - TopicAdminClientTopicAdminSettings 作为create 方法中的参数,如here 所示。 TopicAdminSetting 有一个 publishSetting 显示的方法 here
    猜你喜欢
    • 1970-01-01
    • 2021-01-10
    • 2017-03-05
    • 2018-10-08
    • 2012-03-20
    • 1970-01-01
    • 2021-08-27
    • 2021-04-10
    • 1970-01-01
    相关资源
    最近更新 更多