【问题标题】:kafka + storm topology vs microserviceskafka + Storm 拓扑 vs 微服务
【发布时间】:2016-08-11 16:05:37
【问题描述】:

当可以使用直接连接到 kafka 的微服务时,使用风暴拓扑有什么好处。微服务方法似乎为以下方面提供了更好的解决方案:

  • 工具(所有可能的库、IoC 容器等)
  • 持续部署(现有工具和最佳实践)

虽然风暴拓扑似乎使用需要静态函数的普通 java。

那么使用风暴拓扑而不是微服务有什么好处?

【问题讨论】:

  • 你没有真正提到你想要实现的用例。与 Apache Storm 相比,微服务是一个更通用的术语。 Apache Storm 是专门用于数据处理的特定软件,更具体地说是“流式处理”。您可以在技术上实现 Apache Storm 可以通过微服务实现的功能以及更多功能,但反之亦然。

标签: java apache-kafka apache-storm microservices


【解决方案1】:

这与单片与微内核设计的论点非常相似。在单片内核中,只有一个地址空间。 Storm 有点像——你必须使用他们特定的 API 才能使用 Storm 中的服务。如果您使用 Java 或受支持的 API,那么您很幸运。同样,这就像一个内核库——您查看内核为您提供的 API,然后您就可以使用它。

使用微内核,内核所做的只是传递消息。这就像卡夫卡。它只是一个消息传递架构。任何进程都可以参与集群,只要它可以发送适当结构化的消息。

就像单片内核与微内核一样,它归结为您的设计目标和个人理念之间的相互作用。我的论点是,你可以通过微服务构建一个类似 Storm 的架构,但这比使用开箱即用的 Storm 需要更多的工作。一个相关的论点是你无法通过 Storm 构建微服务架构。

【讨论】:

  • 所以基本上,你说storm的好处是简单?我同意从头开始一次性构建和部署拓扑将比微服务更快。我只是不确定是否将其用作长期生产就绪工具。没有 IoC 等监控,连接线程池到其他服务?
【解决方案2】:

可扩展性和弹性 - 使用微服务架构,您必须为可扩展的弹性架构提供自己的模式。你说你可以通过“更多的工作”自己构建它们,这是真的,但是分布式系统很难,所以最后你有时间和资源吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多