1. 程式人生 > >dubbo學習 (3) 啟動時檢查引數

dubbo學習 (3) 啟動時檢查引數

     dubbo對於依賴的服務預設採取了啟動的時候就做服務可用性檢查,若是不可用將會丟擲異常。

    dubbo文件中有以下敘述:如果你的Spring容器是懶載入的,或者通過API程式設計延遲引用服務,請關閉check,否則服務臨時不可用時,會丟擲異常,拿到null引用,如果check=false,總是會返回引用,當服務恢復時,能自動連上。

     主要有三個引數配置:

    1、關閉某個服務的啟動時檢查:(沒有提供者時報錯)

   <dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService"  check="false" />

      若是此時關閉掉服務提供者的伺服器,此時啟動客戶端的伺服器,可以正常啟動,

      注:啟動類測試類為:

import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.alibaba.dubbo.demo.DemoService;
public class Consumer {
 
    public static void main(String[] args) throws Exception {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"});
        context.start();
        DemoService demoService = (DemoService)context.getBean("demoService"); // 獲取遠端服務代理
//        String hello = demoService.sayHello("world"); // 執行遠端方法
//        System.out.println( hello ); // 顯示呼叫結果
    }
 
}

     若將 check="false"改為true,啟動客戶端伺服器報錯,資訊如下:

Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 14 in XML document from class path resource [applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 93; 與元素型別 "check" 相關聯的屬性 "{1}" 應有左引號。
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:404)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
	at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:113)
	at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:80)
	at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
	at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
	at Consumer.main(Consumer.java:8)
Caused by: org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 93; 與元素型別 "check" 相關聯的屬性 "{1}" 應有左引號。
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:441)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
	at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1436)
	at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:829)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanAttribute(XMLNSDocumentScannerImpl.java:439)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:255)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:347)
	at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
	... 14 more

2、關閉所有服務檢查

<dubbo:consumercheck="false"/>

3、關閉註冊中心啟動時檢查
<dubbo:registrycheck="false"/>


4、使用dubbo.properties配置:

dubbo.reference.com.foo.BarService.check=false
dubbo.reference.check=false
dubbo.consumer.check=false
dubbo.registry.check=false

5、註解服務介面時,怎麼配置check 一直沒找到方法,以後再研究?

相關推薦

dubbo學習 3 啟動檢查引數

     dubbo對於依賴的服務預設採取了啟動的時候就做服務可用性檢查,若是不可用將會丟擲異常。     dubbo文件中有以下敘述:如果你的Spring容器是懶載入的,或者通過API程式設計延遲引用服務,請關閉check,否則服務臨時不可用時,會丟擲異常,拿到null

REDIS 學習7 啟動的幾個異常排除

一, WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memor

python介面測試學習3之http請求引數

post請求引數常見:1. application/json     {“key1“:”value1”,“key2":“value2"}2. application/x-www-form-urlencoded        key1=value1&key2=value

Redis學習3-redis啟動

clas CA shu 本機 運行 指定 默認端口 bsp moni 前端啟動 tomcat,redis,mysql的端口號: mysql 3306 tomcat 8088 redis 6379 一,啟動redis服務: 例如當前位置在

Android 5.0核心和原始碼學習3——SystemServer啟動了什麼服務?

