• spring cloud 2.x版本 Eureka Client服务提供者教程


    本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3
    

    1 创建eureka client

    1.1 新建Srping boot工程:eureka-client

    1.2 pom.xml所需要依赖的jar包

    <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 EurekaClientApplication添加注解@EnableEurekaClient

    package spring.cloud.demoo.eurekaclient;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    
    @EnableEurekaClient
    @SpringBootApplication
    public class EurekaClientApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(EurekaClientApplication.class, args);
        }
    
    }
    

    @EnableEurekaClient 向eureka服务中心注册服务(推荐使用),如果是其他服务注册中心,例如:consul、zookeeper,建议使用@EnableDiscoveryClient

    1.4 添加application.yml配置内容

    spring:
      application:
        name: eureka-client
    server:
      port: 8801
    
    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:
        service-url:
          defaultZone: http://localhost:8701/eureka/
    

    配置中http://localhost:8701/eureka/ 调用eureka-server,可以参考: eureka-server注册中心搭建

    1.5 创建测试controller:EurekaClientController

    package spring.cloud.demoo.eurekaclient.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;
    
    /**
     * @auther: maomao
     * @DateT: 2019-09-17
     */
    @RestController
    public class EurekaClientController {
    
        @Value("${server.port}")
        private String port;
    
        @RequestMapping("/info")
        public String syaHello(HttpServletRequest request) {
            String message = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getServletPath();
            return message;
        }
    
    }
    

    1.6 启动eureka-client服务

    访问http://localhost:8801/info,并返回结果,如下图所示。

    这时在访问服务注册中心,如果下入所示:

    可以看到eureka-client已经注册到服务注册中心。

    至此,一个简单的单机eureka client服务提供者就搭建完成。服务的提供者提供一个Restful服务。

    彩蛋

    eureka client集群的搭建

    1.1 配置本地host文件

    127.0.0.1		eureka1.client.com
    127.0.0.1		eureka2.client.com
    127.0.0.1		eureka3.client.com
    

    1.2 增加application.yml配置文件

    增加application-clinet1.yml和application-clinet2.yml文件,修改原application.yml文件。

    • application.yml
    spring:
      application:
        name: eureka-client
    server:
      port: 8801
    
    eureka:
      instance:
        hostname: eureka1.client.com
        lease-renewal-interval-in-seconds: 5
        lease-expiration-duration-in-seconds: 10
      client:
        service-url:
          defaultZone: http://eureka1.server.com:8701/eureka/,http://eureka2.server.com:8702/eureka/,http://eureka3.server.com:8703/eureka/
    
    • application-client1.yml
    spring:
      application:
        name: eureka-client
    server:
      port: 8802
    
    eureka:
      instance:
        hostname: eureka2.client.com
        lease-renewal-interval-in-seconds: 5
        lease-expiration-duration-in-seconds: 10
      client:
        service-url:
          defaultZone: http://eureka1.server.com:8701/eureka/,http://eureka2.server.com:8702/eureka/,http://eureka3.server.com:8703/eureka/
    
    • application-client2.yml
    spring:
      application:
        name: eureka-client
    server:
      port: 8803
    
    eureka:
      instance:
        hostname: eureka3.client.com
        lease-renewal-interval-in-seconds: 5
        lease-expiration-duration-in-seconds: 10
      client:
        service-url:
          defaultZone: http://eureka1.server.com:8701/eureka/,http://eureka2.server.com:8702/eureka/,http://eureka3.server.com:8703/eureka/
    

    1.3 分别启动eureka-client三个服务

    分别访问http://eureka1.client.com:8801/info、http://eureka2.client.com:8802/info、 http://eureka3.client.com:8803/info
    显示结果如下:


    此时打开服务注册中心,显示

    截图中红框中代表三个client已经注册成功。

    总结

    本文简单实现了服务提供者单机和集群的搭建,后续继续更新其他关于spring cloud其他内容。

    代码地址

    gitHub地址


    《Srping Cloud 2.X小白教程》目录

    • 写作不易,转载请注明出处,喜欢的小伙伴可以关注公众号查看更多喜欢的文章。
    • 联系方式:4272231@163.com
  • 相关阅读:
    quartz 时间表达式----- Cron表达式详解
    js正则表达式
    tomcat的server.xml文件的详解
    spring web.xml中 过滤器(Filter)的工作原理和代码演示
    tomcat端口占用解决方案
    Spring集成Hibernate映射文件的4种方式
    Hibernate 一二级缓存的使用场景
    Hibernate各种主键生成策略
    Pip的安装,环境变量的配置以及使用方法
    解决pycharm无法调用pip安装的包
  • 原文地址:https://www.cnblogs.com/fengfujie/p/11764455.html
Copyright © 2020-2023  润新知