ServiceDiscovery - eureka
6939 ワード
Service Discovery
msaは、複数のサービス間の呼び出しから構成される。
通常はIPとポートで呼び出されますが、クラウド環境ではIPが常に動的に変化するため、有効な位置を知る機能が必要です。
必要なサービスを提供する仕事はサービス部門が責任を負う。
Spring Cloud Netflix Eureka
Netflix社は独自のクラウドテクノロジーを寄付しました
1.ユーリカードサーバにサービスを登録する
2.クライアント要求ロードバランサ(APIゲートウェイ)に必要な情報
3.サービス部門が要求した情報の検索
プロジェクトの作成
ユリカはクライアントとサーバの2つの部分から構成されています.
サーバー
依存項目の追加 <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
他のサービスと通信できるレジストリの確立 @SpringBootApplication
@EnableEurekaServer
public class DiscoveryserviceApplication {
public static void main(String[] args) {
SpringApplication.run(DiscoveryserviceApplication.class, args);
}
}
application.ymlserver:
port: 8761
spring:
application:
name: discoveryservice
eureka:
client:
register-with-eureka: false
fetch-registry: false
クライアント
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
@SpringBootApplication
@EnableEurekaServer
public class DiscoveryserviceApplication {
public static void main(String[] args) {
SpringApplication.run(DiscoveryserviceApplication.class, args);
}
}
server:
port: 8761
spring:
application:
name: discoveryservice
eureka:
client:
register-with-eureka: false
fetch-registry: false
依存項目の追加
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
@EnableDiscoveryClientはspring-cloud-comonsに存在します.@EnableEurekaClientはspring-cloud-netflixに存在し、ユリカのみで実行されます.
@SpringBootApplication
@EnableDiscoveryClient
public class UserServiceApplication {
public static void main(String[] args) {
SpringApplication.run(UserServiceApplication.class, args);
}
}
application.ymlserver:
port: 0
spring:
application:
name: user_service
eureka:
instance:
instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}}
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://127.0.0.1:8761/eureka
.ymlファイルは登録でより詳細に議論されます.登録
複数のサービスが登録されている場合、ポート競合のリスクにより正常に動作しません.
いろいろな方法を提案し,より良い解決策を探し出す.
1. .ymlファイルのポート番号の変更->毎回変更できません
2.edit configurationの使用
-Dserver.port=9002
3.端末にポート番号を設定する
mvn spring-boot:run -Dspring-boot.run.jvmArguments='-Dserver.port=9003'
≪ランダム割当てポート番号|Random Allocation Port Number|Eas≫-ランダム・ポート
server:
port: 0
spring:
application:
name: user_service
eureka:
instance:
instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}}
Reference
この問題について(ServiceDiscovery - eureka), 我々は、より多くの情報をここで見つけました https://velog.io/@jifrozen/MSA프로젝트-ServiceDiscoveryテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol