我的Golang应用程序中需要一个或多个sarama.SyncProducer吗?

时间:2019-02-01 11:47:04

标签: go sarama

我是Golang的新手,我需要编写将事件发布到kafka的应用,我无法找到以下问题的答案:

  1. 我需要多少个sarama.SyncProducer?
  2. 在所有应用程序中使用一个可以吗?我应该有某种生产者池吗?

3 个答案:

答案 0 :(得分:2)

除非sarama发布者为asynchronous and concurrent ,否则您获得的数据发布速度要比发布者可以发布的要高得多(?),我想说您不需要多个发布者。因此,直回答您的问题:

  1. 我会和一个人一起去,不知道您的要求。
  2. 是的。我想像它更可能是一个需要当然是给消费者一个游泳池,还有消息被公布率高。

答案 1 :(得分:1)

  1. 这取决于您的应用程序的工作方式。在大多数情况下,一个生产者就足够了。它可以与许多主题互动...我让您阅读example

  2. 是的,非常好。您可以将生产者视为应用程序的出口。

但是,您应该使用异步生产者。如果我没有记错的话,Sarama是异步的。

答案 2 :(得分:0)

SyncProducerAsyncProducer返回与sarama.Config中定义的代理连接的生产者结构。

  1. 我需要多少个sarama.SyncProducer?
  

您只需要一个具有初始化配置的生产者结构即可设置为多个代理。

  1. 在所有应用程序中使用一个可以吗?请给我一些 生产者池?
  

没有什么比一个生产者可用于所有应用程序更重要的了。唯一的是   您可以使用相同的配置连接到相同的代理。因为如果有其他应用程序,则需要创建具有类似配置的新生产者。