SpringCloud Eureka集群部署

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集群部署)