当前位置:首页 > 服务端 > Dubbo之参数配置(一)

Dubbo之参数配置(一)

2022年11月09日 22:52:01服务端6

目录

启动时检查

集群容错

负载均衡

线程模型

直连提供者

服务只订阅,不注册

只注册

静态服务

多协议配置

多注册中心注册(服务端)和多注册中心引用(消费端)

多版本

服务分组

分组聚合

结果缓存


 

启动时检查

    dubbo默认会在启动时检查依赖的服务是否可用,不可用会抛出异常
    1)xml中配置
    没有提供者时报错  关闭某个服务的启动时检查:    <dubbo:reference interface="com.foo.Service" check="false"/>
    没有提供者时报错  关闭所有服务的启动时检查:<dubbo:consumer check="false"/>
    注册订阅失败时报错  关闭注册中心启动时检查: <dubbo:registry check="false"/>
    2)properties中配置
    也可在dubbo.properties中配置
    dubbo.reference.com.foo.Service.check=false
    dubbo.reference.check=false  强制改变所有reference的check值,就算配置中有声明也会被覆盖
    dubbo.consumer.check=false  只是设置check的缺省值,如果配置中有显示的声明,不会受影响
    dubbo.registry.check=false

    引用默认是延迟初始化的,只有引用被注入到其他Bean,或被getBean()获取,才会初始化
    如果需要饥饿加载,没有引用也立即生成动态代理,可以配置
   <dubbo:reference interface="com.foo.Service" init="true"/>

集群容错

 

  •     集群模式配置

    <dubbo:service cluster="failsafe"/>  或 <dubbo:reference cluster="failsafe"/>
    failover:失败自动切换,重试次数默认为2(不包含第一次) retries="2"
    failfast:快速失败,只发起一次调用,失败立即报错,常用于非幂等性操作
    failsafe:失败安全,出现异常时直接忽略,常用于写入审计日志等操作
    failback:失败自动恢复,后台记录失败请求,定时重发,常用于消息通知
    forking:并行调用多个服务器,只要一个成功即返回,通常用于实时性要求较高的读操作,但浪费更多服务资源,fork="2"设置最大并行数
    broadcast:广播调用所有提供者,逐个调用,任意一台报错则报错,常用于通知所有提供者更新缓存或日志等本地资源信息

负载均衡


    默认为random随机调用 
    <dubbo:service interface="" loadbalance="roundrobin"/> 或 <dubbo:reference interface="" loadbalance="roundrobin"/>
    Random:随机,按权重设置随机概率,调用量越大分布越均匀,动态调整提供者权重
    RoundRobin:轮询,按权重设置轮询比例,容易出现提供者累积请求问题,当某一台机器很慢,卡在那里,所有请求就全卡了
    LeastActive:最少活跃调用数,相同活跃数的随机,慢的提供者收到更少请求
    ConsistentHash:一致性Hash,相同参数的请求总是发到同一提供者,某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其他提供者,不会引起剧烈变动

线程模型


   <dubbo:protocal name="dubbo" dispatcher="all" threadpool="fixed" threads="100"/>

  •    Dispatcher

        all:所有消息都派发到线程池,包括请求,响应,连接事件,断开事件,心跳等
        direct:所有消息都不派发到线程池,全部在IO线程上直接执行
        message:只有请求响应消息派发到线程池
        execution:只有请求消息派发到线程池
        connection:在IO线程上,将连接断开事件放入队列,有序逐个执行,其他消息派发到线程池

  •    ThreadPool

        fixed:固定大小线程池,启动时建立线程,不关闭,一直持有
        cached:缓存线程池,空闲一分钟自动删除,需要时重建
        limited:可伸缩线程池,但池中线程数只会增长不会收缩。

直连提供者


    使用场景:在开发及测试环境下,经常要绕过注册中心,只测试指定服务提供者,需要点对点直连A接口配置点对点,不影响B接口从注册中心获取列表
    xml:<dubbo:reference interface="" url="dubbo://localhost:9999"/>
    properties: 2.0以上自动加载${user.home}/dubbo-resolve.properties文件
    com.demo.Service=dubbo://localhost:9999

服务只订阅,不注册


   使用场景:有时候未开发完的服务放到注册中心,会影响消费者不能正常运行
   <dubbo:registry address="10.20.153.10:9090" register="false" />
   或
   <dubbo:registry address="10.20.153.10:9090?register=false" />

只注册


   使用场景:有时候需要将一个服务同时注册到两个注册中心,但是只从其中一个依赖其他服务
   <dubbo:registry address="10.20.153.10:9090" subscribe="false" />
   <dubbo:registry address="10.20.153.223:9090" />

静态服务


    使用场景:有时候希望人工管理服务提供者的上线和下线,此时须将注册中心标识为非动态管理模式
    <dubbo:registry address="10.20.153.10:9090" dynamic="false" />
    服务提供者初次注册时为禁用状态,需人工启用,断线时,将不会被自动删除,需人工禁用

