Dubbo 高级特性 (3)

news2024/11/27 6:26:58

其实Dubbo的官方文档非常强大,里面的各种各样的标签都会介绍到,但是最新版的官方文档好像找不那么多详细的使用了。在此,我推荐一篇博客,里面列举的也蛮全面的,可以参考: dubbo配置参考手册_dubbo使用手册_Ithao2的博客-CSDN博客

1. Dubbo 常用功能标签

<dubbo:service/> 服务配置,用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心。
<dubbo:reference/> 引用配置,用于创建一个远程服务代理,一个引用可以指向多个注册中心。
<dubbo:protocol/> 协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
<dubbo:application/> 应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。

<dubbo:registry/> 注册中心配置,用于配置连接注册中心相关信息。
<dubbo:module/> 模块配置,用于配置当前模块信息,可选。
<dubbo:monitor/> 监控中心配置,用于配置连接监控中心相关信息,可选。
<dubbo:provider/> 提供方的缺省值,当ProtocolConfig和ServiceConfig某属性没有配置时,采用此缺省值,可选。
<dubbo:consumer/> 消费方缺省配置,当ReferenceConfig某属性没有配置时,采用此缺省值,可选。
<dubbo:method/> 方法配置,用于ServiceConfig和ReferenceConfig指定方法级的配置信息。
<dubbo:argument/> 用于指定方法参数配置。
 

XML文件的形式看起来更直观,下面以XML文件的形式阐述Dubbo的高级特性:

2. 启动时检查

     Dubbo启动的时候会检查依赖的服务是否可用,而使用到Dubbo,基本都是分布式、集群环境。如果依赖服务找不到,他会阻止Spring初始化工作的完成,导致服务无法启动。而使用懒加载的Bean,也会抛异常,请关闭检查。默认 check=true.

一般在消费端进行配置。 可用配置到具体的要引用的Bean上,也可以进行全部配置。

3. 超时连接/重连

Dubbo消费端在发送一个请求以后,需要有一个临界值来判断服务是否正常,总不傻傻的一直等着。此时超时是否需要重连就出来了。

4. 集群容错

 当消费端某次调用失败是一些环境因素造成的,比如网络抖动。Dubbo还给予容错补救的机会。(forks=“2” 来设置最大并行数)

failover 当出现失败, 重试其它服务器。 retries=“2” 来设置重试次数(不含第一次)。(幂等性操作使用, 如读操作)

<dubbo:consumer cluster="failover” retries="2" forks="2" />
 

failfast 快速失败, 只发起一次调用, 失败立即报错。(非幂等性操作, 如写操作)

failsafe 出现异常时, 直接忽略。(无关紧要的旁支操作, 如打日志)
 

failback 后台记录失败请求, 定时重发 (后续专业处理)

forking 并行调用多个服务器, 只要一个成功即返回

消费端、服务端、全局、具体的开放接口都可以配置:

 

5. 负载均衡

在集群负载均衡时,dubbo提供了多种策略,默认为random随机调用,可以自行扩展负载均衡策略。

random : 按权重随机选取,根据服务方设置weight值随机选取

roundrobin:轮循

leastactive :最少活跃数(正在处理的数)。慢的机器、收到请求少的机器

消费端、服务端、全局、具体的开放接口都可以配置:

6. 结果缓存

7. 服务分组

 8. 多版本

9. 只订阅\只注册

默认情况下,我们是订阅与注册兼备的,不需要设置。

只订阅:自己的模块代码还没写好,但是依赖的模块已经写好。我们只需订阅即可。是否向此注册中心注册服务,如果设为false,将只订阅,不注册.

只注册: 比如开发环境为了省机器, 没有部署某个服务, 如短信/邮件功能。 但整个
系统又必须要调用它。 此时我们可以借用一下测试环境的此服务(不能影响
测试环境原本的服务闭环) 。 将测试环境的短信/邮件服务也向开发环境注
册一份, 只注册(其依赖的服务必须还是测试环境的)

 10. 异步调用

消费方、服务方、全局、接口、方法都可以设置

11. 事件通知

上面列举的,是我们在使用dubbo的时候出现的最高频的。还有很多,就不一一介绍了,可以查API仔细研究。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/471327.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端叹了口气,并表示谣言止于智者

如何评价此次“前端已死”言论引起的轩然大波&#xff1f; 从市景角度来看&#xff0c;那就是“一传十&#xff0c;十传百&#xff0c;越传越离谱”。 从新闻角度来看&#xff0c;是“传播扭曲效应”&#xff0c;指信息传播的链条越长&#xff0c;信息越失真。 用《乌合之众…

博客系统[Java]

目录 一.准备工作 二.实现数据库代码(JDBC) 1.创建数据库/表结构>数据库设计 2.封装数据库(Model) 1>创建DBtil封装数据库连接操作 2>创建实体类-->表示一条记录 3>封装针对数据的增删改查 三.博客列表页 1.约定前后端 2.编写服务器代码 3.编写客户端…

【笔试强训选择题】Day7.习题(错题)解析

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;笔试强训选择题 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01; 文章目录…

使用注解实现REDIS分布式锁

一、业务背景 有些业务请求&#xff0c;属于耗时操作&#xff0c;需要加锁&#xff0c;防止后续的并发操作&#xff0c;同时对数据库的数据进行操作&#xff0c;需要避免对之前的业务造成影响。 二、分析流程 使用 Redis 作为分布式锁&#xff0c;将锁的状态放到 Redis 统一…

【传统方式部署kafka集群,efak 与迁移至k8s】

简介 Zookeeper集群&#xff1b;&#xff08;必须事先准备&#xff09;&#xff1b; 1、介绍kafka是什么&#xff1b;消息队列&#xff1b;kafka就是一个消息队列MQ&#xff1b; elk需要使用kafka来传递日志消息&#xff1b;一、传统方式部署kafka集群 1 环境说明 192.168.…

C++——类和对象[上]

目录 1.初识面向对象 2.类的引入 3.类的定义 4.成员变量的命名规则 5.类的实例化 6.类对象模型 7.this指针 1.初识面向对象 C语言是一门面向过程的语言&#xff0c;它关注的是完成任务所需要的过程&#xff1b;C是一门面向对象的语言&#xff0c;将一个任务分为多个对…

思维链Prompting促进大型语言模型的推理能力

论文标题&#xff1a;Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 论文链接&#xff1a;https://arxiv.org/abs/2201.11903 论文来源&#xff1a;NeurIPS 2022 一、概述 近来NLP领域由于语言模型的发展取得了颠覆性的进展&#xff0c;扩大语言模型…

【接口自动化测试】selenium旗舰版Web测试理论篇

【接口自动化测试】selenium旗舰版Web测试理论篇 一、Web自动化测试 1.1 简介 1.2 优势 1.3 E2E测试 二、主流的Web自动化测试工具 三、SeleniumWeb自动化测试 3.1 conda终端一键搭建命令 3.2 测试浏览器 3.2.1 步骤①&#xff1a;自动打开浏览器 3.2.2 步骤②&#…

基于pytorch的车牌识别(一)

目录 CCPD2019数据集CCPD数据集标注信息单例再现 CCPD2019数据集 本项目所有的数据都是基于CCPD2019数据集&#xff0c;CCPD2019数据集包含了25万多幅中国城市车牌图像和车牌检测与识别信息的标注&#xff0c;主要采集于合肥市&#xff0c;采集人员手持Android POS机对停车场的…

轻量级网络EfficientNetB0,利用迁移学习中的微调技术进行小样本轴承故障诊断(Python代码,带有数据集,训练集集的每类只需10个样本)

1. 训练集数量&#xff08;正常类别&#xff1a;10个&#xff0c;内圈故障&#xff1a;10个&#xff0c;外圈故障&#xff1a;10个&#xff0c;滚动体故障&#xff1a;10个&#xff09; 测试集数量&#xff08;正常类别&#xff1a;90个&#xff0c;内圈故障&#xff1a;90个&…

LeetCode第160题——相交链表(Java)

题目描述&#xff1a; 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交**&#xff1a;** 题目数据 保证 整个链式结构中不存在环。 注意&…

非线性扰动观测器的基本设计

非线性扰动观测器的基本设计 目录 非线性扰动观测器的基本设计前言问题描述扰动观测器设计小结参考资料 前言 因为看到论文中有扰动观测器的设计&#xff0c;但只是大概地明白设计的原理&#xff0c;实际上不明白扰动观测器是如何设计出来的。因此在查阅了相关文献和文章后&am…

树的刷题,嗝

今天忘记带本子了,就没有学习java了,于是一心刷题,好烦遇到了两个奇怪的题目,我没跟题解写的,但是我是没想到奇怪的样例. no.1 617. 合并二叉树 难度简单1221收藏分享切换为英文接收动态反馈 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中…

【数据结构】第十三站:排序(中)快速排序

本文目录 一、快速排序递归法1.快速排序思想2.hoare版本实现快速排序3.hoare版本的优化1>使用随机值rand()函数2>三数取中3>三路划分 4.证明hoare版本的key在左边&#xff0c;必须让右边先走5.挖坑法实现快速排序6.将前面快排的一趟排序给提取出来7.双指针法实现快速排…

java小技能:使用FeignClient

文章目录 引言I FeignClient1.1 定义FeignClient1.2 启用FeignClient1.3 使用FeignClient引言 一款不错的SpringCloud 脚手架项目:注册中心(nacos)+RPC(feign) https://blog.csdn.net/z929118967/article/details/127966912 RPC(feign):使用Feign的方式,进行微服务调…

AlgoC++第九课:手写AutoGrad

目录 手写AutoGrad前言1. 基本介绍1.1 计算图1.2 智能指针的引出 2. 示例代码2.1 Scale2.2 Multiply2.3 Pow 总结 手写AutoGrad 前言 手写AI推出的全新面向AI算法的C课程 Algo C&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考。 本次课程主要是手写 AutoGrad …

逆向动态调试工具简介

常用逆向工具简介&#xff1a; 二进制尽管属于底层知识&#xff0c;但是还是离不开一些相应工具的使用&#xff0c;今天简单介绍一下常用的逆向工具OD以及他的替代品x96dbg&#xff0c;这种工具网上很多&#xff0c;也可以加群找老满&#xff08;184979281&#xff09;&#x…

java实现乘法的方法

我们都知道&#xff0c;乘法运算的核心思想就是两个数相乘&#xff0c;如果能将乘法运算转化成一个加数的运算&#xff0c;那么这个问题就很容易解决。比如我们要实现23的乘法&#xff0c;首先需要定义两个变量&#xff1a;2和3。我们将这两个变量定义为一个变量&#xff1a;2x…

如何利用Mybatis-Plus自动生成代码(超详细注解)

1、简介 MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 特性 无侵入&#xff1a;只做增强不做改变&#xff0c;引入…

一例感染型病毒样本的分析

这个样本是会释放两个dll和一个驱动模块&#xff0c;通过感染USB设备中exe文件传播&#xff0c;会向C&C下载PE执行&#xff0c;通过rookit关闭常用的杀软&#xff0c;是一例典型的感染型病毒&#xff0c;有一定的学习价值。 原始样本 样本的基本信息 Verified: Unsigned …