当前位置: 首页 > news >正文

微服务系列文章 之 SpringCloud中遇到的一些bug

1、There was a problem with the instance info replicator

  • 错误原因: 该服务尝试将自己作为客服端注册
  • 解决办法: 在application.yml配置文件中,设置

# 注册Eureka服务
eureka:client:# Eureka服务注册中心会将自己作为客户端来尝试注册它自己,必須禁止register-with-eureka: falsefetch-registry: false

实体类转化出错: disable SerializationFeature.FAIL_ON_EMPTY_BEANS

  • 错误原因: 使用的框架是Spring Boot,处理完请求之后,返回数据之前,在POJO转化成JSON时,有些属性违背输出规则或者有些属性循环引用会造成无法输出。
  • 解决办法: 在实体类上面加上注解
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })

This application has no explicit mapping for /error, so you are seeing this as a fallback.

  • 错误原因: 很可能是你Application启动类放的位置不对。要将Application放在最外层,也就是要包含所有子包。
  • 解决办法: 将Application放在最外层,也就是要包含所有子包。

message:Request method 'POST' not supported

There was an unexpected error (type=Internal Server Error, status=500). status 405 reading UserFeignClient#getUser(User); content: {"timestamp":"2018-09-07T09:01:14.290+0000","status":405,"error":"Method Not Allowed","message":"Request method 'POST' not supported","path":"/feign-get-user"}

  • 错误原因: 该请求不会成功,只要参数是复杂对象,即使指定了是GET方法,feign依然会以POST方法进行发送请求。可能是我没找到相应的注解或使用方法错误。

  • 解决办法:

// 该请求不会成功,只要参数是复杂对象,即使指定了是GET方法,feign依然会以POST方法进行发送请求。可能是我没找到相应的注解或使用方法错误。@RequestMapping(method = RequestMethod.GET, value = "/feign-get-user")public User getUser(User user);//正确用法@RequestMapping(method = RequestMethod.GET, value = "/feign-get-user")public User getUser(@RequestParam("id") Long id, @RequestParam("username") String username, @RequestParam("age") String age);
}

Error creating bean with name 'eurekaAutoServiceRegistration'

org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'eurekaAutoServiceRegistration': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)

  • 错误原因:
    • 同一个服务重复启了;
    • 或者是端口被其他应用占用了。
  • 解决办法: 释放被占用的端口即可

Read timed out

  • 详细描述: com.sun.jersey.api.client.ClientHandlerException: java.net.SocketTimeoutException: Read timed out
  • 错误原因: 应用刚启动,需要通过ribbon从eureka上拉取服务;需要将虚拟主机名转化为ip地址
  • 解决办法: 这是比较正常的现象,只需要再次刷新就好了

 

解决第一次请求报超时异常的方案

  • 错误原因: 网络等原因,导致请求时间过长,进而引发timeout的错误
  • 解决办法:
    • 默认时间是超过1秒就是超时,将其设置为5秒
    hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 5000
    • 禁用超时时间timeout
    hystrix.command.default.execution.timeout.enabled: false
    • 索性禁用feign的hystrix支持
    feign.hystrix.enabled: false  
    • 超时的issue:https://github.com/spring-cloud/spring-cloud-netflix/issues/768
    • 超时的解决方案: java - Hystrix command fails with "timed-out and no fallback available" - Stack Overflow
    • hystrix配置: https://github.com/Netflix/Hystrix/wiki/Configuration#execution.isolation.thread.timeoutInMilliseconds

Cannot execute request on any known server

  • 错误详细描述: com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
  • 错误原因: Peer Awareness配置
# application.yml (Two Peer Aware Eureka Servers). 
---
spring:profiles: peer1
eureka:instance:hostname: peer1client:serviceUrl:defaultZone: http://peer2/eureka/---
spring:profiles: peer2
eureka:instance:hostname: peer2client:serviceUrl:defaultZone: http://peer1/eureka/
  • 解决办法: 修改C:\Windows\System32\drivers\etc路径下的hosts文件,在文末加入以下内容:
