SpringCloud-サービス登録センター
6774 ワード
1、Eureka
1、サービスガバナンスとは
SpringCloudはNetflix社が開発したEurekaモジュールをカプセル化し、サービスガバナンスを実現
従来のRPCリモートコールフレームワークでは、各サービスとサービス間の依存関係を管理するのが複雑で、管理が複雑であるため、サービスガバナンス、サービスとサービス間の依存関係を管理する必要があり、サービスコール、負荷均衡、許容誤差などを実現し、サービス発見と登録を実現することができる.
2、サービス登録とは
EurekaはC/Sの設計アーキテクチャを採用し、Eureka Serverはサービス登録機能のサーバーとして、サービス登録センターであり、システム内の他のマイクロサービスは、Eurekaのクライアントを使用してEureka Serverに接続し、心拍接続を維持する.これにより、システムの保守担当者は、Eureka Serverを使用して、システム内の各マイクロサービスが正常に稼働しているかどうかを監視できます.
サービス登録と発見には、サーバが起動すると、現在の自分のサーバの情報、例えばサービスアドレス、通信アドレスなどを別名で登録センターに登録する登録センターがあります.もう一方(消費者|サービスプロバイダ)は、この別名で登録センターに実際のサービス通信アドレスを取得し、ローカルRPC呼び出しRPCリモートコールフレームワークコア設計思想を実現する.登録センターは、登録センターを使用して各サービスとサービス間の依存関係を管理するためである.どのRPCリモートフレームワークにも、登録センターがある(サービスアドレスに関する情報、例えばインタフェースアドレス等)
3、Eurekaコンポーネント
Eurekaには、Eureka ServerとEureka Clientのコンポーネントが含まれています.
Eureka Serverはサービス登録サービスを提供しています
各マイクロ・サービス・ノードは、構成を開始すると、Eureka Serverに登録されます.これにより、Eureka Serverのサービス・レジストリに使用可能なサービス・ノード情報が格納され、サービス・ノードの情報はインタフェースで直感的に表示されます.
Eureka Clientは登録センターを通じてアクセスします
Javaクライアントであり、Eureka Serverのインタラクションを簡略化するために使用され、クライアントは同時に内蔵された、ポーリング(round-robin)ロードアルゴリズムを使用するロード・イコライザ.アプリケーションが起動すると、Eureka Serverにハートビートが送信されます(デフォルトでは30秒に1回).Eureka Serverが複数のハートビート・サイクルでノードのハートビートを受信しない場合、Eureka Serverはサービス・レジストリからノードを除去します(デフォルトでは90秒).
4、Eureka単機版
5、Eurekaクラスタ版
6、ActuatorとDiscoverClient
7、自己保護と心拍数時間と待ち時間の変更を禁止する
2、Zookeeper
1、DockerでZookeeperを引く
引き出しが完了したらzookeeeperを起動しdocker exec-it xxx bash/binを使用してコンテナに入り、binディレクトリに入ってから./zkCli.shはサービス側の表示に入り、
2、提供者
3、消費者
4、Zookeeperの特徴
3、Consul
1、dockerでconsulを引く
2、提供者と消費者の配置
1、サービスガバナンスとは
SpringCloudはNetflix社が開発したEurekaモジュールをカプセル化し、サービスガバナンスを実現
従来のRPCリモートコールフレームワークでは、各サービスとサービス間の依存関係を管理するのが複雑で、管理が複雑であるため、サービスガバナンス、サービスとサービス間の依存関係を管理する必要があり、サービスコール、負荷均衡、許容誤差などを実現し、サービス発見と登録を実現することができる.
2、サービス登録とは
EurekaはC/Sの設計アーキテクチャを採用し、Eureka Serverはサービス登録機能のサーバーとして、サービス登録センターであり、システム内の他のマイクロサービスは、Eurekaのクライアントを使用してEureka Serverに接続し、心拍接続を維持する.これにより、システムの保守担当者は、Eureka Serverを使用して、システム内の各マイクロサービスが正常に稼働しているかどうかを監視できます.
サービス登録と発見には、サーバが起動すると、現在の自分のサーバの情報、例えばサービスアドレス、通信アドレスなどを別名で登録センターに登録する登録センターがあります.もう一方(消費者|サービスプロバイダ)は、この別名で登録センターに実際のサービス通信アドレスを取得し、ローカルRPC呼び出しRPCリモートコールフレームワークコア設計思想を実現する.登録センターは、登録センターを使用して各サービスとサービス間の依存関係を管理するためである.どのRPCリモートフレームワークにも、登録センターがある(サービスアドレスに関する情報、例えばインタフェースアドレス等)
3、Eurekaコンポーネント
Eurekaには、Eureka ServerとEureka Clientのコンポーネントが含まれています.
Eureka Serverはサービス登録サービスを提供しています
各マイクロ・サービス・ノードは、構成を開始すると、Eureka Serverに登録されます.これにより、Eureka Serverのサービス・レジストリに使用可能なサービス・ノード情報が格納され、サービス・ノードの情報はインタフェースで直感的に表示されます.
Eureka Clientは登録センターを通じてアクセスします
Javaクライアントであり、Eureka Serverのインタラクションを簡略化するために使用され、クライアントは同時に内蔵された、ポーリング(round-robin)ロードアルゴリズムを使用するロード・イコライザ.アプリケーションが起動すると、Eureka Serverにハートビートが送信されます(デフォルトでは30秒に1回).Eureka Serverが複数のハートビート・サイクルでノードのハートビートを受信しない場合、Eureka Serverはサービス・レジストリからノードを除去します(デフォルトでは90秒).
4、Eureka単機版
1、 Eureka-Server, pom
dependency>
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
/
2、
server:
port: 7001
eureka:
instance:
hostname: localhost #eureka
client:
#
register-with-eureka: false
#
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
3、
@EnableEurekaServer
1、 Eureka Eureka-Provider, pom
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
2、
server:
port: 8001
eureka:
client:
#
register-with-eureka: true
# Eureka Server , true, , true ribbon
fetch-registry: true
service-url:
defaultZone: http://localhost:7001/eureka
3、
@EnableEurekaClient
1、 Eureka-Customer, pom
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
2、
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:7001/eureka/
3、
@EnableEurekaClient
4、 RestTemplate
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
5、 restTemplate
public static final String PAYMENT_URL = "http://localhost:8001/payment";
@Resource
private RestTemplate restTemplate;
@GetMapping("/payment/get/{id}")
public CommonResult getPaymentByID(@PathVariable("id") Long id){
return restTemplate.getForObject(PAYMENT_URL + "/get/" + id, CommonResult.class);
}
5、Eurekaクラスタ版
1、 Eureka-Server7001 7002,
Eureka-7001
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com #
#hostname: localhost #eureka
client:
#
register-with-eureka: false
#
fetch-registry: false
service-url:
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #
defaultZone: http://eureka7002.com:7002/eureka/
Eureka-7002
server:
port: 7002
eureka:
instance:
hostname: eureka7002.com
#hostname: localhost #
client:
register-with-eureka: false
fetch-registry: false
service-url:
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #
defaultZone: http://eureka7001.com:7001/eureka/ #
2、 , , spring.application.name 。
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
3、 80,
restTemplate Bean @LoadBalanced , 。
restTemplate URL,
public static final String PAYMENT_URL = "http://PROVIDER-PAYMENT-SERVICE"
6、ActuatorとDiscoverClient
1、
eureka:
instance:
instance-id: payment-8002 # id
prefer-ip-address: true # ip
2、 DiscoverClient 。
@EnableDiscoveryClient
7、自己保護と心拍数時間と待ち時間の変更を禁止する
1、 Eureka 90 , , CAP AP , (Availability)、 (Partition tolerance)。
eureka.server.enable-self-preservation=false
2、
Eureka 30 ,
eureka.instance.lease-renewal-interval-in-seconds=10 # 10
3、 Eureka , 90 ,
eureka.instance.lease-expiration-duration-in-seconds=20 # 20
2、Zookeeper
1、DockerでZookeeperを引く
引き出しが完了したらzookeeeperを起動しdocker exec-it xxx bash/binを使用してコンテナに入り、binディレクトリに入ってから./zkCli.shはサービス側の表示に入り、
ls /
get /zookeeper
get /service
get /service/xxx
get /dubbo
2、提供者
1、 , pom
org.springframework.cloud
spring-cloud-starter-zookeeper-discovery
2、
spring:
application:
name: provider-payment-service
cloud:
zookeeper:
connect-string: xxx.xxx.xxx.xxx:2181
3、 @EnableDiscoveryClient , zookeeper
3、消費者
1、 , pom
2、 ,
3、 @EnableDiscoverClient
4、 , RestTemplate, @Balanced
5、 restTemplate
4、Zookeeperの特徴
Zookeeper , , id 。
3、Consul
1、dockerでconsulを引く
1、 consul
docker search consul
2、 consul
docker pull consul:x.x.x
3、
docker run -d -p 8500:8500 --name consul consul:1.6.1
2、提供者と消費者の配置
1、 zookeeper , pom
org.springframework.cloud
spring-cloud-starter-consul-discovery
2、 , ,
server:
port: 8006
spring:
application:
name: provider-payment-8006
cloud:
consul:
host: xxx.xxx.xxx.xxx
port: 8500
discovery:
# ip
prefer-ip-address: true
3、 consul 8500
4、 , , consul actuator/health , X, , 。