ダボ学習するとき-8-ダボのチェックを開始します

次のスタートアップの効果を確認します。

(1)ダボのデフォルトのチェックはサービスに依存して起動時に利用可能である、それは例外がスローされます、デフォルトでは、早期に問題をオンラインを識別することができたときにように、春の初期化が完了し停止し、利用できません  check="true"

(2)により、  check="false" 厳重な検査、例えば、テストするときに、起動する場合の当事者がなければならない、いくつかのサービスは気にしない、または依存のサイクルがあります

あなたが怠惰なSpringコンテナは、それ以外のサービスは、例外がスローされたときに一時的に利用できない、チェックをオフにし、ロードされた、または遅延APIプログラミングサービスによって引用されている場合場合(3)、null参照を取得し  check="false"、常に参照を返し、ときサービスが復元されたときに自動的に接続します。

一例として、前のポストプロジェクトを使用します:

以下のように、オーダー・サービス・コンシューマー・プロジェクト:直接サービスの消費者を開始」

 

 次のように特定のエラーメッセージは、次のとおりです。Noプロバイダのヒントません

1つのスレッドの例外は、「メイン」org.springframework.beans.factory.UnsatisfiedDependencyException:名前の「orderServiceImpl」豆作成エラー:不満依存フィールド「UserServiceの」を介して表現しました。「UserServiceの」名前を持つBeanを作成エラー:ネストされた例外はorg.springframework.beans.factory.BeanCreationExceptionあるFactoryBeanのは、オブジェクトの作成に例外を投げました。ネストされた例外はjava.lang.IllegalStateExceptionです:サービスcom.lch.test.service.UserServiceの状態を確認できませんでした。利用できませんプロバイダのための URLの飼育係からサービスcom.lch.test.service.UserService://127.0.0.1:2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=order-service-consumer&check=false&dubbo=2.6.2&generic=false&interface=com.lch.test.service.UserService&methods=getUserAddressList&pid=8740®ister.ip= 192.168.0.110&remote.timestamp = 1563206416952&側面=コンシューマ&消費者192.168.0.110使用ダボバージョン2.6.2にタイムスタンプ= 1563370847797 
2      org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588で3      でorg.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88 4     org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366で5      org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1268で6      org.springframework.beansで.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553 7      org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483で8     org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:312で9      org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingletonで(DefaultSingletonBeanRegistry.java:230 10      org.springframeworkで。 beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308 11      org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197で12      org.springframework.beans.factory.supportました。 DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761 13     org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867で14      org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543で15      org.springframework.context.support.ClassPathXmlApplicationContextで<初期化>(ClassPathXmlApplicationContext.java:139 16      org.springframework.context.support.ClassPathXmlApplicationContextで<初期化>(ClassPathXmlApplicationContext.java:83 17      com.lch.test.MainApplication.mainで(MainApplication.java:12 18org.springframework.beans.factory.BeanCreationException:に起因する誤差の名前でBeanを作成する「UserServiceの」:FactoryBeanのは、オブジェクトの作成時に例外がスローされました。ネストされた例外はjava.lang.IllegalStateExceptionです:サービスcom.lch.test.service.UserServiceの状態を確認できませんでした。利用できませんプロバイダのための URLの飼育係からサービスcom.lch.test.service.UserService:// 127.0.0.1:2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=order-service-consumer&check=false&dubbo= 2.6.2&= com.lch.test.service.UserService&偽=ジェネリック・インタフェースメソッド= getUserAddressList&PID = 8740&register.ip = 192.168.0.110&remote.timestamp = 1563206416952&側面=消費者&タイムスタンプ=消費者192.168.0.110使用ダボバージョン2.6から1563370847797。
     org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:177で20      org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103で21      org.springframework.beansで.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1640 22      org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:254で23      org.springframework.beans.factory.support.AbstractBeanFactoryで.getBean(AbstractBeanFactory.java:202 24     org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208で25      org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1316で26      org.springframework.beansで.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1282 27      org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1101で28      org.springframework.beans.factory.support.DefaultListableBeanFactoryで.resolveDependency(DefaultListableBeanFactory.java:1066 29      org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585で30      ... 15 以上
 31java.lang.IllegalStateException:によって引き起こされるサービスcom.lch.test.service.UserServiceの状態を確認できませんでした。URLの飼育係からサービスcom.lch.test.service.UserServiceに利用可能なプロバイダん://127.0.0.1:?2181 / com.alibaba.dubbo.registry.RegistryService ANYHOST =真&アプリケーション=オーダーサービス-コンシューマー&偽&ダボ= =チェック2.6.2&ジェネリック= FALSE&インタフェース= com.lch.test.service.UserService&メソッド= getUserAddressList&PID = 8740&register.ip = 192.168.0.110&remote.timestamp = 1563206416952&側面=消費者&タイムスタンプ= 1563370847797消費者192.168.0.110使用ダボバージョン2.6.2に
 32      COMました。 alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:42233      com.alibaba.dubbo.config.ReferenceConfig.initで(ReferenceConfig.java:34      com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163で35      com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66で36      org.springframework.beansました。 factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:170 37      ... 25以上

これはチェックが起動するように設定されていない場合、ダボが行われ、デフォルトの起動チェックである、ので、あなたが消費者サービスを開始したときには、ある、サービス・プロバイダーをチェックアップ開始していません。

チェック=「false」を持つ内部のdubboLreferenceラベルで、設定ファイルを変更します。 

1の<?xml version = "1.0"エンコード= "UTF-8"?>
 2 <豆のxmlns = "http://www.springframework.org/schema/beans"
 3つ      のxmlns:XSI = "のhttp:// WWW。 w3.org/2001/XMLSchema-instance」
 4つ      のxmlns:ダボ= "http://dubbo.apache.org/schema/dubbo"
 5      のxmlns:コンテキスト= "http://www.springframework.org/schema/context"
 6      XSI:のschemaLocation = "http://www.springframework.org/schema/beans 
 7             のhttp:// www.springframework.org/schema/beans/spring-beans-4.3.xsd 
8             のhttp:// dubbo.apache。 ORG /スキーマ/ダボ      
9             のhttp://dubbo.apache.org/schema/dubbo/dubbo.xsd 
10             HTTP:// www.springframework.org/schema/context 
11             HTTP:// www.springframework.org/schema/context/spring-context.xsd「> 
12  
13      < - -スキャンパッケージ注釈!>
 14      <コンテキスト:コンポーネント- スキャン
 15          ベース- パッケージ = "com.lch.test.service.impl" />
 16  
。17      < - 1コンシューマ・アプリケーション名- ! >
 18は、      ダボ<:ファイルアプリケーション名= "注文---サービスコンシューマー" />
 。19  
20れる      <! - 2.センターを指定するレジスタに対処- >
 21である      <ダボ:レジストリアドレス=「のZooKeeper://127.0.0.1:
2181" /> 22 
23      < -リモートサービスエージェントのダボ:!リファレンスを生成:コールするリモートサービス・インターフェース、宣言の必要性- >
 24      <! - UserServiceのと呼ばれるサービスを公開するユーザーサービスプロバイダープロジェクトを、ここでは、このサービスを参照するために- >
 25      <ダボ:リファレンスID = "そのUserServiceの" 
26 = "com.lch.test.service.UserServiceは"インターフェイスである"偽に" =チェック />
 27  
28      -接続監視センターは、自動検出を使用:! - < - >
 29      <ダボ:モニタープロトコル= "登録" />
 30      <! -直接登録センター- >
 31である      < - <ダボ:!モニタアドレス= "127.0.0.1:7070" /> - >
 32  
33は 
34である </豆>

そして、消費者向けサービスを開始します。

 

 

 dubbo启动时检查可以配置三种作用范围,上面例子是仅仅关闭对user-service-provider这个服务提供者的检查,如果要关闭所有服务消费者对 与其对应的服务提供者的检查,

可以在标签 dubbo:consumer 中添加check="false" 即:  <dubbo:consumer check="false" />

おすすめ

転載: www.cnblogs.com/enjoyjava/p/11203975.html