【笔记】学习NServicbus
NserviceBus的配置相关:(从官网翻译的)
=====================================================
NServicebus的配置
1.MsmqtransportConfig,这个配置定义了一些消息在传输过程当中的属性。
例如,发送消息要开启几个队列;以及最大的重试次数(发送消息失败之后会重试继续发几次?)。这个配置默认是没有的,我们需要在<configsections>里面配置。
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
<MsmqTransportConfig NumberOfWorkerThreads="1" MaxRetries="5"/>这个配置里面的两个属性
maxretries表示消息处理失败在移交到errorqueue之前会重试几次。这个值如果没有提供的话,默认就为5.
2.MessageForwardingInCaseOfFaultConfig.这个配置主要是定义消息无法处理的时候或者处理失败的时候将把消息移交到哪里(那个消息队列)去。一般默认的是移交到本机名字叫error的消息队列里,但是我们也可以把这个处理失败的消息移交到远程服务器的消息队列里去。如过是本机消息队列的话一般是这么配置<MessgaeForwardinginCaseOfFaultConfig ErrorQueue="error">(这表示消息处理失败的时候将把消息移到本机的error消息队列里。)如果是远程的话,errorQueue的值一般这么配置,都是基于"queueName@remoteMachineName"这个模板的。就是"消息队列名称@机器名称"。
如果你没有定义或者配置错误队列的地址,那么NServicebus将启动失败,并且报“Could not find backup configuration section 'MsmqTransportConfig' in order to locate the error queue“的异常。
=====================================================
NServicebus的异常处理:
NServiceBus自带了一套异常处理机制,你不需要自己去捕获或者处理异常。当异常出现的时候你只需要把异常抛出,当NServiceBus捕获到异常之后,他会自动的去重试处理这个消息5次(这个次数是自定义的),如果5次之后还没有处理成功,就会把这个消息转移到error队列里了。这样我们就可以关注error队列,一旦这个里面有了消息,则表示有处理失败的消息了。我们可以针对error队列里的消息进行单独的处理。另外我们也可以利用工具 ReturnToSourceQueue.exe,这个工具可以把error队列的消息遣送回到它原先的队列里去,让队列再处理一遍。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)