本地无法连接注册中心eureka,如何进行feign调用,并快速启动本地调试?

前言

今年进入了个新公司,接手代码时遇到了比较蛋疼的事情,本地代码调试遇到了层层阻碍,无法一键简单启动就算了,我就忍了,一番操作终于启动起了了,启动又慢,启动了2~3分钟,后面调本地接口,还feign调用失败。出师未捷身先死啊,又没人整改下,好奇项目负责人也不改,他们是怎么进行调试和自测的,靠感觉和代码自信吗?
上图:
在这里插入图片描述
在这里插入图片描述

问题

  1. 本地启动时间慢
  2. feign调用失败

分析

  1. 看启动日志,看看究竟慢在哪里
    找出如下卡住一分钟左右,弹出的后面几段日志
[2023-12-22 14:11:35.116]|WARN|main|||N/A|N/A|N/A|c.n.d.s.t.d.RetryableEurekaHttpClient#execute:130|Request execution failed with message: I/O error on GET request for "http://qz:123456@10.23.11.55:7000/eureka/apps/": Connect to 10.23.11.55:7000 [/10.23.11.55] failed: Operation timed out (Connection timed out); nested exception is org.apache.http.conn.HttpHostConnectException: Connect to 10.23.11.55:7000 [/10.23.11.55] failed: Operation timed out (Connection timed out)
[2023-12-22 14:11:35.120]|WARN|main|||N/A|N/A|N/A|c.netflix.discovery.DiscoveryClient#get:304|Using default backup registry implementation which does not do anything.

日志中很明显写着连接eureka Connection timed out。

  1. 找出feign 为什么不能调用
    其实根据上个分析已经可以看出,本地服务并没有连接到eureka注册中心,那他肯定拉不到注册中心的服务列表,自然就调不通了,从调用日志也可以直观的看出 Load balancer does not contain an instance for the service
[2023-12-22 14:11:36.979]|WARN|pool-20-thread-1|||N/A|N/A|N/A|c.qz.common.config.CommonInitialize#lambda$run$0:57|[503] during [GET] to [http://qz-usercenter/getDataDictByType/message] [UserCenterFeign#getDataDictByType(String)]: [Load balancer does not contain an instance for the service qz-usercenter]

根本原因

因为本地和eureka是网络隔离的,所以不存在eureka问题或者本地程序问题,只是网络问题而已,但是这个是无解的,所以放弃挣扎,需要曲线救国

目的

很简单的目的,就是快速启动,顺利调试(OS:这不是个正常项目应该有的吗?)

解决方案

  1. 解决feign调用问题
    使用url重写的方法,解决本地调用问题,让本地服务调用测试环境的接口
    原代码:
    在这里插入图片描述
    修改之后:
    在这里插入图片描述
    图中用一种“可配置”并且“默认在没配置的情况下采用默认的注册中心的跳转”,这样的好处是,如果上生产或者其他环境,不用配这个url可以按照原来的方式进行调用,如果配置了url则安url的调用路径走,而且是可配置的,可以更改调用,对代码不具有侵入性
    单独弄个本地的配置文件application-local.yml,供本地调试用
    在这里插入图片描述
    到这里feign调用是解决了,本地调试是没问题了
  2. 解决启动时间慢问题
    其实很简单,整个日志中,他就是在等待eureka连接超时了,在根本原因中提到了,本地和eureka的网络是隔离的,这个无法改变。那我们都进行feign的url定向重写了,注册中心在这就没用了,而且本地调试,其实不想影响测试环境的服务,最好别注册上去。如果你们有自己的开发环境可以忽略这个考虑,如果只有测试环境的话,分分钟会影响测试结果,因为连接到注册中心会让测试环境的调用,调用到你本机。
    从根源上入手,提供给大家一个断开eureka的配置,在启动程序的vm参数加入如下:
-Deureka.client.register-with-eureka=false
-Dspring.autoconfigure.exclude=org.springframework.cloud.netflix.eureka.EurekaDiscoveryClientConfiguration,org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration
  1. idea配置(最终的配置展示)
    在这里插入图片描述

结果展示

在这里插入图片描述
140s->62s,提升54%的启动速度,1分钟启动还可以接受,后面看到主要花在连接数据库上,这个就不优化了,最主要是可以进行本地调用接口了。

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/263361.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【音视频】remb twcc原理

目录 twcc简介 WebRTC REMB 参考文档 twcc简介 TWCC全称是Transport wide Congestion Control,是webrtc的最新的拥塞控制算法。其原理是在接收端保存数据包状态,然后构造RTCP包反馈给发送端,反馈信息包括包到达时间、丢包状态等&#xff…

养老院自助饮水机(字符设备驱动)

目录 1、项目背景 2、驱动程序 2.1 三层架构 2.2 驱动三要素 2.3 字符设备驱动 2.3.1 驱动模块 2.3.2 应用层 3、设计实现 3.1 项目设计 3.2 项目实现 3.2.1 驱动模块代码 3.2.2 用户层代码 4、功能特性 5、技术分析 6. 总结与未来展望 1、项目背景 养老院的老人…

社交网络分析(汇总)

这里写自定义目录标题 写在最前面社交网络分析系列文章汇总目录 提纲问题一、社交网络相关定义和概念提纲问题1. 社交网络、社交网络分析;2. 六度分隔理论、贝肯数、顿巴数;3. 网络中的数学方法:马尔科夫过程和马尔科夫链、平均场理论、自组织…

仿悬赏猫任务平台源码 悬赏任务系统源码 带支付接口