127.0.0.1 peer1 peer2 peer3

com.netflix.client.ClientException: Load balancer does not have available server for client: microservice-provider-user

  • 错误原因: 消费者调用服务时无服务可用
  • 解决办法:
  1. 确定本机是否关闭防火墙
  2. 是否导入eureka的jar包
     <!-- 注册Eureka服务 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
  3. 确定是否导入hystrix的jar包
     <!-- 配置hystrix所需依赖的包 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency>
  4. 确定配置文件服务前面是否有空格

 

Unable to connect to Command Metric Stream

  • 错误原因: 配置文件不完整
  • 解决办法: Hystrix Metrics Stream 要启用Hystrix度量标准流,请在spring-boot-starter-actuator上包含依赖项,并设置management.endpoints.web.exposure.include:hystrix.stream。 这样做会将 /actuator/hystrix.stream公开为管理端点,如以下示例所示:
    • pom.xml
   <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>
  • application.yml
 # 配置Hystrix Metrics Streammanagement:endpoints:web:exposure:include: hystrix.stream

hystrix.stream一直是ping

  • 错误原因:
    • 因为没有请求任何东西,所以看不到内容;
    • 缺少配置监控的依赖
    • 配置环境不完善
  • 解决办法:
    • 访问一下其他服务,比如http://localhost:9000/goods/2(自己写的一个服务)即可看到内容
    • 客服端添加依赖
<!-- Actuator是SpringBoot提供的对应用系统的自省和监控的集成功能,可以查看应用配置的详细信息;如果提示 Unable to connect to Command Metric Stream.则需要引入以下包!
-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  • 完善配置环境
 # 使用Hystrix Metrics Stream必备 management:endpoints: web:exposure: include: hystrix.stream   

turbine.stream一直是ping

  • 错误原因:
    • 因为没有请求任何东西,所以看不到内容;
    • 缺少配置监控的依赖
    • Eureka服务注册中心未将自己作为客户端来尝试注册它自己
      # 注册Eureka服务
      eureka:client:register-with-eureka: falsefetch-registry: false
    • 缺少配置监控的依赖
  • 解决办法:
    • 访问一下其他服务,比如http://localhost:9000/goods/2(自己写的一个服务)即可看到内容
    • 客服端添加依赖
<!-- Actuator是SpringBoot提供的对应用系统的自省和监控的集成功能,可以查看应用配置的详细信息;如果提示 Unable to connect to Command Metric Stream.则需要引入以下包!
-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  • Eureka服务注册中心未将自己作为客户端来尝试注册它自己
    # 注册Eureka服务
    eureka:client:
    #    register-with-eureka: false
    #    fetch-registry: false

  • 添加配置的依赖(作为客服端的都需要配置)
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    Health Indicator访问无结果

  • 错误原因:
    • 未导入依赖包
    • 版本原因导致访问方式改变了
  • 解决办法:
    • 导入依赖包
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  • 访问http://localhost:8030/actuator查看
{"_links": {"self": {"href": "http://localhost:8030/actuator","templated": false},"health": {"href": "http://localhost:8030/actuator/health","templated": false},"info": {"href": "http://localhost:8030/actuator/info","templated": false}}}
  • 访问http://localhost:8030/actuator/health即可

Turbine监控多个服务,配置后,出现只监控到一部分服务情况

  • 错误原因:
    • 配置有问题
  • 解决办法:
    • application.xml配置如下:
# 0、配置多个监控服务
turbine:appConfig: microservice-consumer-goods-feign-with-hystrix,microservice-consumer-goods-ribbon-with-hystrixclusterNameExpression: "'default'"
# 1、仅配置监控一个服务
turbine:aggregator:clusterConfig: MICROSERVICE-CONSUMER-GOODS-RIBBON-WITH-HYSTRIXappConfig: microservice-consumer-goods-ribbon-with-hystrix
  • 各个微服务的Controller配置 
    每个微服务均需要加上如下注解:
//配置hystrix所需注解
@EnableCircuitBreaker

相关文章:

