当前位置: 首页 > article >正文

高级特性之dubbo超时机制及集群容错机制

当服务消费者要进行消费的时候这个时候它可能就开启一个线程去调用服务提供者的具体实现等他返回相应的结果这个时候由于网络的问题或者服务端并不可靠它会在这阻塞很长的一段时间。如果这个服务一直有人在调用那么就会开一堆线程去请求服务提供者。服务端消费者的线程数肯定是有限制的那么所有线程就会阻塞在调用服务。如果没有设置超时那么线程就阻塞在这里一直在这里进行等待。这个就会导致整个服务消费端就不可用了这时候dubbo就提供了超时的机制。对dubbo熟悉的人对下面的配置一定不会陌生dubbo:reference idxxxx interfacexx checktrue asyncfalse retries1 timeout2000/上面设置需要关注的几个地方1.checktrue--系统在启动时就会去检查对应的dubbo服务不存在就报错导致启动失败所以如果设置为true就必须确保该服务提供者一定要在该应用启动之前启动否则就会启动失败2.async--false表明该服务是同步调用而不是异步调用3.retries1 重试一次也就是最多尝试2次如果失败就抛出异常4.timeout2000 服务超时时间单位为毫秒客户端在调用该dubbo服务时会启动超时检测如果达到2秒就会报超时异常超时异常后客户端会尝试1次调用不管失败与否都返回。注需要注意的地方是timeout只有在超时异常才有效如果是其他异常导致dubbo服务调用抛异常会立即进入下一次尝试直接看FailoverClusterInvoker该类是dubbo默认使用的集群调用使用的类。Dubbo 集群容错Design For failure在分布式系统中集群某个某些节点出现问题是大概率事件因此在设计分布式RPC框架的过程中必须要把失败作为设计的一等公民来对待。一次调用失败之后应该如何选择对失败的选择策略这是一个见仁见智的问题每种策略可能都有自己独特的应用场景。因此作为框架来说应当针对不同场景提供多种策略供用户进行选择。在Dubbo设计中通过Cluster这个接口的抽象把一组可供调用的Provider信息组合成为一个统一的Invoker供调用方进行调用。经过路由规则过滤负载均衡选址后选中一个具体地址进行调用如果调用失败则会按照集群配置的容错策略进行容错处理。Dubbo默认内置了若干容错策略如果不能满足用户需求则可以通过自定义容错策略进行配置。内置容错策略Dubbo主要内置了如下几种策略Failover(失败自动切换)Failsafe(失败安全)..............................................Failover(失败自动切换)Failover是高可用系统中的一个常用概念服务器通常拥有主备两套机器配置如果主服务器出现故障则自动切换到备服务器中从而保证了整体的高可用性。Dubbo也借鉴了这个思想并且把它作为Dubbo默认的容错策略。当调用出现失败的时候根据配置的重试次数会自动从其他可用地址中重新选择一个可用的地址进行调用直到调用成功或者是达到重试的上限位置。Dubbo里默认配置的重试次数是2也就是说算上第一次调用最多会调用3次。其配置方法容错策略既可以在服务提供方配置也可以服务调用方进行配置。而重试次数的配置则更为灵活既可以在服务级别进行配置也可以在方法级别进行配置具体优先顺序为服务调用方方法级配置 服务调用方服务级配置 服务提供方方法级配置 服务提供方服务级配置以XML方式为例具体配置方法如下服务提供方服务级配置dubbo:service interfaceorg.apache.dubbo.demo.DemoService refdemoService clusterfailover retries2 /服务提供方方法级配置dubbo:service interfaceorg.apache.dubbo.demo.DemoService refdemoServiceclusterfailover dubbo:method namesayHello retries2 / /dubbo:reference服务调用方服务级配置dubbo:reference iddemoService interfaceorg.apache.dubbo.demo.DemoService clusterfailover retries1/服务调用方方法级配置dubbo:reference iddemoService interfaceorg.apache.dubbo.demo.DemoService clusterfailover dubbo:method namesayHello retries3 / /dubbo:referenceFailover可以自动对失败进行重试对调用者屏蔽了失败的细节但是Failover策略也会带来一些副作用重试会额外增加一下开销例如增加资源的使用在高负载系统下额外的重试可能让系统雪上加霜。重试会增加调用的响应时间。某些情况下重试甚至会造成资源的浪费。考虑一个调用场景A-B-C如果A处设置了超时100ms再B-C的第一次调用完成时已经超过了100ms但很不幸B-C失败这时候会进行重试但其实这时候重试已经没有意义因此在A看来这次调用已经超时A可能已经开始执行其他逻辑。

