Go语言 戈朗Kafka河

4nkexdtk  于 2023-04-18  发布在  Go
关注(0)|答案(2)|浏览(100)

我正在尝试使用golang在Go中创建一个Kafka流客户端。据我所知,这只有在使用Java客户端时才可能实现。我做了一些搜索,发现了一些其他第三方库,但没有官方的。此外,从我有限的理解来看,我认为流是标准消费者的语法糖?这是正确的吗?

gc0ot86w

gc0ot86w1#

为了回答你这个问题,
另外,根据我有限的理解,我认为流是标准消费者的语法糖?这是正确的吗?
在实现异步微服务时,我们可以使用生产者消费者API,但这些API的级别太低,它们很好地理解了如何使用Kafka,但如果我们想要实现更复杂的应用,它们可能太低了。另外,在开发事件驱动应用时,当我们连接多个stage时,我们可能需要实现多级处理。在每个阶段,我们将从Kafka读取事件,处理它们,并写入输出主题。同样,使用生产者和消费者API将是相当多的工作。我们可以使用的更高级的解决方案之一称为Kafka StreamsKafka Streams是一个非常通用的库,支持无状态流处理,也支持有状态处理。

注意:如果您可以选择使用Go以外的语言,我强烈建议您使用Java来使用Kafka Streams。在此仅提一下,在过去的两年中,我们一直在使用Java来使用Kafka Streams,我们觉得Kafka Streams更像是一个Java库,而不是一个分布式系统。

qyzbxkaa

qyzbxkaa2#

当直接使用标准的Consumer和Producer时,它缺乏对以下内容的支持:

  • 流转换(聚合等)
  • 本地容错状态(kstreams使用RocksDB)

Goka [https://github.com/lovoo/goka]现在是一个相对活跃的支持Kafka流golang的项目。

相关问题