nservicebus”的容错默认”设计的一部分,基础设施管理事务自动所以你不需要记住所有的线程和状态管理要素配置。

客户端和服务器

理想情况下,服务器代码处理消息事务,但它往往不是客户所需,特别是桌面应用程序。这是一个之间的差异asa_clientasa_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加工:

  1. 队列是偷看,看看有没有消息。
  2. 如果是这样,一个分布式事务开始。
  3. 队列接收消息,再联系。这是因为多个线程可能从相同的消息。队列可以确保只有一个线程可以真正得到一个给定的消息。
  4. 如果线程能够得到它,nservicebus尝试反序列化消息。如果失败,消息移动到配置错误队列和事务提交。
  5. 一个成功的反序列化后,所有的基础设施和应用消息nservicebus调用模块和处理程序。在这一步异常导致事务回滚和消息返回到输入队列。

    • 这是“maxretries”可配置次数。
    • 在那之后,消息传来二级重试(SLR)。
    • 如果在单反的错误仍然存在,该消息将被移动到配置错误队列。

在这种方式中,即使在各种故障情况下,如应用服务器重新启动的消息或数据库死锁中,信息不会丢失。

自动重试机制通常能够从暂时的问题恢复。如果这是不可能的,把消息传递到单反相机决定下一步做什么。

解决更多的永久性错误

在永久的错误会影响系统的情况下,尽管他们的多样性的解决方案是相同的,nservicebus。在描述它,让我们看到这些情况的例子:

  • 数据库是。
  • 一个内部或外部Web服务是下。
  • 系统升级不小心,打破向后兼容性。

在以上所有,行政行为是必要的,从一些简单如建立数据库或Web服务,到更复杂的动作像恢复到以前的系统版本。

单反相机也有助于固定的错误决议。

这消息本身并没有错。它可能包含不迷失在这些条件下,有价值的信息。因此,管理员完成解决问题后,他们会回复邮件来自队列。幸运的是,有一个工具nservicebus确实。

returntosourcequeue.exe

你可以在你的下载目录nservicebus“工具”,找到这个工具。

管理员提供的错误队列他们想要使用,或者指定一个特定的消息ID返回到它的源队列,或所有返回给定误差每个排队到各自的源队列中的所有消息。

转载于:https://www.cnblogs.com/powerxu/p/4294268.html

NServiceBus教程-消息传递与处理相关推荐

  1. springboot接收文件_SpringBoot2.x系列教程61--SpringBoot整合MQ之ActiveMQ实现消息传递

    SpringBoot2.x系列教程61--SpringBoot整合消息队列之ActiveMQ代码实现消息传递 作者:一一哥 我在上一章节中,给大家介绍了ActiveMQ,本节中我会介绍Spring B ...

  2. GNU Radio教程 8.消息传递

    Message Passing 内容: 1   介绍 2   消息传递 API 2.1 消息处理函数 2.2 通过流程图连接消息 3   从外部来源发布         Posting from Ex ...

  3. php rabbmq教程_RabbitMQ+PHP 教程一(Hello World)

    介绍 RabbitMQ是一个消息代理器:它接受和转发消息.你可以把它当作一个邮局:当你把邮件放在信箱里时,你可以肯定邮差先生最终会把邮件送到你的收件人那里.在这个比喻中,RabbitMQ就是这里的邮箱 ...

  4. storm入门教程 第一章 前言[转]

    1.1   实时流计算 互联网从诞生的第一时间起,对世界的最大的改变就是让信息能够实时交互,从而大大加速了各个环节的效率.正因为大家对信息实时响应.实时交互的需求,软件行业除了个人操作系统之外,数据库 ...

  5. OD使用教程6 - 调试篇06|解密系列

    OD使用教程6 - 调试篇06 让编程改变世界 Change the world by program   这一讲开始,小甲鱼带大家接触真正程序的逆向.其实也没啥大不了的,也就是对之前所学的知识进行巩 ...

  6. GNN教程:DGL框架实现GCN算法!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:秦州,算法工程师,Datawhale成员 引言 本文为GNN教程的 ...

  7. 想入门图深度学习?这篇55页的教程帮你理清楚了脉络

    选自arXiv 作者:David Bacciu等 机器之心编译 意大利比萨大学的研究者发表论文,介绍了图深度学习领域的主要概念.思想和应用.与其他论文不同的是,这篇论文更像一份入门教程,既适合初学者作 ...

  8. 图卷积和消息传递理论的可视化详解

    来源:Deephub Imba 本文共3500字,建议阅读5分钟本文中将研究如何基于消息传递机制构建图卷积神经网络,并创建一个模型来对具有嵌入可视化的分子进行分类. 假设现在需要设计治疗某些疾病的药物 ...

  9. RabbitMQ消息队列系列教程(一)认识RabbitMQ

    摘要 RabbitMQ是最为流行的消息中间件,是处理高并发业务的利器.本系列教程,将跟大家一起学习RabbitMQ. 目录 RabbitMQ是什么? RabbitMQ的特点是什么? 一.RabbitM ...

最新文章

  1. utf8汉字编码16进制对照(转载)
  2. Python引起的混乱解决之道——感悟
  3. LeetCode.917-只反转字母(Reverse Only Letters)
  4. TF之BN:BN算法对多层中的每层神经网络加快学习QuadraticFunction_InputData+Histogram+BN的Error_curve
  5. Java生鲜电商平台-订单中心服务架构与异常订单逻辑
  6. asp.net core监控—引入Prometheus(四)
  7. 浅析linux下的条件变量
  8. 漫画通信:惊呆了,手机登录还可以这么玩!
  9. php 替换某个字符,php中如何替换字符串中的某个字符-PHP问题
  10. mssql日志处理事务日志处理
  11. struts2继承ActionSupport
  12. java 服务器程序部署环境搭建
  13. java ad freeradius_freeradius集合mariadb+深信服的AC做实名认证
  14. 367个公益宣传PPT模板免费下载网站
  15. 尤雨溪:Vue3即将成为新的默认版本!
  16. Lingo 简单的背包问题
  17. 哈希表实现电话号码查询系统(c++)
  18. 本题要求实现一个函数,对给定平面任意两点坐标(x 1​ ,y 1​ )和(x 2​ ,y 2​ ),求这两点之间的距离。
  19. 对于人脸识别检测中出现遮挡问题的解决方案
  20. java微信开发教程

热门文章

  1. [转]Open Data Protocol (OData) Basic Tutorial
  2. 如何用DELPHI区分彩色图和黑白图(多色与单色)??
  3. 程序员的七种必备武器
  4. walletconnect
  5. Kazuo Inamori
  6. C++防止文件重复包含
  7. Method Swizzling 为什么要先调用 class_addMethod?
  8. 国人主导研发的 HAWQ® 成 Apache® 顶级项目
  9. PostgreSQL的initdb 源代码分析之五
  10. 动态规划问题之一马当先