热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQLServer2005基于消息的利用程序先容

基于消息的利用程序并不是一个新概念,一直以来,从头编写这样的利用程序都相当艰苦。我将在一系列三篇文章中讨论一个建创新步消息利用程序的新平台,本文为第一篇,我将在其

基于消息的利用程序并不是一个新概念,一直以来,从头编写这样的利用程序都相当艰苦。我将在一系列三篇文章中讨论一个建创新步消息利用程序的新平台,本文为第一篇,我将在其中阐明基于消息的利用程序这一概念,以及一个建立包含在SQL Server 2005中的这些利用程序的新型基础程序。

基于消息的利用程序先容

处理消息的利用程序是大体上会成功的利用程序。实际上,大多数大型利用程序都利用了某种类型的消息处理。这种处理可能相当简略,例如,把一个文件放在网络共享中,以便另一个利用程序能够处理这个文件;之后,你就可以检查网络共享,看文件是否得到处理。

固然这不是一个非常复杂的消息利用程序,但其背后的概念是一样的:提交一条消息,利用程序履行其工作。然后,再检查看是否收到确认消息已得到处理的信息。这种处理方法拥有很多奇特的长处:

延期处理:有时候,要想在给定的时间处理某个任务的所有工作是不切实际的。很多时候,当你的利用程序能够处理的任务达到一个瓶颈点时,最好把剩下的任务交给另一个利用程序进行处理。

在线购置机票就属于这种情况。当你到一个网站购置机票时,你输进诸如出发城市、达到城市、旅行日期和随行乘客人数之类的信息。在你输进信用卡信息后,你将收到一封确认电子邮件。在后台,某种类型的消息已被提交给另一个履行恳求的服务进行处理。假如不能满足订票恳求,你收到的电子邮件就会阐明这一点。
这种处理的利益在于它减轻了后台数据库系统堵塞的压力。而且,假如请求顾客长时间等候网站的确认,大多数顾客都会感到非常不满。另外,假如所有处理任务都在一个单功效事务中完成,就可能产生严重的逝世锁情况,从而负面影响在网站上购置机票的顾客的购置体验。

散布式处理:一般来说,最好尽可能敏捷地处理一项任务。但是,有时候很难断定有多少待处理的任务、完成这些任务需要耗用多少资源。下面我们看一个这种处理的实例。

超市中有很多结账通道。通道的数目一般根据超市的资源来配备。有时,例如星期六下午,结账通道变得十分拥挤,顾客必需排队等候。只要超市的资源没有耗尽,超市就能分配更多收银员给顾客结账。这样既可加快结账速度,又不至于影响超市的总体运作。
同样的道理,消息利用程序也以类似的方法运作。假如你的利用程序布满了待处理的恳求,通常应当增加另外一条处理队列来缓解系统的总体处理压力。
微软消息队列

现在你可能已经领会到基于消息的利用程序带来的价值,你也许想知道为什么你没有经常听说这种利用程序。重要的原因在于,开发这种利用程序是一个非常艰苦的任务。假如你打算编写自己的基于消息的利用程序,你要用大部分时间来开发处理消息的基础架构。

好消息是,你不再需要开发自己的消息基础架构。微软消息队列(MSMQ)供给一个开发这类利用程序的框架。它使得利用程序可以在不同种类的网络间进行通信,并且需要保证消息传送(guaranteed message delivery)、路由和可配置安全。MSMQ利用程序一般在以Visual Basic、C#或C 编写的利用程序中开发,不过也可以用其它程序语言编写。这些利用程序在处理通常需要几步完成的任务时表现优良。这时,一个任务的每个步骤需要逻辑达到任务的下一个步骤,如一个业务工作流畅用程序。

数据库——不再只是用于存储数据

过往20年来,我们对关系数据库系统的依附程度明显增加。最初,存储数据并对数据进行某种处理,是建立贸易关系数据库系统的重要目标。随着关系数据库系统的发展,其功效和复杂性的变更,它的重要用处已由单一数据存储转变为更加主流的贸易智能目标、更加复杂的ETL处理、数据报告、数据通知;在SQL Server 2005中,它甚至已具备编写在数据库引擎中履行的.NET CLR语言代码的才能。因此,完整可以确定地说,数据库引擎已不再仅用于数据存储。

Service Broker

