1. 程式人生 > >Spring Cloud構建微服務架構-創建“服務提供方”

Spring Cloud構建微服務架構-創建“服務提供方”

spring Spring Cloud Spring Boot config

下面我們創建提供服務的客戶端,並向服務註冊中心註冊自己。本文我們主要介紹服務的註冊與發現,所以我們不妨在服務提供方中嘗試著提供一個接口來獲取當前所有的服務信息。

首先,創建一個基本的Spring Boot應用。命名為eureka-client,在pom.xml中,加入如下配置:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

其次,實現/dc請求處理接口,通過DiscoveryClient對象,在日誌中打印出服務實例的相關內容。

@RestController
public class DcController {
@Autowired
DiscoveryClient discoveryClient;
@GetMapping("/dc")
public String dc() {
String services = "Services: " + discoveryClient.getServices();
System.out.println(services);
return services;
}
}

最後在應用主類中通過加上@EnableDiscoveryClient註解,該註解能激活Eureka中的DiscoveryClient實現,這樣才能實現Controller中對服務信息的輸出。

@EnableDiscoveryClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(
ComputeServiceApplication.class)
.web(true).run(args);
}
}

我們在完成了服務內容的實現之後,再繼續對application.properties做一些配置工作,具體如下:

spring.application.name=eureka-client
server.port=2001
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/

通過spring.application.name屬性,我們可以指定微服務的名稱後續在調用的時候只需要使用該名稱就可以進行服務的訪問。eureka.client.serviceUrl.defaultZone屬性對應服務註冊中心的配置內容,指定服務註冊中心的位置。為了在本機上測試區分服務提供方和服務註冊中心,使用server.port屬性設置不同的端口。
技術分享圖片
當然,我們也可以通過直接訪問eureka-client服務提供的/dc接口來獲取當前的服務清單
Services: [eureka-client]
其中,方括號中的eureka-client就是通過Spring Cloud定義的DiscoveryClient接口在eureka的實現中獲取到的所有服務清單。由於Spring Cloud在服務發現這一層做了非常好的抽象,所以,對於上面的程序,我們可以無縫的從eureka的服務治理體系切換到consul的服務治理體系中區。
技術分享圖片
從現在開始,我這邊會將近期研發的springcloud微服務雲架構的搭建過程和精髓記錄下來,幫助更多有興趣研發spring cloud框架的朋友,希望可以幫助更多的好學者。大家來一起探討spring cloud架構的搭建過程及如何運用於企業項目。

Spring Cloud構建微服務架構-創建“服務提供方”