SpringCloud統合領事

1:新しいプロジェクトを作成します。

次のステップは、になっています、

依存関係を追加porm.xml

<依存性> 
        <依存性> 
            <のgroupId> org.springframework.boot </のgroupId> 
            <たartifactId>ばねブートスタータアクチュエータ</たartifactId> 
        </依存> 
        <依存性> 
            <のgroupId> org.springframework.boot </のgroupId > 
            <たartifactId>春・ブート・スターター・ウェブ</たartifactId> 
        </依存関係> 
        <依存> 
            <groupIdを> org.springframework.cloud </ groupIdを> 
            <たartifactId>春・クラウド・スターター・領事-発見</たartifactId> 
        </依存関係> 

        <依存>  
            <groupIdを>組織。springframework.boot </ groupIdを>
            <たartifactId>ばねブートスタータ試験</たartifactId> 
            <スコープ>テスト</スコープ>
        </依存> 
    </依存関係> 
<dependencyManagement> 
   <依存性> 
      <依存性> 
         <のgroupId> org.springframework.cloud </のgroupId> 
         <たartifactId>ばねクラウド依存性</たartifactId> 
         <バージョン> Finchley.SR2 </バージョン> 
         <タイプ> POM </ type>の
         <スコープ> インポート </スコープ> 
      </依存> 
   </依存関係> 
</ dependencyManagement>

私は2.0.5を使用していますspringbootのバージョンは、2.1.6は、無効の理由を使用することを知りません

    <親> 
        <groupIdを> org.springframework.boot </ groupIdを> 
        <たartifactId>春・ブート・スターター・親</たartifactId> 
        <バージョン> 2.0.5.RELEASE </バージョン> 
        <relativePath /> <! -検索リポジトリから親- > 
    </親>

 

 

 

2:クラスを開始@EnableDiscoveryClientコメントがサービス発見のための支持を表明追加

@SpringBootApplication 
@EnableDiscoveryClient 
パブリック クラスConsulDemo2Application { 

    公共 静的 ボイドメイン(文字列[]引数){ 
        SpringApplication.run(ConsulDemo2Application。クラス、引数)。
    } 

}

3:ありません。このアドレスはspring.cloud.consul.discovery.serviceNameがサービスの領事登録名を指し、それ自体を構成することができた場合application.properties(領事のアドレスとポート番号のデフォルトはlocalhostの8500を:.されるプロフィール、クライアントが遅くなりますこの名前のサービスコールに応じました。)

spring.application.name =バネクラウドconsul- プロデューサー
はserver.port = 8501 
spring.cloud.consul.host = localhostを
spring.cloud.consul.port = 8500 
#注册到領事的服务名称
spring.cloud.consul.discovery .serviceName =サービス、プロデューサー

4:新しいHelloControllerを作成し、ハローサービスを提供

@RestController
 パブリック クラスHelloController { 

    @RequestMapping( "/ハロー" パブリック文字列のHello(){
         リターン "こんにちは、領事" 
    } 
}

アイテムの上にレジスタのコピーをロードバランシングをシミュレートするために、ばねクラウド領事-producer2の名前を変更し、対応するポート8507を変更し、helloメソッドの戻り値を変更する:「ハロー領事2」、および完全な2を起動するように変更プロジェクト。

領事消費者側:スプリングクラウド領事コンシューマ
ばねクラウド領事、消費財、POMファイルと一貫性のある上記の例を作成します。
プロファイル(クライアントは領事を設定するために登録することができ、領事は私たちのビジネスに合わせてお選びし、レジストリに登録されない場合があり、サービスを利用しながら、サービス情報が外部インターフェイス領事を介して提供することができる得るのみ必要です。)

application.properties

春Cloud- = spring.application.name consul- 消費者
はserver.port = 8503 
spring.cloud.consul.host = 127.0.0.1 
spring.cloud.consul.port = 8500 
#設定は、領事の登録する必要はありません
spring.cloudを。 consul.discovery.register = 

 

開始クラスは必要ありません@EnableDiscoveryClient

@SpringBootApplication
public class ConsulConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConsulConsumerApplication.class, args);
    }

}

测试,创建一个 ServiceController ,试试如果去获取 Consul 中的服务。

@RestController
public class ServiceController {

    @Autowired
    private LoadBalancerClient loadBalancerClient;
    @Autowired
    private DiscoveryClient discoveryClient;

    /**
     * 获取所有的服务
     * */

    @RequestMapping("/services")
    public Object services(){
        return discoveryClient.getInstances("service-producer");

    }

    /**
     * 从所有服务中选择一个服务(轮询)
     */
    @RequestMapping("/discover")
    public Object discover() {
        return loadBalancerClient.choose("service-producer").getUri().toString();
    }


}

运行services方法:

访问 http://localhost:8503/services

 源码:https://gitee.com/Hiro-D/Java/tree/master/consul-demo

 

参考文章:https://blog.csdn.net/qq_26641781/article/details/82080659

おすすめ

転載: www.cnblogs.com/a565810497/p/11078307.html