spring Cloud--使用Eureka編寫服務提供者

本節主要講解如何使用 Eureka 編寫服務提供者。

1)創建項目註冊到 Eureka

註冊中心已經創建並且啓動好了,接下來我們實現將一個服務提供者 eureka-client-user-service 註冊到 Eureka 中,並提供一個接口給其他服務調用。

首先還是創建一個 Maven 項目,然後在 pom.xml 中增加相關依賴,代碼如下所示。


 
  1. <!-- Spring Boot -->
  2. <parent>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-parent</artifactId>
  5. <version>2.0.6.RELEASE</version>
  6. <relativePath />
  7. </parent>
  8.  
  9. <dependencies>
  10. <dependency>
  11. <groupId>org.springframework.boot</groupId>
  12. <artifactId>spring-boot-starter-web</artifactId>
  13. </dependency>
  14.  
  15. <!-- eureka -->
  16. <dependency>
  17. <groupId>org.springframework.cloud</groupId>
  18. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  19. </dependency>
  20. </dependencies>
  21.  
  22. <!-- Spring Cloud -->
  23. <dependencyManagement>
  24. <dependencies>
  25. <dependency>
  26. <groupId>org.springframework.cloud</groupId>
  27. <artifactId>spring-cloud-dependencies</artifactId>
  28. <version>Finchley.SR2</version>
  29. <type>pom</type>
  30. <scope>import</scope>
  31. </dependency>
  32. </dependencies>
  33. </dependencyManagement>

創建一個啓動類 App,代碼如下所示。


 
  1. @SpringBootApplication
  2. @EnableDiscoveryClient
  3. public class App {
  4.  
  5. public static void main(String[] args) {
  6. SpringApplication.run(App.class, args);
  7. }
  8. }

啓動類的方法與之前沒有多大區別,只是註解換成 @EnableDiscoveryClient,表示當前服務是一個 Eureka 的客戶端。

接下來在 src/main/resources 下面創建一個 application.properties 屬性文件,增加下面的配置:

spring.application.name= eureka-client-user-service
server.port=8081
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
# 採用IP註冊
eureka.instance.preferIpAddress=true
# 定義實例ID格式
eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}

eureka.client.serviceUrl.defaultZone 的地址就是我們之前啓動的 Eureka 服務的地址,在啓動的時候需要將自身的信息註冊到 Eureka 中去。

執行 App 啓動服務,我們可以看到控制檯中有輸出註冊信息的日誌:

DiscoveryClient_EUREKA-CLIENT-USER-SERVICE/eureka-client-user-service:192.168.31.245:8081 - registration status: 204

我們可以進一步檢查服務是否註冊成功。回到之前打開的 Eureka 的 Web 控制檯,刷新頁面,就可以看到新註冊的服務信息了。

2)編寫提供接口

創建一個 Controller,提供一個接口給其他服務查詢,代碼如下所示。


 
  1. @RestController
  2. public class UserController {
  3. @GetMapping("/user/hello")
  4. public String hello() {
  5. return “hello”;
  6. }
  7. }

重啓服務,訪問 http://localhost:8081/user/hello (http://localhost%EF%BC%9A8081/user/hello),如果能看到我們返回的 Hello 字符串,就證明接口提供成功了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章