逻辑层连接多个.Net服务

时间:2015-05-16 07:49:15

标签: web-services architecture microservices

我不确定这是否适合这个,但我想出了一个"概念"模块化设计架构将逻辑分离为单个服务,以允许几乎即插即用的场景,从而在服务之间不存在依赖关系。想一个功能列表,只启用你想要的功能。

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

我计划使用基于.NET soap的服务来实现服务,所以这是使用像Tibco这样的东西吗?

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

enter image description here

如果以上描述没有意义,希望这张图片在描述服务之间的关系时更清楚一些。

感谢。

1 个答案:

答案 0 :(得分:0)

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

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

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

祝你为项目选择合适的技术。