「マイクロサービス」のサービス登録・発見例を詳しく解説

Y2J
リリース: 2017-05-12 09:58:09
オリジナル
4161 人が閲覧しました

この記事では主に SpringBoot のサービスの登録と検出の例を紹介します。興味のある方は参考にしてください

マイクロサービス

「マイクロサービス」を実践するには、当然のことながらサービスの登録と検出の方法を学ぶ必要があります

。マイクロサービスを学習するには SpringBoot を選択するのが自然ですが、それに密接に関連する SpringCloud を選択することもできます。もちろん、dubbo などの他のテクノロジーを選択することもできます。また、Zookeeper を使用してサービスの登録と検出を実現することもできます。この機能を実装するのが良いか悪いかは人それぞれです


SpringCloud

Spring Cloud は、分散システムで一般的なパターンのいくつかを迅速に構築するためのツールを開発者に提供します

SpringCloud には分散/バージョン管理が含まれています。構成、分散/バージョン管理された構成、およびその他の多くのサブプロジェクト。

分散/バージョン管理
  1. サービスの登録と検出
  2. ルーティング
  3. サービス間の呼び出し
  4. 負荷分散
  5. 回路ブレーカー
  6. グローバルロック
  7. リーダーの選出とクラスターの状態
  8. 分散メッセージング

  9. サービスの登録と検出

SpringCloudモジュール

spring-cloud-starter-eureka-server

エンジニアリング
モジュール

サービス登録センター
  1. サービスモジュール
  2. サービス登録センター

検出モジュールを作成し、build.gradleにspring-cloud-starter-eureka-server依存関係を導入する

apply plugin: 'org.springframework.boot'

dependencyManagement {
  imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:"+ springCloudVersion
  }
}
repositories {
  mavenCentral()
}
dependencies {
  compile ('org.springframework.cloud:spring-cloud-starter-eureka-server')
}
jar {
  baseName = 'discovery-bootcwenao'
}
ログイン後にコピー

アノテーション@EnableEurekaServerによって提供 登録センターservice

/**
 * @author cwenao
 * @version $Id DiscoveryBootcwenaoApplication.java, v 0.1 2017-01-12 9:56 cwenao Exp $$
 */
@EnableEurekaServer
@SpringBootApplication
public class DiscoveryBootcwenaoApplication {
  public static void main(String[] args) {
    new SpringApplicationBuilder(DiscoveryBootcwenaoApplication.class).web(true).run(args);
  }
}
ログイン後にコピー

application.yml eureka

属性を設定する

server:
 port: 8761
eureka:
 instance:
  hostname: discovery
 client:
  registerWithEureka: false
  fetchRegistry: false
  service-url:
   defaultZone: http://discovery:${server.port}/eureka/
ログイン後にコピー
localhost:8761にアクセス


サービス登録

サービスモジュールを作成し、build.gradleにspring-cloud-starter-eurekaを導入するりー

アノテーション @EnableDiscoveryClient を使用してサービスを登録します

apply plugin: 'org.springframework.boot'
dependencyManagement {
  imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:"+ springCloudVersion
  }
}

dependencies {
  compile('org.springframework.cloud:spring-cloud-starter-eureka')
  compile('org.springframework.cloud:spring-cloud-stream')
}
sourceSets {
  main {
    resources.srcDirs = ['src/main/resources', 'src/main/java']
    resources.includes = ['**/*.xml', '**/*.yml']
  }
}
jar {
  baseName = 'apigateway-bootcwenao'
}
ログイン後にコピー

application.yml eureka プロパティを設定します

@SpringBootApplication
@EnableDiscoveryClient
public class ApiGatewayBootcwenaoApplication {
  public static void main(String[] args) {
    SpringApplication.run(ApiGatewayBootcwenaoApplication.class, args);
  }
}
ログイン後にコピー

登録が完了したら、spring.application.name の設定を介してサービスにアクセスできます

localhost:8761 にアクセスすると、サービスはすでに登録されています センターに登録します


サービス登録センターでユーザー名とパスワードを有効にします

applicaiton.ymlのユーザー名とパスワードを設定することで

server:
 port: 10002
spring:
 application:
  name: apigateway
eureka:
 client:
  registerWithEureka: true
  fetchRegistry: true
  serviceUrl:
   defaultZone: http://localhost:8761/eureka/
ログイン後にコピー

サービスプロバイダーのapplication.ymlを設定します

security:
 basic:
  enabled: true
 user:
  name: aa
  password: abcd
ログイン後にコピー

【関連する推奨事項】

1.

無料の Java ビデオチュートリアル

2. JAVA チュートリアルマニュアル

3. Java アノテーションの包括的な分析

以上が「マイクロサービス」のサービス登録・発見例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート