美文网首页
SpringCloud Eureka集群部署

SpringCloud Eureka集群部署

作者: 马里小奥_76bd | 来源:发表于2019-04-26 10:19 被阅读0次

    SpringCloud组件:Eureka集群部署

    使用idea开发工具创建两个SpringBoot项目,添加Eureka Server依赖即可,pom文件与前文的eureka-server相同。

    启用Eureka Server

    在入口类XxxApplication上添加@EnableEurekaServer注解来启用Eureka Server服务以及实例化一些依赖,修改如下所示:

    @SpringBootApplication
    @EnableEurekaServer
    public class Mastereureka1Application{
        //....
    }
    

    环境配置

    首先删除两个项目中的application.properties
    我们在项目1的src/main/resources目录下创建名为application.yml的配置文件,在该配置文件内添加如下配置:

    # 服务名称
    spring:
      application:
        name: master1-eureka-server
    # 服务端口号
    server:
      port: 8880
    
    #Eureka 相关配置
    eureka:
      client:
        service-url:
          defaultZone: http://node2:8890/eureka/
        # 是否从其他的服务中心同步服务列表
        fetch-registry: true
        # 是否把自己作为服务注册到其他服务注册中心
        register-with-eureka: true
      instance:
        hostname: node1
        instance-id: ${eureka.instance.hostname}:${server.port}:@project.version@
      server:
        peer-node-connect-timeout-ms: 1000
    
    

    继续在项目2的src/main/resources下创建一个名为application.yml的配置文件,内容如下所示:

    # 服务名称
    spring:
      application:
        name: master2-eureka-server
    # 服务端口号
    server:
      port: 8890
    
    #Eureka 相关配置
    eureka:
      client:
        service-url:
          defaultZone: http://node1:8880/eureka/
        # 是否从其他的服务中心同步服务列表
        fetch-registry: true
        # 是否把自己作为服务注册到其他服务注册中心
        register-with-eureka: true
      instance:
        #配置通过主机名方式注册
        hostname: node2
        #配置实例编号
        instance-id: ${eureka.instance.hostname}:${server.port}:@project.version@
      #集群节点超时时间
      server:
        peer-node-connect-timeout-ms: 1000
    

    主机名设置

    • Mac或者Linux配置方式
      如果你使用的是osx系统。可以找到/etc/hosts文件并添加如下内容:
    127.0.0.1       node1
    127.0.0.1       node2
    

    一般情况下配置完成后就会生效,如果配置不生效,重启即可

    • Windows配置方式
      可以修改C:\Windows\System32\drivers\etc\hosts文件,添加内容与Mac方式一致。

    Eureka Sever相互注册

    • 项目1 application.yml
      eureka.client.service-url.defaultZone这个配置参数的值,配置的是http://node2:8890/eureka/,那这里的node2是什么呢?其实一看应该可以明白,这是们在hosts文件内配置的hostname,而端口号我们配置的则是8890,根据hostname以及port我们可以看出,环境node1注册到了node2上。
    • 项目2 application-node2.yml
      在node2环境内配置eureka.client.service-url.defaultZone是指向的http://node1:8880/eureka/,同样node2注册到了node1上。

    通过这种相互注册的方式牢靠的把两个服务注册中心绑定在了一块。

    运行测试

    1. 运行两个项目

    2. 访问http://node1:8880查看node1环境的Eureka管理中心

      Eureka集群相互注册效果.png
    3. 访问http://node2:8890查看node2环境的Eureka管理中心

      Eureka集群相互注册效果2.png

    相关文章

      网友评论

          本文标题:SpringCloud Eureka集群部署

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