多协议配置


     使用场景:不同服务在性能上使用不同协议进行传输,比如大数据用短连接协议,小数据大并发用长连接协议
     //多协议配置
     <dubbo:protocal name="dubbo" port="20880" />
     <dubbo:protocal name="rmi" port="1099 />
     //使用不同协议暴露服务
     <dubbo:service interface="com.demo.Service" ref="" protocal="dubbo" />
     <dubbo:service interface="" ref="" protocal="rmi"/>
     //使用多个协议暴露服务
     <dubbo:service id="service" interface="" ref="" protocal="dubbo,rmi" />

多注册中心注册(服务端)和多注册中心引用(消费端)


     同多协议配置相似 可以通过注册中心id进行引用和服务注册<dubbo:registry id="r1" address="" />

多版本


    使用场景: 当一个接口实现出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用
     1.在低压力时间段,先升级一半提供者为新版本
     2.再将所有消费者升级为新版本
     3.然后将剩下的一半提供者升级为新版本
    <dubbo:service interface="" ref="v1" version="1.0.0" />
    <dubbo:service interface="" ref="v2" version="2.0.0" />

服务分组

   使用场景:相同的接口,但是有不同的实现,需要区别对待
    <dubbo:service group="feedback" interface="" />
    <dubbo:service group="member" interface="" />
    //任意组
    <dubbo:service id="" interface="" group="*" />

分组聚合


     使用场景:比如菜单服务,接口一样,但有很多服务,用group区分,在消费方合并
     搜索所有分组:<dubbo:reference interface="" group="*" merger="true" />
     合并指定分组:<dubbo:reference interface="" group="aaa,bbb" merger="true"/>
     指定方法合并(当设置为merger="false"时,可以指定某个方法不合并分组):
    <dubbo:reference interface="" group="*">
        <dubbo:method name="getMenuItems" merger="true" />
     </dubbo:reference>

结果缓存

    使用场景:用于加速热门数据的访问速度
    lru:最近最少使用原则删除多余缓存,保持最热数据
    threadlocal:当前线程缓存

    jcache:与JSR107集成,可以桥接各种缓存实现

作者:tigerJGG
来源链接:https://blog.csdn.net/tigerJGG/article/details/88707192

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/69209.html

标签: Dubbo
分享给朋友:

“Dubbo之参数配置(一)” 的相关文章

dubbo+spring_maven 遇到的问题 Error creating bean with name '***': Instantiation of bean failed;

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cpUserAgent': Instantia...

SpringCloud、dubbo 和 druid 问题总结

SpringCloud、dubbo 和 druid 问题总结

背景:   我们当前的微服务架构采用的是 SpringCloud 全家桶 + dubbo + druid + apllo 等技术集成的。 1、多服务实例相同端口冲突问题   目前线上服务器内容动辄 128 ~ 256GB,我们一个服务最大内存设置不超过 32GB,那么...

Spring Boot Dubbo applications.properties 配置清单

Spring Boot Dubbo applications.properties 配置清单

摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 与其纠结,不如行动学习。Innovate ,And out execute ! 』 本文提纲 一、前言 二、applications.properti...

Java互联网架构师视频课程 分布式系统架构 Dubbo ActiveMQ Netty

Java互联网架构师视频课程 分布式系统架构 Dubbo ActiveMQ Netty

视频课程内容包含: 高级Java架构师包含:spring boot、Spring  cloud、Dubbo、Redis、ActiveMQ、Nginx、Mycat、Spring、MongoDB、ZeroMQ、Git、Nosql、Jvm、Mecached...

maven+springmvc+dubbo+zookeeper

maven+springmvc+dubbo+zookeeper

springmvc+dubbo+zookeeper整合     为什么要用dubbo?   还是让官方来解释吧: http://d...

Springboot整合dubbo(一):搭建一个springboot + dubbo的微服务

Springboot整合dubbo(一):搭建一个springboot + dubbo的微服务

现在越来越多的公司开发项目中使用了springboot作为搭建服务的框架,因为springboot集成了一套完整项目所需要的基本的开发工具的jar包,无需再像之前开发一个spring项目中需要引入各种配置,只需要引入简单的几个配置就能达到项目的启动,大大减少了开发周期,使开发越来...

Dubbo整合Nacos

Dubbo整合Nacos

Dubbo项目将Nacos作为其注册中心和配置中心 Nacos提供了四个主要功能 服务发现和服务运行状况检查(服务治理):Nacos使服务易于注册自己并通过DNS或HTTP接口发现其他服务。Nacos还提供服务的实时运行状况检查,以防...

SpringCloud系列之集成Dubbo应用篇

SpringCloud系列之集成Dubbo应用篇

目录 前言 项目版本 项目说明 集成Dubbo 2.6.x 新项目模块 老项目模块 集成Dubbo 2....

SpringCloud与Dubbo区别

为什么放弃Dubbo 使用SpringCloud?   相同点:SpringCloud 和Dubbo可以实现RPC远程调用框架,可以实现服务治理。   不同点:  SpringCloud是一套目前比较网站微服务框架了,整合了分...

Dubbo泛化调用

1. 使用背景 想要调用远程的方法,但发现没有api接口包,就无法直接引用,此时可以使用泛型调用,调用方可不用知道被调用方的具体细节; 2.Provider package provider; import com.alibaba.d...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。