zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    remove white space from read
    optimize the access speed of django website
    dowload image from requests
    run jupyter from command
    crawl wechat page
    python version 2.7 required which was not found in the registry windows 7
    health
    alternate rows shading using conditional formatting
    word
    【JAVA基础】static 关键字
  • 原文地址:https://www.cnblogs.com/fengfujie/p/11764455.html
Copyright © 2011-2022 走看看