天天看点

SpringCloud2.0 Eureka Client 服务注册 基础教程(三)

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

SpringCloud2.0 Eureka Client 服务注册 基础教程(三)

红框处 服务访问成功,返回内容格式:服务协议://服务器地址:服务端口/服务uri

1.7、打开浏览器,访问 服务中心 前台页面 http://localhost:9527,http://localhost:9528,http://localhost:9529

SpringCloud2.0 Eureka Client 服务注册 基础教程(三)

红框处 服务成功注册到了服务中心,服务名称: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

SpringCloud2.0 Eureka Client 服务注册 基础教程(三)
SpringCloud2.0 Eureka Client 服务注册 基础教程(三)
SpringCloud2.0 Eureka Client 服务注册 基础教程(三)

参照2.2, spring boot 启动配置 EurekaClientC2,修改 Active profiles 为 client2

参照2.2, spring boot 启动配置 EurekaClientC3,修改 Active profiles 为 client3

2.3、按照启动配置 EurekaClientC1、EurekaClientC2、EurekaClientC3 依次启动服务提供者

SpringCloud2.0 Eureka Client 服务注册 基础教程(三)

2.4、打开浏览器,访问 服务提供者 提供的Restful路径 http://localhost:52601/info,http://localhost:52602/info,http://localhost:52603/info

SpringCloud2.0 Eureka Client 服务注册 基础教程(三)
SpringCloud2.0 Eureka Client 服务注册 基础教程(三)
SpringCloud2.0 Eureka Client 服务注册 基础教程(三)

如上,三个 Restful 服务均返回了信息。信息内容不同之处就在于端口不一样。输出这样的信息目的,是为了后面给我们做集群负载均衡测试做准备。

2.5、打开浏览器,访问 服务中心 前台页面 http://localhost:9527,http://localhost:9528,http://localhost:9529

SpringCloud2.0 Eureka Client 服务注册 基础教程(三)

红框处 三个服务成功注册到了服务中心,服务名称均为:EUREKA-CLIENT。

至此,一个简单的服务提供者集群部署搭建完成。

3、本章小结

本章主要讲解了 Eureka Client 服务提供者的搭建,并讲解如果扩展为集群应用。

下一章,我们将讲解服务发现。如何调用服务提供者提供的服务。以及服务调用的负载均衡。

《SpringCloud2.0 基础教程》目录

SpringCloud2.0 概述 基础教程(一)

SpringCloud2.0 Eureka Server 服务中心 基础教程(二)

SpringCloud2.0 Ribbon 服务发现 基础教程(四)

SpringCloud2.0 Feign 服务发现 基础教程(五)

SpringCloud2.0 Hystrix Ribbon 基于Ribbon实现断路器 基础教程(六)

SpringCloud2.0 Hystrix Feign 基于Feign实现断路器 基础教程(七)

SpringCloud2.0 Hystrix Dashboard 断路器指标看板 基础教程(八)

SpringCloud2.0 Turbine 断路器集群监控 基础教程(九)

SpringCloud2.0 Zuul 网关路由 基础教程(十)

SpringCloud2.0 Config 分布式配置中心 基础教程(十一)

分享更多编程知识和技巧

继续阅读