zoukankan      html  css  js  c++  java
  • 微服务架构之spring cloud eureka

      Spring Cloud Eureka是spring cloud的核心组件,负责服务治理功能,起到中心枢纽作用,其它组件都依赖eureka来获取服务,然后再根据项目需求实现自己的业务,eureka在整个微服务架构中的位置绝对是核心地位。

    (一)   版本说明

      a)         Spring boot   2.0.6.RELEASE

      b)        Spring cloud  Finchley.SR2

      c)         Java version   1.8

    (二)   项目设置

    1. Pom文件

        

    <dependency>
    
        <groupId>org.springframework.cloud</groupId>
    
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    
        <version>2.0.2.RELEASE</version>
    
    </dependency>
    
    <dependency>
    
        <groupId>org.springframework.boot</groupId>
    
        <artifactId>spring-boot-starter-actuator</artifactId>
    
    </dependency>
    1. application.yml配置文件

        

    spring:
    
      profiles:
    
        active: test-1001
    
      application:
    
        name: discover-services
    
    eureka:
    
      datacenter: ctm
    
      instance:
    
      environment: dev
    
      server:
    
      client:
    
    management:
    
      endpoints:
    
        web.exposure.include: "*"
    
      endpoint:
    
        health:
    
          show-details: ALWAYS
    
    ---
    
    server:
    
      port: 1001
    
    eureka:
    
      server:
    
        enable-self-preservation: false
    
        eviction-interval-timer-in-ms: 60000
    
        renewal-percent-threshold: 0.85
    
      client:
    
        service-url:
    
          defaultZone: http://${eureka.instance.hostname}:1002/eureka/,http://${eureka.instance.hostname}:1003/eureka/
    
        register-with-eureka: true
    
        fetch-registry: true
    
        healthcheck:
    
          enabled: true
    
      instance:
    
        hostname: ${eureka.instance.ip-address}
    
        prefer-ip-address: true
    
        ip-address: 192.168.1.129
    
        lease-renewal-interval-in-seconds: 10
    
        lease-expiration-duration-in-seconds: 30
    
        instance-id: ${eureka.instance.ip-address}:${server.port}
    
    spring:
    
      profiles: test-1001
    
    ---
    
    server:
    
      port: 1002
    
    eureka:
    
      server:
    
        enable-self-preservation: false
    
        eviction-interval-timer-in-ms: 60000
    
        renewal-percent-threshold: 0.85
    
      instance:
    
        hostname: ${eureka.instance.ip-address}
    
        prefer-ip-address: true
    
        ip-address: 192.168.1.129
    
        lease-renewal-interval-in-seconds: 10
    
        lease-expiration-duration-in-seconds: 30
    
        instance-id: ${eureka.instance.ip-address}:${server.port}
    
      client:
    
        service-url:
    
          defaultZone: http://${eureka.instance.hostname}:1001/eureka/,http://${eureka.instance.hostname}:1003/eureka/
    
        register-with-eureka: true
    
        fetch-registry: true
    
        healthcheck:
    
          enabled: true
    
    spring:
    
      profiles: test-1002
    
    ---
    
    server:
    
      port: 1003
    
    eureka:
    
      server:
    
        enable-self-preservation: false
    
        eviction-interval-timer-in-ms: 60000
    
        renewal-percent-threshold: 0.85
    
      instance:
    
        hostname: ${eureka.instance.ip-address}
    
        prefer-ip-address: true
    
        ip-address: 192.168.1.129
    
        lease-renewal-interval-in-seconds: 10
    
        lease-expiration-duration-in-seconds: 30
    
        instance-id: ${eureka.instance.ip-address}:${server.port}
    
      client:
    
        service-url:
    
          defaultZone: http://${eureka.instance.hostname}:1001/eureka/,http://${eureka.instance.hostname}:1002/eureka/
    
        register-with-eureka: true
    
        fetch-registry: true
    
        healthcheck:
    
          enabled: true
    
    spring:
    
      profiles: test-1003
    1. 主要参数说明

        a)         spring.profiles.active     设置当前使用的配置项,一般多配置场景下使用,这里为了eureka高可用,设置了3个实例,在运行实例的时候,可以动态设置。

        b)        spring.application.name 项目名称

        c)         server.port     运行端口号

        d)        eureka.server.enable-self-preservation 是否启用自我保护功能,该功能默认是启用,但为了快速的响应服务的上下线,一般在开发环境把自我保护功能禁用

        e)         client.client.service-url.defaultZone    服务注册中心地址,这里是交叉设置3个服务自理实例

        f)          client.instance.lease-renewal-interval-in-seconds   发送心跳的频率

        g)        client.instance.lease-expiration-duration-in-seconds      失效间隔,这个主要是判断客户端还活着,一般设置为client.instance.lease-renewal-interval-in-seconds的3倍。

        h)        其它参数说明可以参考官方说明,需要说明的是spring cloud 每次版本迭代都有配置参数的变更,最好是参考相对应的版本参数说明

    (三)   项目运行

    1. 环境设置

    修改/etc/hosts 文件,添加如下设置

    127.0.0.1 server1

    127.0.0.1 server2

    127.0.0.1 server3

    1.        项目运行

          

    sudo docker run --name discoverservice-1001 -d -p 1001:1001 -e ACTIVE=" --eureka.client.service-url.defaultZone=http://server2:1002/eureka/,http://server3:1003/eureka/  --eureka.instance.hostname=server1 --eureka.instance.ip-address=server1 --spring.profiles.active=dev-1001 -Xms128m -Xmx512m" discoverservice/discoverservice
    
     
    
    sudo docker run --link discoverservice-1001:server1 --name discoverservice-1002 -d -p 1002:1002 -e ACTIVE=" --eureka.client.service-url.defaultZone=http://server1:1001/eureka/,http://server3:1003/eureka/  --eureka.instance.hostname=server2 --eureka.instance.ip-address=server2 --spring.profiles.active=dev-1002 -Xms128m -Xmx512m" discoverservice/discoverservice
    
     
    
    sudo docker run --link discoverservice-1002:server2 --link discoverservice-1001:server1  --name discoverservice-1003 -d -p 1003:1003 -e ACTIVE=" --eureka.client.service-url.defaultZone=http://server1:1001/eureka/,http://server2:1002/eureka/  --eureka.instance.hostname=server3 --eureka.instance.ip-address=server3 --spring.profiles.active=dev-1003 -Xms128m -Xmx512m" discoverservice/discoverservice

             我这里是docker运行,运行后,可以查看运行效果

            

    1.        在浏览器中输入你的主机的IP:端口号,就可以看到eureka服务自理的运行界面如下图所示

       

      a)         可以看到3个服务都在运行,其实你可以访问3个端口的任何一个,都可以看到该效果,同时该界面也显示了一些环境信息,比如有效内存、已经运行的时长 等等。

      b)        关于docker镜像生成、docker 私有仓库请翻阅我以前的文章。

      这样spring cloud eureka服务自理就介绍完了,如果在开发中遇到问题,也可以留言共同探讨共同进步。

  • 相关阅读:
    learnyou 相关网站
    hdu 3038 How Many Answers Are Wrong
    hdu 3047 Zjnu Stadium 并查集高级应用
    poj 1703 Find them, Catch them
    poj 1182 食物链 (带关系的并查集)
    hdu 1233 还是畅通工程
    hdu 1325 Is It A Tree?
    hdu 1856 More is better
    hdu 1272 小希的迷宫
    POJ – 2524 Ubiquitous Religions
  • 原文地址:https://www.cnblogs.com/lzh-boy/p/10367555.html
Copyright © 2011-2022 走看看