源码介绍 最新仿悬赏猫任务平台源码 悬赏任务系统源码 带支付接口, 全新开发悬赏任务系统,功能齐全,包含接任务,发布任务, 店铺关注,置顶推荐,排行榜,红包大厅,红包抽奖…

Android Studio如何实现 成语接龙游戏(简单易上手)

该项目是一个基于Android Studio和Java语言编写的成语接龙游戏App。成语接龙是一种经典的中文文字游戏,旨在测试玩家的词汇量和思维敏捷性。该成语接龙游戏App旨在提供一种有趣、挑战性和教育性的游戏体验。玩家可以通过游戏提高自己的中文词汇量和思维敏捷性&#…

Text Intelligence - TextIn.com AI时代下的智能文档识别、处理、转换

本指南将介绍Text Intelligence,AI时代下的智能文档技术平台 Textin.com 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认…

KubeSphere应用【六】中间件部署

一、Mysql部署 1.1创建配置字典 [client] default-character-setutf8mb4 [mysql] default-character-setutf8mb4[mysqld] sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION init_connectSET…

【分治算法】之汉诺塔问题

汉诺塔问题 三根柱子 把A柱子上的盘子全部挪到C上,且每次挪动的时候 小的必须在大的上面 分治算法的思想; 分:把一个大问题拆成若干个小的子问题,每个子问题相互独立; 治:求解每个子问题的(递归&#xf…

前端FLV视频直播解决方案

项目背景: 1. 后台给出一个地址,持续不断的推送flv视频流。 2.前端需要接收视频流,并寻找合适的播放插件。 一开始: 其实用的是xgplayer(西瓜视频)。 官网地址:西瓜播放器 使用的是直播&a…

开放式耳机怎么选?2023高人气品牌推荐:新手避坑必看!

自从开放式耳机风靡市场以来,大家对于开放式耳机的选购也越发摸不着头脑。价格从百元到千元不等,就连大品牌的产品口碑也褒贬不一。 不少人私信向我询问: 1、难道只有千元价位的开放式耳机才好吗?2、是否有价格更实惠且性价比更…

如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 1

本系列将分成三个部分,您将学习如何使用 Helm 在 Kubernetes 上集成 Prometheus 和 Grafana,以及如何在 Grafana 上创建一个简单的控制面板。Prometheus 和 Grafana 是 Kubernetes 最受欢迎的两种开源监控工具。学习如何使用 Helm 集成这两个工具&#x…

C#电源串口调试

目的 记录串口调试的遇到的一些问题以及相应的解决方法 1.串口定义:串口是计算机与其他硬件传输数据的通道,在计算机与外设通信时起到重要作用 2.串口通信的基础知识 C#中的串口通信类 C#使用串口通信类是SerialPort(),该类使用方法是 new 一个 SerialPort对象 为S…

Prometheus-JVM

一. JVM监控 通过 jmx_exporter 启动端口来实现JVM的监控 Github Kubernetes Deployment Java 服务,修改 wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.19.0/jmx_prometheus_javaagent-0.19.0.jar# 编写配置文件&#xff0…

JAVA判断两个时间之间的差

1.首先引入jar包 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.3.7</version> </dependency>2.计算差值 public static DateFormat getDateTimeFormat(){DateFormat dtf new Sim…

即将来临的2024年,汽车战场再起波澜?

我们来简要概况一下11月主流车企的销量表现&#xff1a; 根据数据显示&#xff0c;11月吉利集团总销量29.32万辆&#xff0c;同比增长28%。这在当月国内主流车企中综合实力凌厉&#xff0c;可谓表现得体。而与吉利直接竞争的比亚迪&#xff0c;尽管数据未公布&#xff0c;但我们…

华为二层交换机与防火墙配置实例

二层交换机与防火墙对接上网配置示例 组网图形 图1 二层交换机与防火墙对接上网组网图 二层交换机简介配置注意事项组网需求配置思路操作步骤配置文件相关信息 二层交换机简介 二层交换机指的是仅能够进行二层转发&#xff0c;不能进行三层转发的交换机。也就是说仅支持二层…

Flink系列之:Savepoints

Flink系列之&#xff1a;Savepoints 一、Savepoints二、分配算子ID三、Savepoint 状态四、算子五、触发Savepoint六、Savepoint 格式七、触发 Savepoint八、使用 YARN 触发 Savepoint九、使用 Savepoint 停止作业十、从 Savepoint 恢复十一、跳过无法映射的状态恢复十二、Resto…

22 3GPP在SHF频段基于中继的5G高速列车场景中的标准化

文章目录 信道模型实验μ参考信号初始接入方法波形比较 RRH&#xff1a;remote radio head 远程无线头 HTS&#xff1a;high speed train 高速移动列车 信道模型 考虑搭配RRH和车载中继站之间的LOS路径以及各种环境&#xff08;开放或峡谷&#xff09;&#xff0c;在本次实验场…

Postgresql源码(118)elog/ereport报错跳转功能分析

1 日志接口 elog.c完成PG中日志的生产、记录工作&#xff0c;对外常用接口如下&#xff1a; 1.1 最常用的ereport和elog ereport(ERROR,(errcode(ERRCODE_UNDEFINED_TABLE),errmsg("relation \"%s\" does not exist",relation->relname)));elog(ERRO…

如何粗暴地下载huggingface_hub指定数据文件

参考这里&#xff1a; https://huggingface.co/docs/huggingface_hub/guides/download 可见下载单个文件&#xff0c;下载整个仓库文件都是可行的。 这是使用snapshot_download下载的一个例子&#xff1a; https://qq742971636.blog.csdn.net/article/details/135150482 sn…