相关文章:

高级特性之dubbo超时机制及集群容错机制

当服务消费者要进行消费的时候,这个时候它可能就开启一个线程去调用服务提供者的具体实现,等他返回相应的结果,这个时候由于网络的问题或者服务端并不可靠,它会在这阻塞很长的一段时间。如果这个服务一直有人在调用那么就会开一堆…...

西门子S7-1200 PLC工业污水处理系统:基于博途V13sp1的WinCC画面组态与仿真报告

西门子工业污水处理系统,plc污水处理系统,基于plc的污水处理系统,系统采用s7-1200PLC设计,博途wincc画面组态。 包括plc触摸屏组态画面及仿真,报告等 博途V13sp1编程,V13sp1以上版本可以打开工业污水处理系…...

事件触发控制代码及其对应参考文献

事件触发控制代码对应参考文献 1.2023IEEE TRANS 顶刊基于事件触发的深度强化学习自动驾驶决策(CCF-A) 2.多智能体分布式系统的事件触发控制 3.基于观测器的非理想线性多智能体事件触发的跟踪一致性 4.非线性不确定扰动多智能体系统固定时间事件触发一致…...

实测对比后!千笔AI,开源免费降重首选

在AI技术迅速发展的今天,越来越多的学生和研究人员开始依赖AI工具辅助论文写作。然而,随着知网、维普、万方等查重系统不断升级算法,以及Turnitin对AIGC(人工智能生成内容)的识别愈发严格,AI率超标问题已成…...

直驱风机Simulink仿真模型与永磁直驱式风力发电系统整体仿真:380V与690V双电压仿真...

直驱风机simulink仿真模型,永磁直驱式风力发电系统 matlab/simulink整体仿真,有380V和690V两个仿真,波形如图,现货有2018 和 2021 两个版本,可导出2015b-2022版本,有模型说明和文献直驱风机在风电场的应用这…...

Canoe-Autosar网络管理自动化测试脚本及Capl源码:全套、可直接使用修改项目配置

Canoe-Autosar网络管理自动化测试脚本 Capl源码,全套,修改项目配置可以直接使用。 1.启动程序 2.加载配置文件 3.选择帧类型(标准帧或扩展帧) 4.修改配置文件,自动弹出配置文件窗口 5.选择测试用例 6.点击运行 7.测试完成打印报告并记录对应…...

基于LADRC自抗扰控制的VSG三相逆变器预同步并网策略

基于LADRC自抗扰控制的VSG三相逆变器预同步并网控制策略 基于LADRC自抗扰控制的VSG三相逆变器预同步并网控制策略是一种用于实现逆变器在微电网中的协调运行的先进控制策略。 逆变器控制方式采用虚拟同步发电机控制(VSG),通过引入虚拟同步发电…...

桥梁裂缝图像识别 智慧桥梁钢筋裸漏图像识别 基建领域混凝土结构病害检测 桥梁病害图像 YOLO格式数据集 第10515期

混凝土病害检测数据集 README类别 锈蚀钢筋 蟹爪状破损 碳化 受侵蚀混凝土 开裂混凝土 劣质混凝土 剥落 泛碱 微裂缝 裂缝往期热门主题 主页搜两字"关键词"直达 代码数据获取: 获取方式:***文章底部卡片扫码获取***覆盖了YOLO相关项目、OpenCV…...

基于FPGA的视频缩放算法:支持4K2K输入与输出,缩放参数可控

基于fpga的视频缩放算法,支持4k2k输入,4k2k输出,缩放参数可控。最近在折腾一个FPGA视频处理项目,发现市面上的缩放方案要么延迟太高,要么资源占用爆炸。自己动手撸了个支持4K60帧的缩放架构,参数还能实时调…...

【Day25】LeetCode:134. 加油站,135. 分发糖果,860. 柠檬水找零,406. 根据身高重建队列

文章目录LeetCode:134. 加油站思路解答LeetCode:135. 分发糖果思路解答LeetCode:860. 柠檬水找零思路解答LeetCode:406. 根据身高重建队列思路解答LeetCode:134. 加油站 https://leetcode.cn/problems/gas-station/ …...

Linux HTTP服务器

