一、启动时检查

官网说明:

Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题,默认 check="true"

可以通过 check="false" 关闭检查,比如,测试时,有些服务不关心,或者出现了循环依赖,必须有一方先启动。

另外,如果你的 Spring 容器是懒加载的,或者通过 API 编程延迟引用服务,请关闭 check,否则服务临时不可用时,会抛出异常,拿到 null 引用,如果 check="false",总是会返回引用,当服务恢复时,能自动连上。

在消费者一方的 dubbo-consumer.xml 配置里:

<!--生成远程服务代理,可以和本地bean一样使用demoService
***** 启动时检查:
check="true",Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题,默认 check="true"
-->
<dubbo:reference id="userFacade" interface="com.lhy.service.user.UserFacade" check="true" />

只启动消费者,不启动生产者

会报如下的错:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': 
Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException:
Could not autowire field: private com.lhy.service.user.UserFacade com.lhy.consumer.controller.UserController.userFacade;
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userFacade':
FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException:
Failed to check the status of the service com.lhy.service.user.UserFacade.
No provider available for the service com.lhy.service.user.UserFacade
from the url zookeeper://192.168.85.3:2181/com.alibaba.dubbo.registry.RegistryService?application=lhy-consumer&check=true&dubbo=2.5.4&interface=com.lhy.service.user.UserFacade&methods=getById,getUsers,addUser&pid=13664&revision=1.0&side=consumer&timestamp=1541645721420 to the consumer 192.168.0.105 use dubbo version 2.5.4

设置  check="fase" 则可以正常启动消费者,在调用该服务的时候,则会报错

二、集群容错

当服务提供者部署到多个机器的时候,此时可以配置集群容错,一般配置为Failover (缺省配置) 或者Failfast 即可。可以配置到提供者上,也可以配置到消费者上

<!-- 声明需要暴露的服务接口 ,写操作可设置retries="0"避免重复调用SOA服务
集群容错:
cluster="failover":失败自动切换,当出现失败,重试其它服务器 [1]。通常用于读操作,但重试会带来更长延迟。可通过 retries="2" 来设置重试次数(不含第一次)。
cluster="failfast" :快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。
cluster="failsafe" :失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。
cluster="failback":失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。
cluster="forking":广播调用所有提供者,逐个调用,任意一台报错则报错 。通常用于通知所有提供者更新缓存或日志等本地资源信息。
一般配置为failover,重试0次/或者failfast
-->
<dubbo:service retries="0" interface="com.lhy.service.user.UserFacade" ref="userFacade" cluster="failover"/>

三、负载均衡

dubbo的负载均衡可以通过xml配置,也可以在dubbo-admin管控台动态配置。一般使用管控台配置,更加灵活。

一般配置为随机模式

管控台配置负载均衡,可以对每个服务的每个方法设置负载均衡策略。(但是管控台的策略 没有一致性hash)

xml配置,可以配在提供者,也可以配置在消费者:

<dubbo:service"interface="...""loadbalance="roundrobin""/>
或者
<dubbo:reference"interface="...""loadbalance="roundrobin""/>

四、直连提供者

在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直连方式,将以服务接口为单位,忽略注册中心的提供者列表,A 接口配置点对点,不影响 B 接口从注册中心获取列表。

通过 XML 配置(消费者)

<dubbo:reference id="accountFacade" interface="com.lhy.service.user.AccountFacade" url="dubbo://localhost:20880" />

五、只订阅

官方解释:为方便开发测试,经常会在线下共用一个所有服务可用的注册中心,这时,如果一个正在开发中的服务提供者注册,可能会影响消费者不能正常运行。

可以让服务提供者开发方,只订阅服务(开发的服务可能依赖其它服务),而不注册正在开发的服务,通过直连测试正在开发的服务。

只订阅 provider.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!--提供方应用信息,用户计算依赖关系-->
<dubbo:application name="lhy-service"/> <!--使用zookeeper注册中心暴露服务地址-->
<!--只订阅,不注册: register="false"
开发阶段,只订阅zk中已有的服务(开发中的服务可能用到),而不向zk注册服务,配合直连使用,此时消费者通过直连来调用
-->
<dubbo:registry address="zookeeper://192.168.85.3:2181?backup=192.168.85.4:2181,192.168.85.5:2181" register="false"/>
<!--<dubbo:registry"protocol="zookeeper""address="10.20.153.10:2181,10.20.153.11:2181,10.20.153.12:2181""/>--> <!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" /> <!-- 声明需要暴露的服务接口 ,写操作可设置retries="0"避免重复调用SOA服务
集群容错:
cluster="failover":失败自动切换,当出现失败,重试其它服务器 [1]。通常用于读操作,但重试会带来更长延迟。可通过 retries="2" 来设置重试次数(不含第一次)。
cluster="failfast" :快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。
cluster="failsafe" :失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。
cluster="failback":失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。
cluster="forking":广播调用所有提供者,逐个调用,任意一台报错则报错 。通常用于通知所有提供者更新缓存或日志等本地资源信息。
一般配置为failover,重试0次/或者failfast
-->
<dubbo:service retries="0" interface="com.lhy.service.user.UserFacade" ref="userFacade" cluster="failover"/> <dubbo:service retries="0" interface="com.lhy.service.user.ProductFacade" ref="productFacade" cluster="failover"/> <dubbo:service retries="0" interface="com.lhy.service.user.AccountFacade" ref="accountFacade" cluster="failover"/> </beans>

