当前位置: 代码迷 >> 综合 >> Spring Cloud Eureka(Greenwich版本)注册中心搭建
  详细解决方案

Spring Cloud Eureka(Greenwich版本)注册中心搭建

热度:110   发布时间:2023-10-25 07:03:54.0

Eurek注册中心使用

github开源项目地址:https://github.com/hack-feng/spring-cloud
包括整个项目的构建全过程,欢迎小伙伴们star

在本项目中使用eureka作为SpringCloud的注册中心,注册预留端口号:1111

注册中心地址:http://localhost:1111/eureka/

本项目配置为单机eureka,如果需要配置高可用eureka集群

请参考:https://blog.csdn.net/qq_34988304/article/details/88997703

eureka server详情:

pom.xml文件引入

<!-- 引入Eureka Server,用于注册Eureka服务 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
# 项目端口号
server:port: 1111# 实例名称
spring:application:name: eureka-master# eureka的配置信息
eureka:instance:# 是否使用ip地址preferIpAddress: trueinstance-id: ${spring.cloud.client.ip-address}:${server.port}client:# false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务fetch-registry: false# false表示不向注册中心注册自己。register-with-eureka: falseservice-url:defaultZone: http://localhost:1111/eureka/

在EurekaMasterApplication.java中添加@EnableEurekaServer注解,用于开启eureka注册中心

eureka click配置:

pom.xml配置文件:

<!-- Spring Cloud ==> 开启eureka客户端注册需要 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

application.yml文件:

eureka:instance:# 在信息列表时显示主机名称instance-id: eureka-click# 是否使用IP地址注册prefer-ip-address: trueleaseRenewalIntervalInSeconds: 10health-check-url-path: /actuator/healthclient:registryFetchIntervalSeconds: 5service-url:defaultZone: http://localhost:1111/eureka/

Application.java文件添加@EnableDiscoveryClient或@EnableEurekaClient注解,用于开启eureka click。

  • 在Spring Cloud Edgware及以上版本,只需要添加相关依赖,即可自动注册。
  • 如不想将服务注册到Eureka Server上,只需设置@EnableDiscoveryClient(auto-Register = false)即可
  • @EnableDiscoveryClient注解是基于spring-cloud-commons依赖,并且在classpath中实现
  • @EnableEurekaClient注解是基于spring-cloud-netflix依赖,只能为eureka作用

多网卡环境下的IP选择

对于多网卡的服务器,各个微服务注册到Eureka Server上的IP要如何指定?
指定IP在某些场景很有用,例如某台服务器有eth0、eth1、eth2三块网卡,但是只有eth1可以被其他服务器访问;如果eureka click将eth0或eth2注册到eureka server上,其他微服务就将无法通过这个IP调用该微服务的接口。
Spring Cloud提供了按需选择IP的能力。

  • 忽略指定名称的网卡,例如
spring:cloud:inetutils:ignored-interfaces:- docker0- veth.*
eureka:instance:prefer-ip-address: ture

这样就可以忽略docker0网卡以及以veth开头的网卡

  • 使用正则表达式,指定使用的网络地址,例如
spring:cloud:inetutils:preferredNetworks:- 192.168- 10.0
eureka:instance:prefer-ip-address: ture
  • 只使用站点本地地址,例如
spring:cloud:inetutils:useOnlySiteLocalInterfaces: true
eureka:instance:prefer-ip-address: ture

这样就可以强制使用站点本地地址

  • 手动指定IP地址。在某些极端的场景下,可以手动指定注册到Eureka Server的微服务IP,例如
eureka:instance:prefer-ip-address: tureip-address: 127.0.0.1
  相关解决方案