我即将建立一个新系统,我想要最大的可用性!我将不得不使用Windows!
我将让客户使用 Web 服务与我的系统交谈。我还将从周围的系统中获取数据。该数据使用消息传递、MQ 系列和 MSMQ 传递。系统将产生一些数据,这些数据使用队列发送回周围的系统。
新数据进入系统后,不同的进程将使用这些数据执行不同的任务,如打印、写入数据库等。
为了实现高可用性,我计划让系统的两个版本在两台不同的机器上并行运行。客户端将尝试使用第一个正确响应的服务器。我认为一个理想的方案是将来自两台服务器中任何一台的传入数据放在一个公共队列中(在第三台机器上?)。队列中的数据可以被两个服务器上的进程获取(想想生产者-消费者模式)。
我认为也许 NServiceBus会满足我的需求。根据上述,我有几个问题。
- 队列可以在两台服务器之间共享吗?如果服务器出现故障,我不希望数据卡在服务器上。在那种情况下,我希望其他服务器继续处理。
- 不同机器上的两个(或更多)“消费者”/进程能否从一个公共队列中挑选数据?
欢迎任何建议!