【问题标题】:Are there any .NET ESBs?是否有任何 .NET ESB?
【发布时间】:2010-12-01 13:45:33
【问题描述】:

ESB(企业服务总线)在企业 Java 世界中已经非常流行 - 但在 .NET 领域中是否有任何等价物?

【问题讨论】:

标签: .net esb


【解决方案1】:

您需要问自己的第一个问题是为什么需要 ESB?

ESB 通常用于 Event SOA 分布式架构中,这似乎是当今的热门词汇。在您进入 ESB 之前,让我提醒您 Martin 的 Fowler 分布式系统第一定律:

http://martinfowler.com/bliki/FirstLaw.html

“我的分布式对象设计第一定律:不要分发你的对象(来自 EAA 的 P)”

当您构建一个新系统时,最重要的一点是它是面向未来的,这意味着易于扩展和维护。如果您围绕具有静态定义合同的松散服务概念构建您的系统,分布在网络环境中,您可以“隐藏”该特定服务所需的架构,因为接口仍然存在。

ESB 与异步消息传递系统密切相关,因此在开始实施这种实现之前,要知道架构不必是同构的,即所有服务都以相同的方式实现,不要从最大的开始从一开始就分发系统的错误。您应该只在需要扩展时分发,而不是事先分发。但是,您需要确保的是,如果需要,您的服务能够轻松分发,而不会违反任何合同,这意味着对该服务的客户进行更改。

【讨论】:

    【解决方案2】:

    .NET 世界中的更多服务总线:

    大众运输 - https://github.com/masstransit/
    Rhino 服务总线 - http://hibernatingrhinos.com/open-source/rhino-service-bus

    【讨论】:

    • 我看到 Mike Hadlow 也在为 RabbitMQ 工作 EasyNetQ
    【解决方案3】:

    NServiceBus

    【讨论】:

    • 我认为应该不惜一切代价避免。
    • @Marco 好的。您愿意详细说明原因吗?
    • @Marco 所以,因为它不是免费的,所以应该不惜一切代价避免
    • 不仅如此,因为它还促使人们以错误的方式使用 ESB 语义。尽管 NServiceBus 称自己为 ESB 框架,但它并没有正确应用事件 SOA 原则,sagas 只是一个例子。 Sagas 应该用作命令的聚合,并且只发布事件,但 NServiceBus 实现允许 sagas 发送命令和发布事件的整体组合。
    • 除此之外,NServiceBus 不提供任何无法使用免费库堆栈轻松实现的东西,所有这些都使用标准 WCF 端点。
    猜你喜欢
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 2010-11-07
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    相关资源
    最近更新 更多