微服务架构模式

时间:2021-01-16 20:07:10

标签: apache-kafka microservices vert.x quarkus

我有一个微服务架构,其日志必须发送到远程 Kafka 主题。 在它旁边,这个主题的消费者将把日志发送到一个 ELK 堆栈(另一个团队)

我想要一个专门的微服务 (fwk-proxy-elasticsearch),它的职责是从其他人那里收集日志并将它们发送到远程 kafka 主题。

将从我的微服务聚合的所有日志分派到 fwk-proxy-elasticsearch 微服务的最佳协议是什么?

我希望这个模式不会重复远程 kafka 主题的安全配置。我想把它集中在一个地方。

我可以为此使用 vertx 事件总线吗?还是 kafka 更好?或其他工具? 我可以使用 vertx 将消息从 jvm 发送到 jvm 吗?

此外,在微服务架构中,将用例集中在专用微服务中是一种好的模式吗? (例如远程 http 连接) 在我看来,它允许业务微服务专注于业务问题,而不必担心必须发送结果的协议。

谢谢!

1 个答案:

答案 0 :(得分:0)

我相信您可以同时使用 Vert.x 事件总线和 Kafka 来传播日志,每种方法各有利弊。

虽然我理解此决定背后的原因,但我仍会考虑为此目的构建的专用解决方案,例如 Fluentd,它能够聚合日志并将它们推送到多个来源(包括 Kafka,通过专用plugin)。我确定还有其他类似的解决方案。

如果您使用专用解决方案而不是自己构建它,我认为有几个重要的好处:

  • 可配置级别,这在未来绝对有用(在专用解决方案中,每次想要构建新东西时都需要编写代码)
  • 可以导出日志的目的地数量
  • 支持混合架构 - 通过一些配置更新,您将能够从非 JVM 微服务中获取日志