微服务系列文章 之 SpringCloud中遇到的一些bug

1、There was a problem with the instance info replicator 错误原因&#xff1a; 该服务尝试将自己作为客服端注册解决办法&#xff1a; 在application.yml配置文件中&#xff0c;设置 # 注册Eureka服务 eureka:client:# Eureka服务注册中心会将自己作为客户端来尝试注册它自…...

Linux——权限

目录 1.Shell运行原理——外壳程序 2.权限 2.1对人操作 2.2对角色和文件操作 3.常见权限问题 1.Shell运行原理——外壳程序 首先我们要明确一个概念&#xff0c;我们不是直接访问操作系统。为什么&#xff1f; 对于Windows我们是使用GUI进行操作&#xff0c;Shell对于Li…...

[英语单词] components;

*[kәm’pәunәnt] n. 元件, 组件, 成分 a. 组成的, 构成的 【计】 组件 【化】 组分 【医】 成分; 组元(神经元组) 有很多地方使用这个单词&#xff0c;在组成整体时&#xff0c;作为单位一内的占有比率。那为什么不用portion&#xff1f; 这样每一个组成部分都是一个compon…...

【观察者模式】 ——每天一点小知识

&#x1f4a7; 观察者模式 \color{#FF1493}{观察者模式} 观察者模式&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f390; &#x1f433; 《数据结构与算法》专栏的文章图文并茂&#x1f995;…...

el-ment ui 表格组件table实现列的动态插入功能

在实际需求中我们经常遇到各种奇葩的需求&#xff0c;不足为奇。每个项目的需求各不相同&#xff0c;实现功能的思路大致是一样的。 本文来具体介绍怎么实现table表格动态插入几列。 首先实现思路有2种&#xff0c; 1. 插入的位置如果是已知的&#xff0c;我知道在哪个标题的…...

gitLab修改密码后,sourceTree如何修改密码

修改gitLab密码后&#xff0c;在sourceTree提交或者更新代码会报&#xff1a;fatal: Authentication failed for~ 简单粗暴的方法&#xff1a; 到C:\Users\用户\AppData\Local\Atlassian\SourceTree&#xff0c;找到passwd文件&#xff0c;并删除&#xff1b; 重启sourceTre…...

sop是什么意思

标准作业程序 执行复杂的日常事务所设计的内部程序 内容 所谓SOP&#xff0c;是 Standard Operating Procedure三个单词中首字母的大写 &#xff0c;即标准作业程序&#xff0c;指将某一事件的标准操作步骤和要求以统一的格式描述出来&#xff0c;用于指导和规范日常的工作。…...

【C#】Kestrel和IIS服务器下的同步与异步配置

最近在回看自己写的代码时&#xff0c;发现服务配置里最开头写了两段代码&#xff0c;第一感觉&#xff0c;这是啥功能&#xff0c;太久有点生疏了&#xff0c;经过一顿搜索和回顾&#xff0c;简单整理如下 目录 1、Kestrel服务器1.1、跨平台1.2、高性能1.3、可扩展性1.4、安全…...

GoLand导入redis的github包失败

GoLand导入redis依赖失败 网上有下载guryburd和gomodel的&#xff0c;这里按照官网文档安装依赖 以下命令在项目的根目录执行 初始化一个Go模块&#xff1a; go mod init github.com/my/repoTo install go-redis/v9:要安装go-redis/v9&#xff1a; go get github.com/redis/…...

Elasticsearch原理剖析

一、 Elasticsearch结构 Elasticsearch集群方案由EsMaster、EsClient和EsNode1、EsNode2、EsNode3、EsNode4、EsNode5、EsNode6、EsNode7、EsNode8、EsNode9进程组成&#xff0c;如下图所示&#xff0c;模块说明如表下所示。 说明如表&#xff1a; 名称说明ClientClient使用H…...

数据在内存中的存储1(C语言进阶)

数据在内存中的存储 1.数据类型介绍1.1类型的基本归类&#xff1a;整形家族浮点数家族构造类型指针类型空类型 2.整形在内存中的存储2.1 原码、反码、补码2.2 大小端介绍为什么有大端和小端&#xff1a; 我们今天来学习数据在内存中的存储 1.数据类型介绍 前面我们已经学习了基…...

Kubernetes API Server 中启用 pprof 接口

要在 Kubernetes API Server 中启用 pprof 接口&#xff0c;你需要在 API Server 的启动参数或配置文件中进行相应的配置。以下是一些常见的方法&#xff1a; 通过启动参数启用 pprof 接口&#xff1a;在运行 API Server 的命令中&#xff0c;添加 -runtime-configapi/alltrue …...

Docker 私有仓库 harbor 搭建

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…...

工厂方法模式

在开发组件的时候比如button、text等&#xff0c;需要对这些组件做比较多的初始化工作&#xff0c;比如初始化长度等。传统的开发方案如下&#xff1a; 图 传统开发方案UML 上面的方案组件创建及组件的其他业务操作耦合在一起&#xff0c;违背了单一职责原则&#xff1b;在客户…...

(CentOS 7)nvidia-smi:Failed to initialize NVML: Driver/library version mismatch

[CentOS 7]nvidia-smi:Failed to initialize NVML: Driver/library version mismatch 问题源头&#xff1a; nvidia-smi \text{nvidia-smi} nvidia-smi报错问题 CUDA \text{CUDA} CUDA安装时的问题 这里仅描述自身发现的一种情况&#xff0c;希望对大家有所帮助。 问题源头&…...

呼吸灯——FPGA

文章目录 前言一、呼吸灯是什么&#xff1f;1、介绍2、占空比调节示意图 二、系统设计1、系统框图2、RTL视图 三、源码四、效果五、总结六、参考资料 前言 环境&#xff1a; 1、Quartus18.0 2、vscode 3、板子型号&#xff1a;EP4CE6F17C8 要求&#xff1a; 将四个LED灯实现循环…...

群辉用户接入vocechat的方法(附开通GPT机器人)

群辉安装聊天服务器-加入chatgpt vocechat项目简单的使用介绍集成群辉帐号系统登陆vocechat 第二章接入chatgpt这是一个机器人的演示 这是个处于发展中的不错的项目吧&#xff0c;才感觉到好神奇。有意思。 vocechat项目简单的使用介绍 昨天的找群辉文章的时候看到了vocechat&…...

flutter js交互传参

