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

用于运行一组具有不同配置的容器的体系结构,以便与 kafka 进行交互

苗冯浩
2023-03-14

我正在寻找一些关于如何构建基于kubernetes的应用程序的建议。我有一些数据生产者,他们从文件中读取数据,并根据数据的逻辑分离将其放入具有数百个分区的kafka主题中。然后我有一些消费者正在从这些kafka分区读取数据。一个生产者可能会写入多个分区,但一个消费者只会从一个分区读取。一旦文件被处理,生产者应该完成,但消费者应该永远在其分区上监听新数据。我已经为生产者和消费者创建了单独的pod,但是我想知道现在如何最好地组织我的部署,以便我可以整体部署这些pod。生产者摄取的文件和分配给消费者的分区当前作为参数提供。

因此,我希望能够做的是提供一个文件列表,kubernetes将创建(如果它们崩溃,则重新创建)足够的生产者来处理这些文件。我还希望能够指定一组分区,并让 kubernetes 为每个分区创建一个 pod。我看到很多文档用例,其中服务中的 pod 都是相同且可互换的,但关于每个 pod 具有不同配置和可能的角色的服务的讨论并不多。提前致谢。

共有1个答案

钱元徽
2023-03-14

在我看来,问题中提到的设计不适合Kubernetes架构。根据你的问题,最终你会有数百个不同的豆荚,很难管理,也无法缩小。

我认为,它应该与AWS lambda或其他无服务器方法一起工作得更好。解决方案设计可能会有问题,但结果会花费您更少的钱,并且更容易预测和管理。

作为替代方法,您可以使用作业或 CronJobs 定期使用来自 Kafka 服务的数据。

 类似资料:
  • 我有两个应用程序在同一台服务器上运行。一个是c应用程序,另一个是运行在vertx上的java web服务器。Web服务器希望向C部件发送请求并获得响应。ZeroMq似乎是一个执行进程间通信的解决方案。它是通往vertx的桥梁(https://github.com/dano/vertx-zeromq),但没有那么好的记录。 我想知道我认为这座桥能做些什么: C zeroMq socket type是

  • 问题内容: 我对在x86主机上为ARM目标交叉编译Linux内核感兴趣。您推荐一些好的做法吗?您认为哪个是最好的交叉编译套件?您是否建立了自定义的交叉编译环境?如果是,您有什么建议?这是个好主意吗? 问题答案: 我为ARM / Linux工具使用了两种方法。最简单的方法是直接下载预构建的工具链。 优点 :它可以正常工作,您可以继续进行项目中有趣的部分。 缺点 :您选择了他们所选择的gcc / bi

  • 问题内容: 我建立了一个kafka docker容器并使用docker-compose对其进行编排。 打电话给我下面的putput: 我可以从docker容器内部运行生产者和使用者,但是不能在docker网络外部运行。 例如 : 我在本地主机上运行kafka生产者,出现以下错误: 这是我在github上的kafka docker示例,其中包含上述问题。 那么,有人遇到同样的问题并且可以以任何方式帮

  • 问题内容: 我试图用来创建我的,以确保我的构建/项目的质量。该项目也需要使用和。一切在我的本地计算机上都可以正常运行,但是现在我正在尝试使环境一致,可重现。当我尝试在新的虚拟机中运行时,会中断一个在本机中正常运行但 不在 新vm中运行的。 我检查了版本,,,(其)一切都是一样的。但是,我的Maven项目在此测试中失败了。 我在这里想念什么?任何想法,建议都会受到赞赏,因为我现在还没有想法,到目前为

  • 我有一个YAML文件,我转换成JSON,然后使用GSONJava对象。这将被用作标准定义,我将与其他YAML文件进行比较。我将要验证的YAML文件应该包含与我的定义具有相同结构的字段。然而,它很有可能包含具有不同结构的字段,以及在我的定义中不存在的字段,因为最终由用户在我接收文件之前创建这些字段。要验证的YAML中的字段可以是这样的,可以选择用户希望定义的嵌套级别。 目前,我收到这个YAML文件,

  • 有人知道MSBuild的SonarQube扫描器是作为构建的一部分进行扫描并只将结果发回给SonarQube,还是EXE正在检测,我们可以将工件发送到Linux机器上的SonarQube进行分析,类似于使用sonar-scanner-cli扫描java工件的方式?