0

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

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

我计划使用基于.NET soap 的服务来实现服务,那么这是使用Tibco 之类的例子吗?

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

在此处输入图像描述

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

谢谢。

4

1 回答 1

0

根据您的需要,您可以使用 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 服务。

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

于 2015-05-19T18:36:14.913 回答