springboot 去掉netflix 禁用Eureka

目录

报错

解决方法

方法一:去掉maven依赖

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

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


报错

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

java 复制代码
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

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

解决方法

方法一:去掉maven依赖

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

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

XML 复制代码
         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

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

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

java 复制代码
@SpringBootApplication
//@EnableEurekaClient
public class Application {}

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

java 复制代码
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.*(..))")

可以引入springboot的aop依赖

XML 复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>

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

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

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

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

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

bash 复制代码
# 则在Eureka服务发现应该配置为:
# http://127.0.0.1:8080/eureka/
server.port: 8080
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

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-aop</artifactId>

</dependency>

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 {}

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

</dependency>

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

相关推荐
小云小白1 天前
PostgreSQL JDBC 驱动长连接问题:无心跳导致的静默断连
postgresql·springboot·连接超时
日取其半万世不竭2 天前
PeerTube 部署指南:自建视频托管平台
云原生·eureka·音视频
程序员老邢2 天前
【产品底稿 11】架构规整收官:从混乱到清晰,工程结构、表命名、模块分层一次性定型
后端·架构·springboot·产品底稿·架构规整·模块分层·数据库规范
空中海2 天前
Docker入门到精通
java·docker·eureka
@yanyu6663 天前
登录注册功能-明文
vue.js·springboot
苏渡苇4 天前
DeepSeek V4 实战:自然语言生成 SQL + 智能优化引擎
ai·springboot·spring ai·deepseek·ai推理·deepseek v4·自然语言生成sql
phltxy4 天前
Spring Cloud 服务注册与发现:Eureka 从原理到实战
java·spring cloud·eureka
玛卡巴卡ldf4 天前
【Springboot升级AI】(大模型部署)LangChain4j、会话记忆、隔离消失持久化问题、ollama、RAG知识库、Tools工具
java·开发语言·人工智能·spring boot·后端·springboot
之芫4 天前
Ubuntu 26.04系统上安装docker
ubuntu·docker·eureka
Nick_zcy5 天前
小说在线阅读网站和小说管理系统 · 功能全解析
java·后端·python·springboot·ruoyi