我正在寻找一些实施指南。使用wcf绑定或使用普通香草.net rabbitmq api的利弊是什么。是时候我们也不限制使用它们。我是兔子新手,但做了一捆wcf。
我们有一款产品可以从每台设备上的发布商那里收集信息。该产品位于防火墙后面(目前)。出版商需要3-4个频道。
Publisher将是跨平台的。考虑在Mono,Linux,BSD,Solaris,Android,MacOs,iOS以及可能的Aix / HP-UX上托管。不知道wcf端点在这些实例中的效果如何。
服务器将拥有多个工作人员,每个工作人员都会收到相同的消息?排队,确认并根据自己的规则库处理它。我希望工人能够被事件驱动。服务器需要高性能,每分钟10k到100k +消息。发布者与服务器之间不会丢失任何消息。
我正在转向使用普通api,因为它提供了更多的灵活性,如线程/序列化/会话管理/安全/压缩,但产品可能会移动到Azure并作为SaaS或PaaS提供,并具有wcf端点在开/关窗口上与发布者交谈是有意义的,但这将是长期的。
答案 0 :(得分:0)
软件架构是关于推迟决策,而不是提前做出决策。
随着项目的进展,您使用的绑定应该相对容易更改。由于它们是实现细节,因此在代码中定义清晰、简洁和简单的接口很重要,因此您自己的这些服务代码取决于它的抽象(您定义的接口),而不是具体的实现(代码使用绑定,以及代理使用 amqp 的事实)。
选择现在最有意义的实现(记住您迁移到 Azure 的计划),但不要与之结合。