NServiceBus教程-消息传递与处理
nservicebus”的容错默认”设计的一部分,基础设施管理事务自动所以你不需要记住所有的线程和状态管理要素配置。
客户端和服务器
理想情况下,服务器代码处理消息事务,但它往往不是客户所需,特别是桌面应用程序。这是一个之间的差异asa_client
和asa_server
设置的通用主机在nservicebus。
指定交易代码
如果你不使用通用的主机,您可以指定当前端点应处理消息事务设置istransactional(真的)。
后msmqtransport()。
(版本3)或usetransport < >(MSMQ)。
(版本4)。
覆盖系统。交易的默认超时10分钟,按照描述的步骤这篇博客。
分布式事务处理协调器
在Windows中,有一个操作系统级别的服务管理需要跨多个资源的交易直接转矩控制,如队列和数据库。这项服务并不总是正确的配置可能需要检修。下载一个工具叫dtcping帮助你发现如果一台机器可以访问在远程机的直接转矩控制。这个工具看起来像这样。
如果你得到一个错误指的是RPC终结点映射器,在命令提示符下,运行组件服务
。你应该看到屏幕下方的组件服务。
打开一些端口,通过右键单击“我的电脑”,将“默认协议”选项卡。从那里,选择“面向连接的TCP / IP”并单击“属性”按钮。在“性能COM网络服务”对话框中,检查端口范围包括“5000-6000”,如图所示:
如果端口列表为空,点击“添加……”按钮并输入 “5000-6000”对话框。你的屏幕看起来应该像上面的图片。你可能做不到1000个开放口岸,但这取决于机器的数量在DTC互相连接。
单击确定后,返回组件服务的屏幕,浏览到“本地DTC”节点的分布式事务协调器的文件夹,在右键单击,选择“属性”。在打开的对话框中,选择“安全”选项卡,如图所示:
确保你看到的性能与上述相同,重新启动计算机。
如果dtcping不工作,检查所需的防火墙中的端口是开放的。考虑删除防火墙中的例外和补充DTC再次确认。
如果给你一个寻找dtcping名称消息但没有达到,通过运行“ping计算机名”在命令提示符下做一个简单的平。如果机器不能达到的平,这可能是你有一个DNS的问题,可能需要您的网络管理员的帮助。
确保你完成所有的步骤,不只是连接到数据库服务器,而且在数据库服务器和。
最后,检查使用中的服务器的TCP端口,确保每一个不同的端口配置为双向通信。在这一点上,你应该能够运行事务nservicebus端点。
消息处理循环
信息如下在nservicebus加工:
- 队列是偷看,看看有没有消息。
- 如果是这样,一个分布式事务开始。
- 队列接收消息,再联系。这是因为多个线程可能从相同的消息。队列可以确保只有一个线程可以真正得到一个给定的消息。
- 如果线程能够得到它,nservicebus尝试反序列化消息。如果失败,消息移动到配置错误队列和事务提交。
一个成功的反序列化后,所有的基础设施和应用消息nservicebus调用模块和处理程序。在这一步异常导致事务回滚和消息返回到输入队列。
- 这是“maxretries”可配置次数。
- 在那之后,消息传来二级重试(SLR)。
- 如果在单反的错误仍然存在,该消息将被移动到配置错误队列。
在这种方式中,即使在各种故障情况下,如应用服务器重新启动的消息或数据库死锁中,信息不会丢失。
自动重试机制通常能够从暂时的问题恢复。如果这是不可能的,把消息传递到单反相机决定下一步做什么。
解决更多的永久性错误
在永久的错误会影响系统的情况下,尽管他们的多样性的解决方案是相同的,nservicebus。在描述它,让我们看到这些情况的例子:
- 数据库是。
- 一个内部或外部Web服务是下。
- 系统升级不小心,打破向后兼容性。
在以上所有,行政行为是必要的,从一些简单如建立数据库或Web服务,到更复杂的动作像恢复到以前的系统版本。
单反相机也有助于固定的错误决议。
这消息本身并没有错。它可能包含不迷失在这些条件下,有价值的信息。因此,管理员完成解决问题后,他们会回复邮件来自队列。幸运的是,有一个工具nservicebus确实。
returntosourcequeue.exe
你可以在你的下载目录nservicebus“工具”,找到这个工具。
管理员提供的错误队列他们想要使用,或者指定一个特定的消息ID返回到它的源队列,或所有返回给定误差每个排队到各自的源队列中的所有消息。
NServiceBus教程-消息传递与处理的更多相关文章
- NServiceBus教程-NServiceBus和WCF
WCF中缺少的最主要的事情是发布/订阅,但为什么你必须建立它自己吗?NServiceBus,你把它弄出来. 下一个重要的事情是容错.异常导致WCF代理休息,需要"刷新"的代码,但调 ...
- nservicebus教程-目录
表的内容 开始 坚持NServiceBus 扩展 每天 举办 管理和监控 发布订阅 长时间运行的流程 定制 版本控制 常见问题解答 样品 开始 概述 NServiceBus一步一步向导 架构原则 事务 ...
- NServiceBus教程-持久化配置
当配置在NServiceBus v5持久性,秩序是非常重要的.最后赢得持久性配置选项.我们看看一些例子. 示例1 在本例中最后一个配置选项将会覆盖前面的所有选项. v5.2 v5.0 编辑 var c ...
- NServiceBus教程-持久化
NServiceBus的各种特性需要持久性.其中有超时.传奇和订阅存储. 四个持久化技术在NServiceBus在使用: RavenDB nHibernate 内存中 MSMQ 读到安装Raven D ...
- 使用NServiceBus开发分布式应用
系列主题:基于消息的软件架构模型演变 NServiceBus 是一个.Net平台下开源的消息服务框架,这类产品有时也被称作ESB(Enterprise Service Bus)--企业服务总线.NSe ...
- SOA、ESB、NServiceBus、云计算 总结
SOA SOA 是通过功能组件化.服务化,来实现系统集成.解决信息孤岛,这是其主要目标.而更进一步则是实现更快响应业务的变化.更快推出新的应用系统.与此同时,SOA 还实现了整合资源,资源复用. SO ...
- UML基础与Rose建模实训教程
目 录 第1章 初识UML. 1 1.1 初识UML用例图... 1 1.2 初识UML类图... 3 第2章 Rational Rose工具... 6 2.1 安装与配置Rational Ro ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(七):解决用户上下文(Session)问题
从这篇文章中我们已经了解了微信公众平台消息传递的方式,这种方式有一个先天的缺陷:不同用户的请求都来自同一个微信服务器,这使得常规的Session无法使用(始终面对同一个请求对象,况且还有对方服务器Co ...
- JMS(Java消息服务)入门教程
什么是Java消息服务 Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建.发送.读取消息等,用于支持JAVA应用程序开发.在J2EE中 ...
随机推荐
- [Golang] base64加密与解密
首先解释以下什么是base64(来自百度百科): Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的详细规范.Base64 ...
- 在单机Hadoop上面增加Slave
之前的文章已经介绍了搭建单机Hadoop, HBase, Hive, Spark的方式:link 现在希望在单机的基础上,加一个slave. 首先需要加上信任关系,加信任关系的方式,见前一篇文章:li ...
- 使用jQuery插件PrintArea进行html页面打印
在开发系统时,我们一般会有统计分析的功能需求,而现在大多数系统都是使用B/S的形式开发. 所以,html报表打印,并且打印指定内容,成了必要的功能. 开源地址:https://github.com/R ...
- 转: sqlserver常用sql语句,更改字段,建立唯一键,多个字段去重复等
[sql] view plain copy print?在CODE上查看代码片派生到我的代码片 --修改字段类型: --alter table 表名 alter column 待修改字段名 待修改字段 ...
- 如何在Android studio中同时打开多个工程? (转载)
最近学习Android Studio,想同时打开两个Project.但是点击File->Open之后,原有的Project被关闭掉了.怎么在新的窗口中打开Project呢? 解决: 点击Help ...
- HDU 3537 (博弈 翻硬币) Daizhenyang's Coin
可以参考Thomas S. Ferguson的<Game Theory>,网上的博客大多也是根据这个翻译过来的,第五章讲了很多关于翻硬币的博弈. 这种博弈属于Mock Turtles,它的 ...
- 配置centos防火墙(iptables)开放80端口
#添加规则 /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT #保存 /etc/rc.d/init.d/iptables save
- linux shared lib 使用与编译
一. 动态链接库的原理及使用 Linux提供4个库函数.一个头文件dlfcn.h以及两个共享库(静态库libdl.a和动态库libdl.so)支持动态链接. Ø ...
- js的for in具有不适应性(转)
js中for in 可以遍历对象或数组的显性属性,也就是说我们自己定义的属性是可以遍历的,那些原型上默认已有的属性,例如:Object.prototype.toString.Object.protot ...
- BZOJ 1589 采集糖果
23333怎么调了一晚上.... #include<iostream> #include<cstdio> #include<cstring> #include< ...