1.完成对于服务器的基础编写socket.hpp套接字模块#pragma once #include<iostream> #include <sys/types.h> #include <sys/socket.h> #include<string> #include<netinet/in.h> #include <arpa/inet.h>//sockaddr_in 头文件 #include&quo…...

进程优先级/进程切换

1.优先级的基本概念进程优先级决定CPU执行顺序&#xff0c;优先级高的进程优先获得CPU&#xff0c;合理配置优先级可提升系统性能可将进程绑定到特定CPU核心运行&#xff0c;把不重要进程隔离到某CPU&#xff0c;避免干扰核心任务&#xff0c;显著改善整体系统性能和资源利用效…...

3.2.课设实验-Java核心技术-日期

一.题目&#xff1a;比较日期编写一个Java应用程序&#xff0c;用户输入两个日期&#xff0c;程序将判断两个日期的大小关系&#xff0c;以及两个日期之间的间隔天数。二.参考代码&#xff1a;package Practice2;import java.util.Calendar; import java.util.Date; import jav…...

Linux——文件1

1、open函数高频使用的Linux系统调用&#xff1a;open write read closeLinux自带的工具&#xff1a;man手册&#xff1a;man 1是普通的shell命令&#xff0c;比如lsman 2是系统调用函数&#xff0c;比如open&#xff0c;write说明在Linux系统库的定义&#xff1a;int open(con…...

Qwen3与Transformer模型深度结合:提升字幕语义理解

Qwen3与Transformer模型深度结合&#xff1a;提升字幕语义理解 不知道你有没有过这样的体验&#xff1a;看视频时&#xff0c;字幕要么跟不上语速&#xff0c;要么翻译得生硬别扭&#xff0c;甚至完全曲解了说话人的意思。尤其是在处理口语化表达、网络流行语或者带有歧义的句…...

Qwen3-14B效果可视化:生成代码注释、SQL优化建议与周报总结的真实截图

Qwen3-14B效果可视化&#xff1a;生成代码注释、SQL优化建议与周报总结的真实截图 1. 模型简介 Qwen3-14b_int4_awq是基于Qwen3-14b模型的int4量化版本&#xff0c;采用AngelSlim技术进行压缩优化&#xff0c;专门用于各类文本生成任务。这个量化版本在保持模型性能的同时&am…...

Qwen3-14b_int4_awq部署步骤详解:vLLM服务端口映射+Chainlit反向代理配置

Qwen3-14b_int4_awq部署步骤详解&#xff1a;vLLM服务端口映射Chainlit反向代理配置 1. 模型简介 Qwen3-14b_int4_awq是基于Qwen3-14b模型的int4量化版本&#xff0c;采用AngelSlim技术进行压缩优化。这个版本特别适合需要高效运行文本生成任务的场景&#xff0c;在保持较高生…...

Django 学习 Part5、6 :自动化测试与静态文件管理

一、为什么要写测试&#xff1f; 测试是检查代码操作的例程&#xff0c;在不同级别上运行&#xff1a; 单元测试&#xff1a;检查微小细节&#xff08;如模型方法返回值&#xff09;集成测试&#xff1a;检查整体操作&#xff08;如用户输入序列是否产生预期结果&#xff09;…...

AI 时代,真正拉开人与人差距的,可能是信息来源

AI 时代&#xff0c;真正拉开人与人差距的&#xff0c;可能是信息来源当信息多到看不完时&#xff0c;真正重要的&#xff0c;已经不是你看了多少&#xff0c;而是你到底在看什么。最近&#xff0c;我看到一条很有意思的动态。 Marc Andreessen [硅谷著名投资人&#xff0c;也是…...

小白也能用的Whisper语音识别:上传音频自动转文字实战教程

小白也能用的Whisper语音识别&#xff1a;上传音频自动转文字实战教程 1. 引言&#xff1a;语音转文字原来这么简单 你是否遇到过这些场景&#xff1a; 会议录音需要整理成文字纪要外语视频想快速生成字幕采访录音需要转为可编辑文本 传统方法要么费时费力手动听写&#xf…...

【MCP 2.0安全规范深度解码】:20年协议安全专家逐行剖析RFC草案与OpenMCP参考实现源码

第一章&#xff1a;MCP 2.0安全规范演进脉络与核心设计哲学MCP&#xff08;Managed Cloud Platform&#xff09;2.0安全规范并非对1.x版本的简单功能叠加&#xff0c;而是基于零信任架构原则、云原生运行时威胁建模及合规性收敛需求所驱动的范式重构。其演进主线清晰呈现为“从…...

