eureka服务端的搭建

eureka是spring-cloud体系里面,由netflix推出的一款服务注册发现的框架。

eureka分为服务端和客户端,服务端可以是单点部署,也可以是多节点部署,为了高可用一般至少两个节点。

在这里介绍eureka服务端三个节点的搭建。

开发工具IntelliJ IDEA。

1、新建project

next--》finish

 

2、启动类上添加@EnableEurekaServer 注解

这个注解的真正作用不是启动eurekaserver,而是为eurekaserverconfig启动注入创建一个条件类Maker。

 

3、配置文件配置

在此介绍两种配置方式:

3.1),使用一个配置文件,配置三个节点:

将application.properties改为application.yaml(个人习惯)

在application.yaml中添加如下配置:

spring:
  application:
    name: eureka-server
eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://eureka-7900:7900/eureka/,http://eureka-7901:7901/eureka/,http://eureka-7902:7902/eureka/

---
eureka:
  instance:
    hostname: eureka-7900
server:
  port: 7900
spring:
  profiles: 7900

---
eureka:
  instance:
    hostname: eureka-7901
server:
  port: 7901
spring:
  profiles: 7901

---
eureka:
  instance:
    hostname: eureka-7902
server:
  port: 7902
spring:
  profiles: 7902

 

通过这个配置,我们添加了7900,7901,7902三个端口,因为是一台机器,如果是三台机器,就不用这么麻烦了,只需要添加一个端口,也不需要profiles来区分了。因为是在一台机器上做的测试,所以通过profiles来区分。设置了profiles之后,在启动的时候需要指定profiles,如下图所示,点击Edit Configurations...,默认情况下,spring boot下面会有启动类的一个服务,将默认的服务改名7900,然后设置Active profiles为7900。然后复制7900服务,改名7901,设置Active profiles为7901; 同理复制出7902。这样三个服务就创建好了。

这样就完成了一个配置文件,三个节点的配置。

在配置中,defaultZone设置的域名是eureka-7900,eureka-7901,eureka-7902, 因为是本机单机测试,所以在hosts文件中添加了此三个域名,实际部署的时候,按实际服务器域名来就可。

hosts(位置:C:\Windows\System32\drivers\etc)添加的内容:

127.0.0.1 eureka-7900
127.0.0.1 eureka-7901
127.0.0.1 eureka-7902

这里还有个需要注意的点,就是每一个节点的instance.hostname 必须跟defaultZone中域名相对应起来,否则服务之间replicas会是unavailable。

正确的是:

 

3.2),使用三个配置文件,配置三个节点:

一个节点一个配置文件,实际上就是将
---
eureka:
  instance:
    hostname: eureka-7900
server:
  port: 7900
spring:
  profiles: 7900

转化到一个文件中。具体做法如下:

文件名的形式就是application-{profiles_name}.yaml。 因为我们这里定义的profiles是7900,7901,7902,所以就创建三个文件application-7900.yaml,application-7901.yaml,application-7902.yaml。(如果你的profile是用来区分环境的,可以自行修改为dev/pro/pre等等)。

application-7900.yaml内容如下:

spring:
  application:
    name: eureka-server
eureka:
  instance:
    hostname: eureka-7900
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://eureka-7900:7900/eureka/,http://eureka-7901:7901/eureka/,http://eureka-7902:7902/eureka/
server:
  port: 7900

7901和7902的配置与7900基本一致,就是将hostname和port改为7901和7902即可。

这里不需要再配置profiles,因为文件名中就已经区分了。从这里其实也可以猜得到spring去找profiles的方式,就是先找application文件名的对应profiles配置文件,如果没有对应的配置文件,就从默认的application.yaml文件中查找profiles设置。

 

至此,eureka服务端的基本配置就搞定了,可以启动三个端口试下,启动之后,访问eureka-7900:7900 或者 eureka-7901:7901 或者 eureka-7902:7902

都能相互看到对方:

 

PS:

搭建的时候,需要有几个注意的点:

1、所有服务端节点的spring: application: name的值必须一样,否则在eureka控制台看到的Instances实例会是多条

2、以下两个配置需要设置为true,当然默认就是true,所以不配置即可。

register-with-eureka: true
fetch-registry: true

3、每个节点的defautZone设置必须是所有节点的访问地址。

4、每个节点的eureka: instance: hostname 必须跟本节点在defautZone中的域名一致。否则登录自己节点的后台,看到的其他节点都是unavailable-replicas。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值