美文网首页SpringCloudSpringCloudSpringcloud快速入门
二、Springcloud注册与发现之Eureka

二、Springcloud注册与发现之Eureka

作者: 阿亮私语 | 来源:发表于2019-07-11 21:10 被阅读0次

    fast-cloud-eureka

    Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,Springcloud将其集成在子项目spring-cloud-netflix中,实现Springcloud的注册发现功能。
    包含两个核心组件EurekaServer和EurekaClient

    即提供一个Springboot的服务作为EurekaServer,即本服务,其他的服务都作为EurekaClient注册到EurekaServer上面。
    Eureka需要至少3个参与者,如下图:

    image
    如上图分为三步
    • 1、EurekaServer作为注册中心先启动之后,服务提供者注册到配置中心
    • 2、服务消费者注册到配置中心
    • 3、服务消费者调用服务提供者

    一、EurekaServer配置

    1、引入pom版本

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    

    2、注解

    在入口类中添加@EnableEurekaServer注解

    @Slf4j
    @EnableEurekaServer
    @SpringBootApplication
    public class EurekaApplication {
        public static void main(String[] args) {
            SpringApplication.run(EurekaApplication.class, args);
            log.info(">>>>EurekaApplication started success ^-^ <<<<<");
        }
    }
    
    

    3、配置文件

    添加如下配置

    # 服务名
    spring.application.name= eureka
    #端口
    server.port=7777
    # 是否注册到eureka(eureka本身是不需要再注册到自己的)
    eureka.client.register-with-eureka=false
    # 是否从eureka获取注册信息
    eureka.client.fetch-registry=false
    # eureka服务器的地址(注意:地址最后面的 /eureka/ 这个是固定值)
    eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
    #服务失效时间,Eureka多长时间没收到服务的renew操作,就剔除该服务,默认90秒
    eureka.instance.leaseExpirationDurationInSeconds=15
    #eureka server清理无效节点的时间间隔,默认60000毫秒,即60秒
    eureka.server.evictionIntervalTimerInMs=20000
    # 自我保护模式(缺省为打开)
    eureka.server.enable-self-preservation: true
    # 续期时间,即扫描失效服务的间隔时间(缺省为60*1000ms)
    eureka.server.eviction-interval-timer-in-ms: 5000 
    

    4、访问 localhost:7777

    出现下图说明EurekaServer启动成功


    image

    二、服务提供者配置

    我们把fast-cloud-admin作为为服务提供者

    引入pom

    
    <!-- 引入客户端 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <!--springboot2版本要求引入此包-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
    

    入口类配置

    @EnableDiscoveryClient
    @SpringBootApplication
    public class CloudAdminApplication {
        public static void main(String[] args) {
            SpringApplication.run(CloudAdminApplication.class, args);
        }
    
    }
    

    三、服务消费者配置

    我们把fast-cloud-data作为为服务消费者

    配置

    同Admin服务同样

    <!-- 引入客户端 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <!--springboot2版本要求引入此包-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
    
    入口类配置

    也同二

    @EnableDiscoveryClient
    @SpringBootApplication
    public class CloudAdminApplication {
        public static void main(String[] args) {
            SpringApplication.run(CloudAdminApplication.class, args);
        }
    
    }
    
    加入配置文件

    在properties中添加配置文件,同二

    #================================eureka配置==============================
    #注册到eureka中心,获取到配置服务
    eureka.client.service-url.defaultZone=http://localhost:7777/eureka/
    #设置实例的ID为ip:port
    #eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}
    #================================续约配置============================
    # 心跳时间,即服务续约间隔时间(缺省为30s)
    eureka.instance.lease-renewal-interval-in-seconds=5
    # 发呆时间,即服务续约到期时间(缺省为90s)
    eureka.instance.lease-expiration-duration-in-seconds=10
    # 开启健康检查(依赖spring-boot-starter-actuator)
    eureka.client.healthcheck.enabled=true
    

    四、访问

    访问localhost:7777,看到下图,说明成功


    image

    代码地址

    请选择eureka分支,master分支为完整代码
    https://github.com/liangliang1259/fast-cloud-examples/tree/eureka

    关于我

    email : liangliang1259@163.com

    Github

    更多请关注公众号程序员阿亮:

    image

    相关文章

      网友评论

        本文标题:二、Springcloud注册与发现之Eureka

        本文链接:https://www.haomeiwen.com/subject/gdyjkctx.html