I.概要
サービスレジストリ:ストレージサービスインスタンスとロードバランシングサービスポリシーデータベース
本論文では、場合によって春のクラウドプロジェクトを使用する方法でナコスサービスの登録と発見プロセスを実証するため、ケースのイラスト画像が示す紙の主な流れ:
第二に、サービスプロバイダ(ナコスプロバイダ)
サービスプロバイダーは:再利用可能と呼び出し可能なサービスアプリケーション側の提供を意味します
2.1、新しい春ブーツ・プロジェクト、のpom.xml次のように:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zhoumo</groupId>
<artifactId>nacos-provider</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
<spring-cloud-alibaba.verion>0.9.0.RELEASE</spring-cloud-alibaba.verion>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.verion}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Spring Boot Start -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Spring Boot End -->
<!-- Nacos Start -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- Nacos End -->
</dependencies>
</project>
2.2コンフィギュレーション・ファイルは、AS(application.yml)以下:
server:
port: 8070
spring:
# 配置服务名称
application:
name: service-provider
# 配置 Nacos Server的地址
cloud:
nacos:
discovery:
server-addr: 192.168.145.129:8848
2.3、(アプリケーション)を次のようにクラスを開始します。
注釈を付けにより、@EnableDiscoveryClient
オープンナコスサービスの登録と発見:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {
public static void main(String[] args) {
SpringApplication.run(NacosProviderApplication.class, args);
}
}
2.4、制御装置(コントローラ)の先端を次の
書き込みRestController
テストのために提供するRESTfulなAPIを:
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/provider")
public class ProviderController {
@RequestMapping("/hello")
public String Hello(){
return "Hello, This is Nacos provider!";
}
}
2.5、登録が成功を検証するためのプロジェクトを開始します。
ナコスサーバーブラウザからアクセスします。http://192.168.145.129:8848 /ナコスを、サービスのリストをクリックし、その後、あなたがサービスを表示することができますがナコスサーバーに登録されています:
アクセス・テスト・インタフェースに2.6ブラウザ:
第三に、サービスコンシューマ(ナコス-消費者)
サービスの消費者は:パーティがサービスコールのためのアプリケーションを開始することを意味します
それは春のブートプロジェクトですので、ので、ここで消費者側でRestTemplateに来て服务提供者
コール。
3.1、新しい春ブーツ・プロジェクト、のpom.xml次のように:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zhoumo</groupId>
<artifactId>nacos-consumer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
<spring-cloud-alibaba.verion>0.9.0.RELEASE</spring-cloud-alibaba.verion>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.verion}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Spring Boot Start -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Spring Boot End -->
<!-- Nacos Start -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- Nacos End -->
</dependencies>
</project>
3.2、コンフィギュレーション・ファイルは、AS(application.yml)、次のとおりです。
server:
port: 8071
spring:
# 配置服务名称
application:
name: service-consumer
# 配置 Nacos Server的地址
cloud:
nacos:
discovery:
server-addr: 192.168.145.129:8848
3.3(アプリケーション)を次のようにクラスを開始します。
注釈を付けにより、@EnableDiscoveryClient
オープンナコスサービスの登録と発見:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(NacosConsumerApplication.class, args);
}
}
3.4、コンフィギュレーション・クラスとして(構成)、次のとおりです。
RestTemplateは、HTTPサービス、統一標準RESTfulなとカプセル化HTTPリンクとの通信を簡素化するRESTサービスにアクセスするためのSpringクライアントによって提供され、単に入ってくるURLを入力し、戻り値はすることができます。一般的に使用されるのHttpClient、RestTemplateは、従来の方法に比べてRESTfulサービスを呼び出すよりエレガントです。
インジェクションの設定クラスのRestTemplateは、プロジェクトで使用することができます。
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestTemplateConfigure {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
3.5、制御装置(コントローラ)の先端を次の
コントローラでは、によってRestTemplate、あなたは消費者がナコスサーバーによるサービス名のサービスプロバイダを見つけることができるかどうかをテストすることができますナコスサーバーへのアクセスに登録されているサービス名およびサービスプロバイダを使用して、サービスプロバイダにアクセスします。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
@RequestMapping("/consumer")
public class ConsumerController {
private final RestTemplate restTemplate;
@Autowired
public ConsumerController(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
@RequestMapping("/hello")
public String Hello(){
// 使用服务名称调用服务提供者
return restTemplate.getForObject("http://service-provider/provider/hello", String.class);
}
}
3.6起動項目は、登録が成功を確認します。
ナコスサーバーブラウザからアクセスします。http://192.168.145.129:8848 /ナコスを、サービスのリストをクリックし、その後、あなたがサービスを表示することができますがナコスサーバーに登録されています:
アクセス・テスト・インタフェースに3.7ブラウザ:
IVの概要
サービスプロバイダ(プロバイダ)と消費者サービス(消費者)のモジュールを書き込み、ナコスServerサービスに登録することにより、最後のサービスプロバイダ(プロバイダ)は、このプロセスを呼び出すためにRestTemplateサービスコンシューマー(消費者)に使用されます場合は、より良いナコス登録と発見を理解するだけでなく、プロジェクトで使用します。