• springboot 去掉netflix 禁用Eureka


    目录

    报错

    解决方法

    方法一:去掉maven依赖

    方法二:直接在application配置文件里禁用eureka(偷懒方法)

    方法三:检查eureka配置的地址是否正确(确实需要使用eureka)


    报错

    如果你接手别人的项目,启动的时候会一直报这个错:发现有netflix,eureka相关字眼,

    1. 2023-09-13 16:25:47.875 [] [] [main] ERROR com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient -Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://localhost:8761/eureka/'}
    2. com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect
    3. at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)
    4. at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123)
    5. at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27)
    6. ...
    7. 2023-09-13 16:25:47.875 [] [] [main] ERROR
    8. com.netflix.discovery.shared.transport.TransportException:
    9. Cannot execute request on any known server

    但你项目只是一个简单的springboot项目,不是微服务(因为上面这些都是微服务相关组件)。你想去掉netflix相关组件,或者禁用eureka。

    解决方法

    方法一:去掉maven依赖

    报上面的错,通常是因为pom文件里有eureka的依赖。

    pom.xml里注释掉下面这个依赖,注释完记得reload一下maven(右上角会出现刷新图标)

    1. <dependency>
    2. <groupId>org.springframework.cloudgroupId>
    3. <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    4. dependency>

     去掉maven依赖后,项目中可能会有一些报错。

     例如启动类,需要注释掉@EnableEurekaClient

    1. @SpringBootApplication
    2. //@EnableEurekaClient
    3. public class Application {}

    还有可能使用到了eureka的一些类,例如我项目里用到了aop的aspectj。

    1. import org.aspectj.lang.JoinPoint;
    2. import org.aspectj.lang.annotation.AfterReturning;
    3. import org.aspectj.lang.annotation.Aspect;
    4. import org.aspectj.lang.annotation.Before;
    5. import org.aspectj.lang.annotation.Pointcut;
    6. @Aspect
    7. @Pointcut(value = "execution(public * com.alibaba.yun.controller..*Controller.*(..))")

    可以引入springboot的aop依赖

    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-aopartifactId>
    4. dependency>

    方法二:直接在application配置文件里禁用eureka(偷懒方法)

    如果你只是简单维护别人的项目,并不想像上面那样动静太大,那就直接用这个偷懒的办法,直接在配置文件禁用eureka即可。 

    1. # 是否将自己注册到 Eureka-Server 中,默认true
    2. eureka.client.register-with-eureka=false
    3. # 是否需要拉取服务信息,默认true
    4. eureka.client.fetch-registry=false

    方法三:检查eureka配置的地址是否正确(确实需要使用eureka)

    如果你确实需要使用eureka,那就配置eureka正确的地址即可(问同事要)。

    1. # 则在Eureka服务发现应该配置为:
    2. # http://127.0.0.1:8080/eureka/
    3. server.port: 8080
    4. eureka.client.serviceUrl.defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

    因为我这篇文章是如何禁用eureka,所以不在此方法过多展开。

    netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server_globalcoding的博客-CSDN博客

     

    =====================分割线=========================

    文章到此已经结束,以下是紫薯布丁

    # 则在Eureka服务发现应该配置为:
    # http://127.0.0.1:8080/eureka/
    server.port: 8080
    eureka.client.serviceUrl.defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

    # 是否将自己注册到 Eureka-Server 中,默认true
    eureka.client.register-with-eureka=false
     
    # 是否需要拉取服务信息,默认true
    eureka.client.fetch-registry=false

           
                org.springframework.boot
                spring-boot-starter-aop
           

    import org.aspectj.lang.JoinPoint;
    import org.aspectj.lang.annotation.AfterReturning;
    import org.aspectj.lang.annotation.Aspect;
    import org.aspectj.lang.annotation.Before;
    import org.aspectj.lang.annotation.Pointcut;
     
    @Aspect
     
    @Pointcut(value = "execution(public * com.alibaba.yun.controller..*Controller.*(..))")

    @SpringBootApplication
    //@EnableEurekaClient
    public class Application {}

             
                org.springframework.cloud
                spring-cloud-starter-netflix-eureka-client
           

    2023-09-13 16:25:47.875 [] [] [main] ERROR com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient -Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://localhost:8761/eureka/'}
    com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect
        at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)
        at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123)
        at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27)
    2023-09-13 16:25:47.875 [] [] [main] ERROR 
    com.netflix.discovery.shared.transport.TransportException: 
    Cannot execute request on any known server

  • 相关阅读:
    DNS解析-连接域名与服务器IP
    Triton Inference Server 环境配置
    西门子S7-1200PLC混合通信编程(ModbusTcp和UDP通信)
    HTTPS相关概念
    IGBT和SiC MOSFET的驱动参数的计算方法
    RabbitMQ常用命令(一)
    Linux账号密码安全运维
    c++ 与 lua socket脚本高级调用
    JDK 9 Map.of()
    数值分析在线考试系统(asp.net+SqlServer)
  • 原文地址:https://blog.csdn.net/u011149152/article/details/132897550