Higress 加入 CNCF:保障 Nginx Ingress 迁移,提供企业级 AI 网关

我们很高兴地宣布&#xff0c;Higress 已正式通过 TOC 投票表决&#xff0c;加入云原生计算基金会&#xff08;CNCF&#xff09;Sandbox 项目&#xff0c;成为 CNCF 生态的一员。 Higress 是什么&#xff1f; Higress 是一款基于 Envoy 和 Istio 构建的 AI 原生、高性能 API …...

【MCP协议实战白皮书】:20年架构师亲测——REST API吞吐量下降47%的真相与MCP生产级部署 checklist

第一章&#xff1a;【MCP协议实战白皮书】&#xff1a;20年架构师亲测——REST API吞吐量下降47%的真相与MCP生产级部署 checklist某金融核心系统在接入MCP&#xff08;Model Control Protocol&#xff09;协议后&#xff0c;其关键REST API平均吞吐量骤降47%&#xff0c;P95延…...

Gemma-3-270m与STM32开发实战:智能硬件项目

Gemma-3-270m与STM32开发实战&#xff1a;智能硬件项目 1. 项目背景与价值 最近我在做一个智能家居项目&#xff0c;需要让设备能够理解简单的语音指令并做出响应。传统的语音识别方案要么太贵&#xff0c;要么功耗太高&#xff0c;直到我发现了Gemma-3-270m这个超轻量级模型…...

Neeshck-Z-lmage_LYX_v2高效方案:单次生成耗时<12秒的轻量推理优化

Neeshck-Z-lmage_LYX_v2高效方案&#xff1a;单次生成耗时<12秒的轻量推理优化 想体验国产文生图模型&#xff0c;但被复杂的部署、缓慢的生成速度和繁琐的参数调节劝退&#xff1f;今天介绍的这个工具&#xff0c;或许能彻底改变你的看法。Neeshck-Z-lmage_LYX_v2&#xf…...

Fish Speech 1.5语音合成:5分钟快速部署,新手也能玩转多语言TTS

Fish Speech 1.5语音合成&#xff1a;5分钟快速部署&#xff0c;新手也能玩转多语言TTS 1. 从零开始&#xff1a;5分钟搭建你的专属语音合成站 上周有个做知识付费的朋友找我&#xff0c;他想把课程文稿转成多国语言的音频&#xff0c;方便海外学员学习。市面上工具要么贵&am…...

从懵逼到通关:我的第一次 SSH 暴力破解与后门植入实验(小白视角)

大家好&#xff0c;我是刚接触网络安全的小白老许&#xff0c;今天想跟大家聊聊我在靶机环境下完成的第一次渗透实验 —— 全程从上课懵圈到课后一步步啃下来&#xff0c;踩了无数坑&#xff0c;也终于搞懂了「暴力破解」和「持久化后门」到底是怎么回事。⚠️ 重要声明&#x…...

MedGemma应用场景探索:医学教育、科研验证与原型开发

MedGemma应用场景探索&#xff1a;医学教育、科研验证与原型开发 1. 引言&#xff1a;医学AI的多模态革命 在医学影像分析领域&#xff0c;传统方法往往需要专家花费大量时间进行人工解读。MedGemma Medical Vision Lab的出现&#xff0c;为这一过程带来了智能化的解决方案。…...

Z-Image-GGUF惊艳案例集:抽象艺术×中国传统纹样×数字人像融合创作

Z-Image-GGUF惊艳案例集&#xff1a;抽象艺术中国传统纹样数字人像融合创作 1. 项目简介与核心价值 今天我想和你分享一个特别有意思的AI图像生成项目——Z-Image-GGUF。这可不是普通的文生图工具&#xff0c;而是阿里巴巴通义实验室开源模型的一个量化版本&#xff0c;专门为…...

STM32HAL库实战:J-Link RTT高效调试技巧与性能优化

1. J-Link RTT调试技术入门指南 第一次接触J-Link RTT调试技术时&#xff0c;我正被传统串口调试的各种限制困扰着。每次修改代码后都需要重新插拔串口线&#xff0c;调试信息输出速度慢得像老牛拉车&#xff0c;更别提那些因为串口占用导致的资源冲突问题了。直到发现了J-Link…...