微软认为,答应你在数据库内建立基于消息的利用程序,这样才有意义。Service Broker是SQL Server 2005中新添加的基础程序,重要用于在数据库引擎内建立基于消息的利用程序。这些利用程序在数据库引擎内应用新的TSQL结构而开发。

Service Broker利用程序以疏松连接的利用程序而开发,它具有高度可扩大性,并供给其它消息平台所不具备的功效,如消息组和谐和锁定。这些利用程序充分支撑事务,并能够跨越数据库实例和服务器。




推荐阅读
  • mysql 分库分表策略_【数据库】分库分表策略
    关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多, ... [详细]
  • 应用程序配置详解
    本文介绍了配置文件的关键特性及其在不同场景下的应用,重点探讨了Machine.Config和Web.Config两种主要配置文件的用途和配置方法。文章还详细解释了如何利用XML格式的配置文件来调整应用程序的行为,包括自定义配置、错误处理、身份验证和授权设置。 ... [详细]
  • 解析程序员与软件工程师的角色差异
    本文深入探讨了程序员与软件工程师之间的主要区别,包括它们的职业定位、技能要求以及工作内容等方面的不同,旨在帮助读者更好地理解这两个角色的特点。 ... [详细]
  • 本文档详细介绍了服务器与应用系统迁移的策略与实施步骤。迁移不仅涉及数据的转移,还包括环境配置、应用兼容性测试等多个方面,旨在确保迁移过程的顺利进行及迁移后的系统稳定运行。 ... [详细]
  • 本文介绍了一种解决方案,当笔记本电脑不具备作为无线接入点的能力时,如何通过开启Android手机的便携WLAN热点功能,使笔记本能够连接到手机并共享其网络资源,从而实现上网。文中详细描述了在Linux系统下配置的具体步骤。 ... [详细]
  • 本文详细介绍了在Oracle Data Guard中配置Standby Redo Log的方法,包括其重要性和具体的配置步骤。通过本文的学习,您将能够掌握如何有效地设置Standby Redo Log以提高数据保护和系统可用性。 ... [详细]
  • 本文详细记录了《PHP与MySQL Web开发》第一章的学习心得,特别关注了PHP的基本构成元素、标记风格、编程注意事项及表单处理技巧等内容。 ... [详细]
  • 致信息安全爱好者的成长指南
    本文旨在为信息安全爱好者提供一份详尽的成长指南,涵盖从学习心态调整到具体技能提升的各个方面。 ... [详细]
  • 解决getallheaders函数导致的500错误及8种服务器性能优化策略
    本文探讨了解决getallheaders函数引起的服务器500错误的方法,并介绍八种有效的服务器性能优化技术,包括内存数据库的应用、Spark RDD的使用、缓存策略的实施、SSD的引入、数据库优化、IO模型的选择、多核处理策略以及分布式部署方案。 ... [详细]
  • 本文详细探讨了当前主流的两种系统架构——C/S(客户端/服务器)与B/S(浏览器/服务器)架构的特点、优缺点及未来的发展趋势。 ... [详细]
  • 本文深入探讨了Redis的快照持久化机制,包括其工作原理、配置方法以及如何手动触发快照。通过这种方式,Redis能够确保在服务器重启后数据的安全性和完整性。 ... [详细]
  • 本文详细解析了工业机器人控制柜内部的关键组件及其作用,包括轴计算机、安全面板、电容、驱动器、动力线、SMB线、跟踪板及外部轴上的电源装置等,旨在为读者提供全面的技术指导。 ... [详细]
  • 1、服务器配置信息① 主服务器IP:192.168.1.2② 从服务器IP:192.168.1.3③ 操作系统:主服务器:Win8,从服务器࿱ ... [详细]
  • 睿智汇海教育致力于培养杰出的IT专业人才,确保学员在就业市场上具备竞争力,助其实现职业成功。我们提供的C#/.Net/Asp.Net培训课程,旨在通过系统的教学和丰富的实践机会,帮助学员掌握最新的技术知识。 ... [详细]
  • 统一幻灯片标题:使用母版功能的技巧
    本文详细介绍了如何通过PowerPoint中的幻灯片母版功能,实现所有幻灯片标题的一致性设置。同时,提供了其他办公软件和编程相关的实用技巧。 ... [详细]
author-avatar
mobiledu2502861465
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有