加载网页的webView WebView(initialUrl:http://test/h5atui//#/mobileMaps?lng${CommonConfig.lng}&lat${CommonConfig.lat},javascriptMode: JavascriptMode.unrestricted,onWebViewCreated: (controller) {_webViewController controller;},onProgress: (process){set…...

重磅IntelliJ IDEA 2023.2 新版本即将发布,拥抱 AI

IntelliJ IDEA 近期连续发布多个EAP版本&#xff0c;官方在对用户体验不断优化的同时&#xff0c;也新增了一些不错的功能&#xff0c;尤其是人工智能助手补充&#xff0c;AI Assistant&#xff0c;相信在后续IDEA使用中&#xff0c;会对开发者工作效率带来不错的提升。 以下是…...

JavaWeb_SpringCloud微服务_Day1-eureka, ribbon, nacos

JavaWeb_SpringCloud微服务_Day1-eureka, ribbon, nacos 认识微服务微服务技术对比 分布式服务架构案例远程调用 eureka注册中心原理搭建EurekaServer服务注册服务发现 Ribbon负载均衡修改负载均衡饥饿加载 nacos注册中心快速入门eureka和nacos对比 来源 认识微服务 微服务技术…...

CST中利用SPICE语言自定义复杂lumped element电路的实战指南

1. 突破CST自带元件的限制&#xff1a;为什么需要SPICE语言 刚开始用CST做电路仿真时&#xff0c;我也觉得自带的RLC元件够用了——直到遇到一个带滤波功能的耦合器项目。当时需要模拟一个包含寄生参数的复杂匹配网络&#xff0c;自带的并联RLC元件死活调不出理想的频响曲线。这…...

如何实现百度网盘下载加速?KinhDown让大文件传输效率倍增

如何实现百度网盘下载加速&#xff1f;KinhDown让大文件传输效率倍增 【免费下载链接】baidupcs-web 项目地址: https://gitcode.com/gh_mirrors/ba/baidupcs-web 还在忍受百度网盘的龟速下载吗&#xff1f;当你急需工作文件却被限制在几十KB/s的速度时&#xff0c;当重…...

【分箱进阶篇】分箱的工程细节:从训练到部署的完整模式

基础篇参考&#xff1a;【分箱基础篇】pandas 分箱双子星&#xff1a;pd.cut 与 pd.qcut ​ 我们在基础篇讲了 pd.cut 和 pd.qcut 各自怎么用。但在实际项目里&#xff0c;分箱不是调一次函数就完事的。通常来说&#xff0c;训练集上算出来的切分点要保存下来&#xff0c;测试集…...

SmolVLA部署案例:树莓派5+USB GPU加速器运行SmolVLA轻量版可行性探索

SmolVLA部署案例&#xff1a;树莓派5USB GPU加速器运行SmolVLA轻量版可行性探索 1. 引言 你有没有想过&#xff0c;让一个巴掌大的树莓派也能跑起来一个能“看懂”世界、听懂指令、并控制机器人动作的AI模型&#xff1f;这听起来像是科幻电影里的场景&#xff0c;但今天我们要…...

Buzz字幕长度优化:告别拥挤字幕,提升观看体验的智能解决方案

Buzz字幕长度优化&#xff1a;告别拥挤字幕&#xff0c;提升观看体验的智能解决方案 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buz…...

英飞凌TC377芯片选型指南:从300MHz三核到FlexRay,汽车电子工程师如何快速上手?

英飞凌TC377芯片选型实战&#xff1a;汽车电子工程师的黄金法则 当汽车电子工程师面对英飞凌TC377这颗"三核300MHz怪兽"时&#xff0c;数据手册上密密麻麻的参数表格往往让人无从下手。我曾参与过某新能源车企的域控制器开发&#xff0c;团队花了整整两周时间争论芯片…...

实时口罩检测-通用部署教程:Windows WSL2环境下ModelScope模型本地加载

实时口罩检测-通用部署教程&#xff1a;Windows WSL2环境下ModelScope模型本地加载 1. 环境准备与WSL2配置 1.1 WSL2安装与设置 如果你使用的是Windows系统&#xff0c;首先需要安装WSL2&#xff08;Windows Subsystem for Linux 2&#xff09;。这是微软提供的Linux兼容层&…...

Ollama一键部署translategemma-27b-it:图文翻译模型在国产统信UOS验证通过

Ollama一键部署translategemma-27b-it&#xff1a;图文翻译模型在国产统信UOS验证通过 1. 开篇&#xff1a;当翻译遇上图文对话 想象一下&#xff0c;你拿到一份产品说明书&#xff0c;上面有中文文字和复杂的图表。你需要把它翻译成英文&#xff0c;但传统的翻译工具只能处理…...

别再手动调参了!用C#和Halcon的HSmartWindow控件,5分钟搞定ROI绘制与参数提取

工业视觉开发革命&#xff1a;用C#封装Halcon ROI的智能实践 在半导体检测、精密零件测量等工业场景中&#xff0c;区域兴趣&#xff08;ROI&#xff09;的精准定义直接影响着算法效果。传统开发模式下&#xff0c;工程师需要反复在Halcon脚本与C#界面代码间切换&#xff0c;手…...

SerialMP3库:GD3300D/TD5580A串口MP3模块驱动详解

1. SerialMP3 库概述&#xff1a;面向 GD3300D/TD5580A 串口 MP3 播放模块的嵌入式驱动框架SerialMP3 是一个专为基于 GD3300D 或 TD5580A 音频解码芯片的串口 MP3 播放板设计的 Arduino 兼容库。该库并非通用音频处理中间件&#xff0c;而是一个硬件协议抽象层&#xff08;Har…...