我是Golang的新手,我需要编写将事件发布到kafka的应用程序,我找不到以下问题的答案:
- 我需要多少 sarama.SyncProducer?
- 在所有应用程序中使用一个可以吗?我应该有某种生产者池吗?
除非您以比发布者发布它的速度高得多的速度发布数据(?),否则 sarama 发布者是异步和并发的,我会说您不需要多个发布者。因此,要直接回答您的问题:
这取决于您的应用程序的工作方式。在大多数情况下,一个生产者就足够了。它可以与许多主题进行交互...我让您阅读示例
是的,这非常好。您可以将生产者视为应用程序的出口。
但是,您应该使用异步生产者。如果我没记错的话,Sarama 是异步的。
SyncProducer
或AsyncProducer
返回连接到 sarama.Config 中定义的代理的生产者结构。
您只需要一个具有初始化配置的生产者结构来设置多个代理。
没有什么可以像一个生产者一样在所有应用程序中使用。唯一的问题是您可以使用相同的配置连接到相同的代理。因为如果有不同的应用程序,您需要创建一个具有类似配置的新生产者。