消费者一方,consumer.xml ,通过直连来访问:

 <dubbo:reference id="accountFacade" interface="com.lhy.service.user.AccountFacade" url="dubbo://localhost:20880" />

说白了就是,开发测试阶段,不让服务提供方往注册中心注册,但是能从注册中心订阅已有的服务(如果正开发的服务依赖某个服务的话,可以调用)。如果配置了只订阅,那么本 provider中所有的服务,只能通过 直连来访问。

dubbo-常用配置的更多相关文章

  1. Dubbo常用配置解析

    一.多版本的支持 如何发布服务,需要将需要暴露的服务接口发布出去供客户端调用,需要在java同级目录新建一个resources目录,然后将resoureces目录标记成Test Resoureces ...

  2. dubbo常用配置及注意事项

    1.启动时检查缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成,以便上线时,能及早发现问题,默认check=true. 关闭所有服务的启动时检查:(没有提供者时报错 ...

  3. dubbo的常用配置(基于注解)

    之前记录了基于springboot的dubbo入门案例,今天在此基础上记录dubbo官网介绍的常用属性配置,dubbo读取我们配置的属性时是有优先级的,优先级如下图: 如图所示,优先级的属性依次为虚拟 ...

  4. Dubbo在开发中的一些常用配置

    介绍Dubbo在开发中的一些常用配置,文中内容主要参考dubbo文档配置和示例两节,详细可移步访问  传送站 1. 属性配置方法及加载顺序 属性常用配置方法主要有三种: 第一种是通过启动时在虚拟机参数 ...

  5. dubbo简单配置与使用

    dubbo简介 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时 ...

  6. logback 常用配置详解<appender>

    logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...

  7. 【转】logback logback.xml常用配置详解(三) <filter>

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1110008, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  8. 【转】logback logback.xml常用配置详解(二)<appender>

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  9. 【转】logback logback.xml常用配置详解(一)<configuration> and <logger>

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  10. 【转】logback 常用配置详解(序)logback 简介

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

随机推荐

  1. php,ajax上传文件,多文件上传

    HTML <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF- ...

  2. 爬虫技巧-西瓜视频MP4地址获取

    记录一下西瓜视频MP4地址的获取步骤 目标: 指定西瓜视频地址,如 https://www.ixigua.com/a6562763969642103303/#mid=6602323830,获取其视频M ...

  3. ZUFE2483 DO IT YOURSELF 2017-05-31 14:41 40人阅读 评论(0) 收藏

    2483: DO IT YOURSELF 时间限制: 2 Sec  内存限制: 128 MB 提交: 8  解决: 3 [提交][状态][讨论版] 题目描述 有四个字符串S,T,tmp,ans,一开始 ...

  4. whu暑期集训#1

    题号:SGU123----SGU131 Problem A: 题意:求斐波那契的前N项和.. 做法:直接模拟,注意得用long long Problem B: 题意:给定一个封闭的多边形,求一个点在不 ...

  5. day09_雷神_模块二

    day09 序列化之json 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊 ...

  6. DXP快捷键记录(红色为经常用到的)

    dxp快捷键 1.设计浏览器快捷键:鼠标左击                         选择鼠标位置的文档鼠标双击                         编辑鼠标位置的文档鼠标右击   ...

  7. EBS 取消“是否提交另一项请求”提示

    在使用EBS提交请求后,总要弹出“是否提交另一项请求”的提示,而我们往往选择“否”,这个提示就显得多余. 为了减轻这“多一步”的负担,取消“是否提交另一项请求”的提示,设置方法如下: 以下profil ...

  8. XAMPP配置基于虚拟目录、多域名的环境

      打开Apache 2.x 配置文件 http.conf 搜索Include etc/extra/httpd-vhosts.conf,然后去掉前面的#号 再编辑extra/httpd-vhosts. ...

  9. 记录一次错误处理 (xml序列化和反序列化相关)

    XML序列化后,反序列化时出现错误 报错现象 System.InvalidOperationException: XML 文档(40, 11)中有错误. ---> System.Xml.XmlE ...

  10. Spring AOP 源码分析 - 筛选合适的通知器

    1.简介 从本篇文章开始,我将会对 Spring AOP 部分的源码进行分析.本文是 Spring AOP 源码分析系列文章的第二篇,本文主要分析 Spring AOP 是如何为目标 bean 筛选出 ...