【问题标题】:Logical Layer to connect multiple .Net Services连接多个 .Net 服务的逻辑层
【发布时间】:2015-07-28 04:24:43
【问题描述】:

我不确定这是否合适,但我提出了一个“概念性”模块化设计架构,将逻辑分离到单独的服务中,以实现几乎即插即用的场景,其中没有服务之间的依赖关系。考虑一个功能列表,只启用您想要的功能。

为了促进这一点,我意识到我需要某种类型的中间件,它将所有这些连接在一起并控制数据流。但是,我不确定实现这一目标的具体细节。

我计划使用基于 .NET soap 的服务来实现这些服务,那么这是使用像 Tibco 这样的服务的情况吗?

关于什么是最合适的,甚至从哪里开始寻找的任何建议都会很棒。

如果上面的描述没有意义,希望这张图片能更清楚地描述服务之间的关系。

谢谢。

【问题讨论】:

    标签: web-services architecture microservices


    【解决方案1】:

    根据您的需要,您可以使用 NServiceBus (http://particular.net/nservicebus)。 NServiceBus 是一种通信中间件,可用于不同类型的队列系统,如 MSMQ、RabbitMQ 等。它本质上是一个对开发人员非常友好且专注的服务总线。它不仅促进了基于异步消息的分布式通信,而且:

    • 使用自动注册与传输无关的发布/订阅
    • 传输:可与 MSMQ、RabbitMQ、Azure 存储队列等一起使用。
    • 安全性:支持消息加密
    • BLOB:支持通过数据总线透明地存储大型消息有效负载,以允许通信消息大于传输允许的大小。
    • 可扩展性:向外和向上扩展以提高吞吐量
    • 可靠性:重复数据删除、幂等处理,无需分布式事务。
    • 编排:Sagas 可以帮助控制消息流和路由。
    • 异常处理:异常会在两个不同的阶段自动重试。
    • 监控:Service Pulse、Service Insight 和 Windows 性能监控器等工具用于监控性能和错误。查看发生了什么错误并
    • 序列化:可以使用支持xml、json、二进制等格式的不同序列化器
    • 开源:所有源代码均可用
    • 审核:可以将所有已处理的消息移至审核队列,以满足存档或审核要求
    • 社区:拥有庞大的开发者社区,他们在论坛上很活跃,但也提供额外的传输、序列化程序和其他功能。

    我必须提到我为 Particular 工作,但还有其他选择需要考虑。 NServiceBus 不使用 SOAP 进行消息交换,而是使用一种轻量级消息,采用序列化项目符号中提到的选择格式。它可以与需要 SOAP 的服务集成。它能够将服务(端点)公开为 WCF 服务以便于集成,并且可以使用 .net 框架和 Visual Studio 提供的功能从代码中使用 SOAP 来调用外部 SOAP 服务。

    祝您好运,为您的项目选择正确的技术。

    【讨论】:

      猜你喜欢
      • 2023-04-10
      • 2012-03-14
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-12
      • 2011-07-21
      • 2010-12-18
      相关资源
      最近更新 更多