WCF中缺少的最主要的事情是发布/订阅,但为什么你必须建立它自己吗?NServiceBus,你把它弄出来。

下一个重要的事情是容错。异常导致WCF代理休息,需要“刷新”的代码,但调用数据容易被丢失。NServiceBus提供完整的系统回滚。不仅您的数据库保持一致,但是你的消息返回队列和不丢失有价值的数据。

对纯MSMQ

无论你是看MSMQ绑定对MSMQ WCF或直接编程,在这两种情况下,你必须处理pub / sub和所需的事务和异常管理完整的容错。你也必须处理与MSMQ长时间运行的流程。这就是一个CIO说:

我不得不说:NServiceBus是令人难以置信的产品,我只希望有更多的文档——我们看到它被使用在很多地方在我们自己的软件(不只是排队处理,这正是我们现在正试图迅速补丁),正在我们的新方向。我们工作在一个WCF方法45天,直到我们就把它扔了,用NServiceBus取代了一切,它工作在7工作日@ 99.99%。谢谢你创建这个伟大的框架。“Karell Ste-Marie,BrainBank Inc .的首席信息官

长时间运行的流程

WCF与WF提供一个集成的能力称为耐用的服务。WF提供了状态管理设施,钩到WCF提供的通信设施。不幸的是,事务和异常边界不指定的基础设施。

除非开发人员非常小心他们如何连接工作流活动,事务作用域,和通信活动,流程状态可以损坏,接触到远程服务和客户端。这是可能的原因之一是,WF被设计为一个通用的工作流引擎,而不是专门为长时间运行的流程。

因为常规业务逻辑很简单,自己足够稳定,NServiceBus是专门设计用于���理长时间运行的流程,所以他们是健壮和可伸缩的默认情况下,不需要开发人员做任何特殊的配置。

事务是在消息令牌基础上自动处理和固有的跨越所有通信和状态管理工作通过一个端点。异常会导致所有的工作要做,包括发送任何消息,因此远程服务和客户不接触不一致的数据。

互操作性

你可以公开NServiceBus端点为WCF服务只需一行代码和WCF的标准配置。所有你需要做的就是写一个空类,从NServiceBus继承。WcfService,指定类型的请求和响应,和NServiceBus的休息,如下:

public class MyService : NServiceBus.WcfService { }

NServiceBus,你从WCF获得你所需要的功能,如互操作性,没有放弃消息传递的可靠性和可伸缩性。

NServiceBus教程-NServiceBus和WCF的更多相关文章

  1. nservicebus教程-目录

    表的内容 开始 坚持NServiceBus 扩展 每天 举办 管理和监控 发布订阅 长时间运行的流程 定制 版本控制 常见问题解答 样品 开始 概述 NServiceBus一步一步向导 架构原则 事务 ...

  2. NServiceBus教程-持久化配置

    当配置在NServiceBus v5持久性,秩序是非常重要的.最后赢得持久性配置选项.我们看看一些例子. 示例1 在本例中最后一个配置选项将会覆盖前面的所有选项. v5.2 v5.0 编辑 var c ...

  3. NServiceBus教程-持久化

    NServiceBus的各种特性需要持久性.其中有超时.传奇和订阅存储. 四个持久化技术在NServiceBus在使用: RavenDB nHibernate 内存中 MSMQ 读到安装Raven D ...

  4. NServiceBus教程-消息传递与处理

    nservicebus"的容错默认"设计的一部分,基础设施管理事务自动所以你不需要记住所有的线程和状态管理要素配置. 客户端和服务器 理想情况下,服务器代码处理消息事务,但它往往不 ...

  5. WCF基础教程——vs2013创建wcf应用程序

    引言   近期在项目中见到了师哥们常常谈到的WCF这方面的知识.当时在写程序的时候也没有理解wcf究竟是个什么东西? 以及我们为什么在项目中会採用这种框架来实现,仅仅是依照师哥他们写好的代码编写同样格 ...

  6. WCF系列教程之初识WCF

    本随笔参考自WCF编程系列(一)初识WCF,纯属读书笔记,加深记忆. 1.简介:Windows Communication Foundation(WCF)是微软为构建面向服务的应用程序所提供的统一编程 ...

  7. 使用NServiceBus开发分布式应用

    系列主题:基于消息的软件架构模型演变 NServiceBus 是一个.Net平台下开源的消息服务框架,这类产品有时也被称作ESB(Enterprise Service Bus)--企业服务总线.NSe ...

  8. SOA、ESB、NServiceBus、云计算 总结

    SOA SOA 是通过功能组件化.服务化,来实现系统集成.解决信息孤岛,这是其主要目标.而更进一步则是实现更快响应业务的变化.更快推出新的应用系统.与此同时,SOA 还实现了整合资源,资源复用. SO ...

  9. NServiceBus开发

    使用NServiceBus开发分布式应用 系列主题:基于消息的软件架构模型演变 NServiceBus 是一个.Net平台下开源的消息服务框架,这类产品有时也被称作ESB(Enterprise Ser ...

随机推荐

  1. [POJ2777]Count Color(线段树)

    题目链接:http://poj.org/problem?id=2777 给你一个长为L想线段,向上面染色,颜色不超过30种,一共有O次操作,操作有两种: C a b c 在[a,b]上染上c颜色 P ...

  2. 二、理解over()函数

    1.1.两个order by的执行时机分析函数是在整个sql查询结束后(sql语句中的order by的执行比较特殊)再进行的操作, 也就是说sql语句中的order by也会影响分析函数的执行结果: ...

  3. Python3 学习第九弹: 模块学习二之文件管理模块

    os模块 提供访问操作系统的接口 1> name 获得当前操作系统 其中 'nt' 是 windows 'posix' 是 linux 2> environ 获得当前系统的环境变量的字典, ...

  4. NHibernate 二级缓冲

    session.CreateCriteria(typeof(SysModuleFields)).SetCacheable(true).List<SysModuleFields>(); se ...

  5. HDU 3544 (不平等博弈) Alice's Game

    切巧克力的游戏,想得还是不是太明白. 后者会尽量选前着切后其中小的一块来切,那么先手须尽量取中间来切. So?题解都是这么一句话,不知道是真懂了还是从别人那抄过来的. 后来找到一个官方题解,分析得比较 ...

  6. HDU 2512 一卡通大冒险

    我感觉这更像个数学问题. dp[i][j]表示将i件物品分成j组的方案数. 状态转移方程: dp[i][j] = dp[i-1][j-1] + j * dp[i-1][j]; 将i张卡分成j组可以有之 ...

  7. 51nod1084 矩阵取数问题 V2

    O(n4)->O(n3)妈呀为什么跑这么慢woc #include<cstdio> #include<cstring> #include<cctype> #i ...

  8. [转载]initwithcoder和 initwithframe

    大前提是UIViewController有一个UIView.同时,需要厘清两个概念,创建一个类和实例化一个类.在XCode中创建一个类和实例化一个类很容易区分,但是在IB(Interface Buil ...

  9. 点分十进制IP校验、转换,掩码校验

    /***************************************************************************** * 点分十进制IP校验.转换,掩码校验 * ...

  10. (四)Logistic Regression

    1 线性回归 回归就是对已知公式的未知参数进行估计.线性回归就是对于多维空间中的样本点,用特征的线性组合去拟合空间中点的分布和轨迹,比如已知公式是y=a∗x+b,未知参数是a和b,利用多真实的(x,y ...