【问题标题】:Dependency Injection in Distributed System分布式系统中的依赖注入
【发布时间】:2011-08-11 10:50:24
【问题描述】:

您如何在分布式系统中实现 DI,因为您无法为每个分布式组件嵌入整个 DI 框架。

【问题讨论】:

    标签: c# java .net frameworks dependency-injection


    【解决方案1】:

    在分布式系统中,每个自治组件本身就是一个单独的应用程序,因此应该有每个自己的 Composition Root 用于连接组件。如果使用 DI 容器,则应使用 Register Resolve Release 模式。

    由于每个组件本身就是一个应用程序,它们甚至不必使用同一个容器(甚至是同一个平台)。

    【讨论】:

      【解决方案2】:

      好吧,如果您愿意,可以将 DI 平台与每个组件一起分发。一些平台集成了 DI,因此您可以或多或少地将其作为平台的一项功能。

      但是,更好的想法是使用平台而不是依赖注入。将方法调用分配给其他分布式组件,您可以在设计中获得可扩展性(尽管您可能会损失性能)和简单性。

      【讨论】:

      • 哪些平台集成了DI?
      • 我在 GigaSpaces Technologies (gigaspaces.com) 工作,我们的旗舰产品集成了 Spring。 SpringSource(和母公司 VMWare)也有一个支持类似概念的分布式平台。
      【解决方案3】:

      好吧,如果 DI 框架不存在,那么如果它不存在,您就不能很好地直接/间接引用它...如果您希望在分布式组件中使用 DI,它必须在本地可用,因为远程 DI 不会感觉服务本身通常是不可序列化的,因为这个概念没有意义。

      【讨论】:

      • 为什么没有意义?组件本身可以具有子组件的体系结构,因此将具有依赖关系。为什么 DI 没有意义?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多