当前位置:   article > 正文

eureka服务端的搭建_eureka服务端搭建

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中添加如下配置:

  1. spring:
  2. application:
  3. name: eureka-server
  4. eureka:
  5. client:
  6. register-with-eureka: true
  7. fetch-registry: true
  8. service-url:
  9. defaultZone: http://eureka-7900:7900/eureka/,http://eureka-7901:7901/eureka/,http://eureka-7902:7902/eureka/
  10. ---
  11. eureka:
  12. instance:
  13. hostname: eureka-7900
  14. server:
  15. port: 7900
  16. spring:
  17. profiles: 7900
  18. ---
  19. eureka:
  20. instance:
  21. hostname: eureka-7901
  22. server:
  23. port: 7901
  24. spring:
  25. profiles: 7901
  26. ---
  27. eureka:
  28. instance:
  29. hostname: eureka-7902
  30. server:
  31. port: 7902
  32. spring:
  33. 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内容如下:

  1. spring:
  2. application:
  3. name: eureka-server
  4. eureka:
  5. instance:
  6. hostname: eureka-7900
  7. client:
  8. register-with-eureka: true
  9. fetch-registry: true
  10. service-url:
  11. defaultZone: http://eureka-7900:7900/eureka/,http://eureka-7901:7901/eureka/,http://eureka-7902:7902/eureka/
  12. server:
  13. 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。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/564868
推荐阅读
相关标签
  

闽ICP备14008679号