/**入口 * The main entry point from zygote. */ public static void main(String[] args) { new SystemServer().run(); } /**

基於Qt的OpenGL可編程管線學習3- 使用Instanced方式繪制

qt opengl shader instanced 繪制多個重復的模型時,使用Instanced方式繪制可以大大加快顯然速度。繪制效果如下圖所示:1、Vertex Shader中定義如下:attribute vec3 pos; attribute vec2 coord; attribute

OSChinaclient源代碼學習3--輪詢機制的實現

man data 本地變量 其它 失敗 cbo cancel seh ref 主要以OSChina Androidclient源代碼中Notice的輪詢機制進行解讀。 一、基礎知識 一般IM(即使通訊)的實現有兩種方式:推送和輪詢,推送就是se

PYTHON設計模式學習3:Singleton pattern

blog ora 參考 擁有 沒有 _屬性 ces cti ttr 參考了其他的博客:http://ghostfromheaven.iteye.com/blog/1562618 #-*- encoding=utf-8 -*- print ‘--------------

tcpdump 學習3:MySQL Query

說明 server gen rollback 命令 復雜 pro 關於 col 在MySQL線上環境我們一般只打開了binary log,slow log,有時我們需要查看general log呢?因為該log記錄所有的請求,打開該日誌肯定給磁盤造成很大壓力,IO能力有所下

Django學習3模板定制

ase 我們 頻繁 ping upload shang star 2.0 asc   在Django學習(一)一首情詩中,views.py中HTML被直接硬編碼在代碼之中,雖然這樣便於解釋視圖是如何工作的,但直接將HTML硬編碼到視圖卻不算一個好主意。因為: 對頁面設計進

機器學習基石筆記11——機器可以怎樣學習3

1.2 div esc 怎樣 學習 clas regress 1.3 1.4 Lecture 11: Linear Models for Classification 11.1 Linear Models for Binary Classification 11.2 S

java入門學習3—循環,選擇,基礎算法,API概念

思想 冒泡 方法 就是 最大的 接口 兩個 循環控制 得到 1、順序結構:也就是順著程序的前後關系,依次執行。2、選擇分支:利用if..else , / switch(){case [ 這個必須是常量]:}; / if..else if….. ….else..等語句讓程序在

web前端學習3:認識HTML基本標簽

鼠標 首頁 一份 格式 所在地 有著 同時 網上 今天 本章主旨:   介紹常用的文本相關標簽,如<h>,<p>,<a>;簡介常見的HTML標簽屬性,如title屬性,href屬性,id/class屬性等;重點掌握<a>標簽。

Python爬蟲學習3

collect nbsp pri div time urlparse links ews 是否 在慕課網學習並創建了一個簡單的爬蟲包,爬取百度百科相關詞條信息 程序中會用到第三方解析包(BeautifulSoup4),Windows環境下安裝命令:pip install B

java===java基礎學習3---數據類型轉換,運算符級別,枚舉類型

test [] sof 進度 如果 nbsp math 否則 枚舉 數據類型轉換: 有的時候,程序需要將數據類型,比如 int + float ,結果是float, 這裏的int就被轉換為float類型,屬於合法轉換。 Java中的合法轉換如下圖: 紅色表示無信息丟失的轉

perl學習3模式匹配與正則表達式

.... 表達式 正則表達 pos 匹配模式 模式匹配 $2 多個 info 一:模式匹配中的特殊字符 1:  點號 .     匹配任何單個字符(換行符\n除外) 2:  反斜線 \     轉義字符,用於特殊符號前,使其失去特殊字符的作用變成普通字符 3:  +   

Python3玩轉兒 機器學習3

分享圖片 多項式 pca 圖像 可視化 情況 異常 ... 學習 機器學習算法可以分為: 監督學習 非監督學習 半監督學習 增強學習 監督學習:給機器的訓練數據擁有“標記”或者“答案”,例如: 我們需要告訴機器左邊的畫面是一只狗,而右邊的照片是一只貓。同理對於MNIS

完全用Deepin Linux娛樂、工作、學習3-- 無線網卡及藍牙設備驅動篇

系統/運維 Linux 娛樂 1、異常說明 在前面木子已經講到了關於顯卡驅動及CPU微碼補丁更新,今天木子要講的是關於適配藍牙及無線網卡設備的驅動問題,它不僅僅適用於新驅動的安裝,也適用於驅動異常的修復。默認情況下木子的筆記本安裝Deepin Linux後是自帶驅動的,只是在折騰的過

Spring學習3:Spring概述轉載

效率 調度 jpa 源代碼 一個 維護 html www hiberna 1. Spring是什麽?   Spring是一個開源的輕量級Java SE(Java 標準版本)/Java EE(Java 企業版本)開發應用框架,其目的是用於簡化企業級應用程序開發。   在面向對

Spring學習3:IOC基礎轉載

目標 發生 由於 不同 擴展 通過 new 包括 control 一. IoC是什麽   Ioc—Inversion of Control,即“控制反轉”,不是什麽技術,而是一種設計思想。在Java開發中,Ioc意味著將你設計好的對象交給容器控制,而不是傳統的在你的對象內部