排队处理的优点

设计新应用程序时,开发人员必须考虑编码组件对实时(同步)处理与排队(异步)处理的影响。 选择取决于根据基础业务逻辑确定的特定应用程序的要求。 作为准则,排队处理比实时处理具有以下优势:

  • 减少了对组件可用性的依赖项
  • 较短的组件生存期
  • 使用断开连接的应用程序时工作效率不受干扰
  • 消息可靠性
  • 高效的服务器计划

组件可用性

在实时处理应用程序中,如果事务的一个组件不可用(可能是由于服务器重载或网络问题),则整个进程会受阻且无法完成。 相比之下,使用 COM+ 排队组件服务的应用程序将事务分为现在必须完成的活动以及稍后可以完成的活动。 例如,消息可以排队供以后处理,以便请求组件可供其他任务使用。

组件生存期

使用排队组件服务的应用程序允许服务器组件独立于客户端运行。 因此,服务器组件可以更快地完成。 在实时系统中,服务器组件从创建到最终释放对象为止一直存在。 服务器等待客户端进行方法调用并返回结果,从而取消服务器对象的快速循环并限制服务器可扩展性。

断开连接的应用程序

随着笔记本电脑、笔记本和掌上电脑的使用不断增加,这为应用程序创造了偶尔服务断开连接的客户端或移动用户的需求。 在排队的系统中,这些用户可以继续在断开连接或在未连接到服务器的情况下工作,并且以后可以连接到数据库或服务器来处理其请求。 例如,销售人员可以从客户处获取订单,然后联系货运部来处理这些订单。

如果有一个可以在连接或断开连接的状态下运行的组件,则消息会朝一个方向传输,并且很少需要来回切换。 例如,在订购情况下,运输组件接收并处理消息。 可能会生成另一个用于计费或审核的组件。 客户端在服务器启动之前提交。 在应用程序提交之前不会发送该消息。

下图显示断开连接情况下的信息流。

Diagram that shows teh flow of information between the client and server.

消息可靠性

消息队列是一款功能强大的工具,使用数据库技术来帮助以可靠的方式保护数据。 发生服务器故障时,消息队列可确保回滚事务,以便消息不会丢失,并且数据不会损坏。

服务器调度

使用排队组件的应用程序非常适合将非关键工作推迟到非高峰期的时移组件执行。 这是同样应用于传统批处理模式处理的有用概念。 服务器可以延迟类似的请求,以便连续执行,而不是要求服务器立即响应各种请求。