焦作地区哪家专业网站公司提供高效排名服务?

摘要:焦作专业做网站公司哪家好,批量查询神马关键词排名,如何做网页链接,做百度联盟怎么才能创建多个网站消息可靠性 生产者重试机制 首先第一种情况,就是生产者发送消息时,出现了网络故障&a
焦作专业做网站公司哪家好,批量查询神马关键词排名,如何做网页链接,做百度联盟怎么才能创建多个网站消息可靠性 生产者重试机制 首先第一种情况#xff0c;就是生产者发送消息时#xff0c;出现了网络故障#xff0c;导致与MQ的连接中断。 为了解决这个问题#xff0c;SpringAMQP提供的消息发送时的重试机制。即#xff1a;当RabbitTemplate与MQ连接超时后#xff0c;…消息可靠性 生产者重试机制 首先第一种情况就是生产者发送消息时出现了网络故障导致与MQ的连接中断。 为了解决这个问题SpringAMQP提供的消息发送时的重试机制。即当RabbitTemplate与MQ连接超时后多次重试。 修改publisher模块的application.yaml文件添加下面的内容 spring:rabbitmq:connection-timeout: 1s # 设置MQ的连接超时时间template:retry:enabled: true # 开启超时重试机制initial-interval: 1000ms # 失败后的初始等待时间multiplier: 1 # 失败后下次的等待时长倍数下次等待时长 initial-interval * multipliermax-attempts: 3 # 最大重试次数注意当网络不稳定的时候利用重试机制可以有效提高消息发送的成功率。不过SpringAMQP提供的重试机制是阻塞式的重试也就是说多次重试等待的过程中当前线程是被阻塞的。 如果对于业务性能有要求建议禁用重试机制。如果一定要使用请合理配置等待时长和重试次数当然也可以考虑使用异步线程来执行发送消息的代码。 ::: 生产者确认机制 一般情况下只要生产者与MQ之间的网路连接顺畅基本不会出现发送消息丢失的情况因此大多数情况下我们无需考虑这种问题。 不过在少数情况下也会出现消息发送到MQ之后丢失的现象比如 MQ内部处理消息的进程发生了异常生产者发送消息到达MQ后未找到Exchange生产者发送消息到达MQ的Exchange后未找到合适的Queue因此无法路由 针对上述情况RabbitMQ提供了生产者消息确认机制包括Publisher Confirm和Publisher Return两种。在开启确认机制的情况下当生产者发送消息给MQ后MQ会根据消息处理的情况返回不同的回执。 当消息投递到MQ但是路由失败时通过Publisher Return返回异常信息同时返回ack的确认信息代表投递成功临时消息投递到了MQ并且入队成功返回ACK告知投递成功持久消息投递到了MQ并且入队完成持久化返回ACK 告知投递成功其它情况都会返回NACK告知投递失败 其中ack和nack属于Publisher Confirm机制ack是投递成功nack是投递失败。而return则属于Publisher Return机制。 默认两种机制都是关闭状态需要通过配置文件来开启。 在publisher模块的application.yaml中添加配置 spring:rabbitmq:publisher-confirm-type: correlated # 开启publisher confirm机制并设置confirm类型publisher-returns: true # 开启publisher return机制这里publisher-confirm-type有三种模式可选 none关闭confirm机制simple同步阻塞等待MQ的回执correlatedMQ异步回调返回回执 一般我们推荐使用correlated回调机制。 定义ReturnCallback 每个RabbitTemplate只能配置一个ReturnCallback因此我们可以在配置类中统一设置。
阅读全文