本地启动时避免将服务注册到Eureka网关

(1)服务配置文件修改

当在本地开发时,有时你可能想要避免将服务注册到网关,这样可以更轻松地进行单独的服务测试。在使用Eureka注册服务时,你可以通过配置来控制服务是否注册到Eureka服务器。

要在本地启动时避免将服务注册到Eureka网关,可以在服务的配置文件(如application.properties或application.yml)中添加以下属性:

使用属性文件(.properties):

bash 复制代码
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

使用 YAML 文件(.yml):

bash 复制代码
eureka:
  client:
    register-with-eureka: false
    fetch-registry: false

这样配置后,服务启动时将不会向Eureka注册自己,也不会从Eureka获取服务注册信息。这对本地开发和测试来说是非常方便的。

(2)代码修改配置文件

在某些情况下,我们获取的配置都是远程配置中心的,即使本地开发也不能随意修改影响别人,针对于此可以通过本地修改代码的方式,例如可以限制获取本地的操作系统属性,如果是windows或者mac则不进行注册

bash 复制代码
@Configuration
public class EurekaClientConfig {
    
    @Bean
    public void configureEurekaClient() {
        String osName = System.getProperty("os.name").toLowerCase();
        if (osName.toLowerCase().contains("windows") || osName.toLowerCase().contains("mac")) {
            System.setProperty("eureka.client.register-with-eureka", "false");
            System.setProperty("eureka.client.fetch-registry", "false");
        }
    }
}

(3)继承EurekaClientConfigBean

EurekaClientConfigBean 是 Netflix Eureka 客户端的配置类之一,它提供了许多属性来配置客户端与 Eureka 服务器的交互。这些属性包括注册、获取服务信息、健康检查等方面的配置。shouldRegisterWithEureka 是 EurekaInstanceConfigBean 中的一个方法,用于确定是否将该实例注册到 Eureka 服务器。

bash 复制代码
@Slf4j
public class BaseEurekaConfig extends EurekaClientConfigBean {

    @Override
    public boolean shouldRegisterWithEureka() {
        String osName = System.getProperty("os.name").toLowerCase();
        if (osName.contains("windows") || osName.contains("mac"))
            return false;
        return super.shouldRegisterWithEureka();
    }
}
相关推荐
浪兎兎3 小时前
【Kubernetes 实战】(二)部署 Ruoyi-Cloud —— 部署服务
云原生·容器·kubernetes
大大大大晴天6 小时前
K8S 在大数据里的真正价值:适用场景、收益边界与不适合的地方
大数据·云原生
Henry-SAP7 小时前
AI与机器人信息新闻
人工智能·云原生·sap·erp
阿里云云原生7 小时前
深入解析阿里云 SysOM AI Profiling:如何实现零侵入的AI作业全生命周期观测?
云原生
陈聪.8 小时前
Kubernetes 中 Pod 的全面知识
云原生·容器·kubernetes
SakitamaX9 小时前
k8s中的控制器的使用
云原生·容器·kubernetes
qq_3494479512 小时前
K8S中的Calico如何获取对应版本
云原生·容器·kubernetes
智购科技无人售货机工厂13 小时前
2026自动售货机触摸屏驱动开发:从I2C协议到多点触控校准的工程实践~YH
android·驱动开发·python·单片机·云原生·django
A-刘晨阳15 小时前
Kubernetes 共享存储:PV、PVC、StorageClass 详解及使用
运维·云原生·容器·kubernetes·共享存储
天蓝不会忘记0216 小时前
k8spod管理
云原生·容器·kubernetes