Rabbitmq .net实现的体系结构指南

sco*_*eep 8 c# architecture wcf rabbitmq

我正在寻找一些实施指南.使用wcf绑定或使用普通香草.net rabbitmq api的利弊是什么.是时候我们也不限制使用它们.我是兔子新手,但做了一捆wcf.

我们的产品可以从每个设备上的发布商处收集信息.该产品位于防火墙后面(目前).出版商需要3-4个频道.

  • 请求/响应以使用来自服务器的ack将服务器上的度量标准发布到服务器上.
  • 更新频道,以更新发布者规则库以从服务器发现度量标准.
  • 检查服务器的心跳频道已启动并响应服务器心跳.
  • 可能死信频道.

发布者将跨平台.考虑在Mono,Linux,BSD,Solaris,Android,MacOs,iOS以及可能的Aix/HP-UX上托管.不知道wcf端点在这些实例中的效果如何.

服务器将有多个工作人员,每个人都收到自己的相同消息?排队,确认并根据自己的规则库处理它.我希望工人能够被事件驱动.服务器需要高性能,每分钟10k到100k +消息.发布者与服务器之间不会丢失任何消息.

我正在转向使用简单的api,因为它提供了更多的灵活性,如线程/序列化/会话管理/安全/压缩等东西,但产品可能会被移动到Azure并作为SaaS或PaaS提供,并且拥有wcf端点会有意义在开/关窗口上与发布者交谈,但这将是长期的.

ist*_*iuk 0

软件架构是关于推迟决策,而不是提前做出决策。

随着项目的进展,您使用的绑定应该相对容易更改。由于它们是实现细节,因此在代码中定义清晰、简洁和简单的接口非常重要,因此您自己的这些服务代码取决于它的抽象(您定义的接口),而不是具体实现(代码使用绑定,并且代理使用 amqp 的事实)。

选择现在最有意义的实现(记住您迁移到 Azure 的计划),但不要与它结合。