SpringCloud2.0 Eureka Client 服務注冊 基礎教程(三)


1、創建【服務提供者】,即 Eureka Client

1.1、新建 Spring Boot 工程,工程名稱:springcloud-eureka-client

1.2、工程 pom.xml 文件添加如下依賴:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

1.3、在工程啟動類中,添加注解 @EnableEurekaClient

package com.miniooc.client;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

/**
 * EurekaClientApplication
 *
 * @author 宋陸
 * @version 1.0.0
 */
@EnableEurekaClient  // 啟用 eureka client 相關默認配置,在 Edgware 以后的版本該注解可以省略
@SpringBootApplication
public class EurekaClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
    }

}

1.4、新建 Eureka Client 控制器類 EurekaClientController,提供一個 Restful 服務

package com.miniooc.client.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

/**
 * EurekaClientController
 * 
 * 控制器
 *
 * @author 宋陸
 * @version 1.0.0
 */
@RestController
public class EurekaClientController {
    
    @Value("${server.port}")
    private String port;

    /**
     * 提供的一個restful服務,返回內容格式:服務協議://服務器地址:服務端口/服務uri
     *
     * @param request
     * @return
     */
    @RequestMapping("/info")
    public String info(HttpServletRequest request) {
        String message = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getServletPath();
        return message;
    }
}

1.5、新建工程配置文件 application.yml ,配置內容:

server:
  port: 52601

spring:
  application:
    name: eureka-client

eureka:
  instance:
    hostname: localhost
    # 表示eureka client間隔多久去拉取服務注冊信息,默認為30秒,如果要迅速獲取服務注冊狀態,可以縮小該值
    lease-renewal-interval-in-seconds: 5
    # 表示eureka server至上一次收到client的心跳之后,等待下一次心跳的超時時間,在這個時間內若沒收到下一次心跳,則將移除該instance。
    # 默認為90秒
    # 如果該值太大,則很可能將流量轉發過去的時候,該instance已經不存活了。
    # 如果該值設置太小了,則instance則很可能因為臨時的網絡抖動而被摘除掉。
    # 該值至少應該大於 leaseRenewalIntervalInSeconds
    lease-expiration-duration-in-seconds: 10
  client:
    serviceUrl:
      defaultZone: http://localhost:9527/eureka/,http://localhost:9528/eureka/,http://localhost:9529/eureka/

1.6、啟動 Eureka Client 工程,打開瀏覽器,訪問 Eureka Client 提供的 Restful 路徑 http://localhost:52601/info

紅框處 服務訪問成功,返回內容格式:服務協議://服務器地址:服務端口/服務uri

1.7、打開瀏覽器,訪問 服務中心 前台頁面 http://localhost:9527,http://localhost:9528,http://localhost:9529

紅框處 服務成功注冊到了服務中心,服務名稱:EUREKA-CLIENT。

至此,一個簡單的單點服務提供者搭建完成。

服務提供者提供一個Restful服務,服務的 uri 是 info,返回內容格式:服務協議://服務器地址:服務端口/服務uri

為了保證服務的高可用,我們需要把單點應用擴展為集群部署。

接下來,我們對 Eureka Client 工程做些配置修改,來完成集群部署。

2、搭建【服務提供者】集群

2.1、創建工程配置文件 application-client1.yml ,配置內容:

server:
  port: 52601

spring:
  application:
    name: eureka-client

eureka:
  instance:
    hostname: localhost
    # 表示eureka client間隔多久去拉取服務注冊信息,默認為30秒,如果要迅速獲取服務注冊狀態,可以縮小該值
    lease-renewal-interval-in-seconds: 5
    # 表示eureka server至上一次收到client的心跳之后,等待下一次心跳的超時時間,在這個時間內若沒收到下一次心跳,則將移除該instance。
    # 默認為90秒
    # 如果該值太大,則很可能將流量轉發過去的時候,該instance已經不存活了。
    # 如果該值設置太小了,則instance則很可能因為臨時的網絡抖動而被摘除掉。
    # 該值至少應該大於 leaseRenewalIntervalInSeconds
    lease-expiration-duration-in-seconds: 10
  client:
    serviceUrl:
      defaultZone: http://localhost:9527/eureka/,http://localhost:9528/eureka/,http://localhost:9529/eureka/

參照2.1,創建工程配置文件 application-client2.yml,並修改 server.port 為 52602

參照2.1,創建工程配置文件 application-client3.yml,並修改 server.port 為 52603

2.2、在 IntelliJ IDEA 集成開發環境中,添加 spring boot 啟動配置 EurekaClientC1,修改 Active profiles 為 client1

 

 

 

參照2.2, spring boot 啟動配置 EurekaClientC2,修改 Active profiles 為 client2

參照2.2, spring boot 啟動配置 EurekaClientC3,修改 Active profiles 為 client3

2.3、按照啟動配置 EurekaClientC1、EurekaClientC2、EurekaClientC3 依次啟動服務提供者

2.4、打開瀏覽器,訪問 服務提供者 提供的Restful路徑 http://localhost:52601/info,http://localhost:52602/info,http://localhost:52603/info

如上,三個 Restful 服務均返回了信息。信息內容不同之處就在於端口不一樣。輸出這樣的信息目的,是為了后面給我們做集群負載均衡測試做准備。

2.5、打開瀏覽器,訪問 服務中心 前台頁面 http://localhost:9527,http://localhost:9528,http://localhost:9529

紅框處 三個服務成功注冊到了服務中心,服務名稱均為:EUREKA-CLIENT。

至此,一個簡單的服務提供者集群部署搭建完成。

3、本章小結

本章主要講解了 Eureka Client 服務提供者的搭建,並講解如果擴展為集群應用。

下一章,我們將講解服務發現。如何調用服務提供者提供的服務。以及服務調用的負載均衡。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM