美文网首页
16,Eureka Server

16,Eureka Server

作者: 滔滔逐浪 | 来源:发表于2019-01-21 19:31 被阅读39次

    案例实践

    Eureka Server

    spring cloud已经帮我实现了服务注册中心,我们只需要很简单的几个步骤就可以完成。

    1、pom中添加依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
    

    2、添加启动代码中添加@EnableEurekaServer注解

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

    3、配置文件

    在默认设置下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为,在application.properties添加以下配置:

    spring.application.name=spring-cloud-eureka
    
    server.port=8000
    eureka.client.register-with-eureka=false
    eureka.client.fetch-registry=false
    
    eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
    
    
    • eureka.client.register-with-eureka :表示是否将自己注册到Eureka Server,默认为true。
    • eureka.client.fetch-registry :表示是否从Eureka Server获取注册信息,默认为true。
    • eureka.client.serviceUrl.defaultZone :设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。默认是http://localhost:8761/eureka ;多个地址可使用 , 分隔。

    启动工程后,访问:http://localhost:8000/,可以看到下面的页面,其中还没有发现任何服务

    image

    集群

    注册中心这么关键的服务,如果是单点话,遇到故障就是毁灭性的。在一个分布式系统中,服务注册中心是最重要的基础部分,理应随时处于可以提供服务的状态。为了维持其可用性,使用集群是很好的解决方案。Eureka通过互相注册的方式来实现高可用的部署,所以我们只需要将Eureke Server配置其他可用的serviceUrl就能实现高可用部署。

    双节点注册中心

    首次我们尝试一下双节点的注册中心的搭建。

    1、创建application-peer1.properties,作为peer1服务中心的配置,并将serviceUrl指向peer2

    spring.application.name=spring-cloud-eureka
    server.port=8000
    eureka.instance.hostname=peer1
    
    eureka.client.serviceUrl.defaultZone=http://peer2:8001/eureka/
    
    

    2、创建application-peer2.properties,作为peer2服务中心的配置,并将serviceUrl指向peer1

    spring.application.name=spring-cloud-eureka
    server.port=8001
    eureka.instance.hostname=peer2
    
    eureka.client.serviceUrl.defaultZone=http://peer1:8000/eureka/
    
    

    3、host转换

    在hosts文件中加入如下配置

    127.0.0.1 peer1  
    127.0.0.1 peer2  
    
    

    4、打包启动

    依次执行下面命令

    #打包
    mvn clean package
    # 分别以peer1和peeer2 配置信息启动eureka
    java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
    java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
    
    

    依次启动完成后,浏览器输入:http://localhost:8000/ 效果图如下:

    image

    根据图可以看出peer1的注册中心DS Replicas已经有了peer2的相关配置信息,并且出现在available-replicas中。我们手动停止peer2来观察,发现peer2就会移动到unavailable-replicas一栏中,表示peer2不可用。

    到此双节点的配置已经完成。

    eureka集群使用

    在生产中我们可能需要三台或者大于三台的注册中心来保证服务的稳定性,配置的原理其实都一样,将注册中心分别指向其它的注册中心。这里只介绍三台集群的配置情况,其实和双节点的注册中心类似,每台注册中心分别又指向其它两个节点即可,使用application.yml来配置。

    application.yml配置详情如下:

    ---
    spring:
      application:
        name: spring-cloud-eureka
      profiles: peer1
    server:
      port: 8000
    eureka:
      instance:
        hostname: peer1
      client:
        serviceUrl:
          defaultZone: http://peer2:8001/eureka/,http://peer3:8002/eureka/
    ---
    spring:
      application:
        name: spring-cloud-eureka
      profiles: peer2
    server:
      port: 8001
    eureka:
      instance:
        hostname: peer2
      client:
        serviceUrl:
          defaultZone: http://peer1:8000/eureka/,http://peer3:8002/eureka/
    ---
    spring:
      application:
        name: spring-cloud-eureka
      profiles: peer3
    server:
      port: 8002
    eureka:
      instance:
        hostname: peer3
      client:
        serviceUrl:
          defaultZone: http://peer1:8000/eureka/,http://peer2:8001/eureka/
    
    

    分别以peer1、peer2、peer3的配置参数启动eureka注册中心。

    java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
    java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
    java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3
    
    

    依次启动完成后,浏览器输入:http://localhost:8000/ 效果图如下:

    image

    可以在peer1中看到了peer2、peer3的相关信息。至此eureka集群也已经完成了

    相关文章

      网友评论

          本文标题:16,Eureka Server

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