SpringCloud之最大的坑】的更多相关文章

1 快速demo 1.0 环境说明   Intelli IDEA+Spring Boot 1.1 新建工程chap52(通过New Project->Spring Initializer->web) 修改pom文件: <groupId>com.chen4du</groupId> <artifactId>chap52</artifactId> <version>0.0.1-SNAPSHOT</version> <pac…
@feignclient和@requestmapping混用的时候出错 重写springmvc扫描controller时不带有@feignclient才实例化 @Configuration @ConditionalOnClass({Feign.class}) public class FeignConfiguration { @Bean public WebMvcRegistrations feignWebRegistrations() { return new WebMvcRegistrati…
就一句话,controller里面的API方法千万不要夹@Bean,因为加了这个就变成预编译的了!!!!不能断点不能log!!!!!!当然,如果想项目启动就执行的话,那就加上这个.…
Zookeeper服务注册与发现 1)Eureka停止更新了,你怎么办? https://github.com/Netflix/eureka/wiki 2)SpringCloud整合Zookeeper替代Eureka 1. 注册中心Zookeeper Zookeeper是一个分布式协调工具,可以实现注册中心功能 关闭Linux服务器防火墙后启动Zookeeper服务器 1. linux systemctl stop firewalld systemctl status firewalld 2.w…
1. Hystrix断路器概述 1.1 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败.这就造成有可能会发生服务雪崩.那么什么是服务雪崩呢? 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的"扇出"(像一把打开的折扇).如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,这就是所谓的"雪…
springCloud升级后.导致 HtystrixDashboard 默认的servlet请求路径修改了 将业务的微服务使用 HtystrixDashboard 仪表盘第一次监控时出现 Unable to connect to Command Metric Stream. 解决办法: 这都是 业务微服务端更改.不是 htystrix 显示的 声明一个 servlet组 /** *此配置是为了服务监控而配置,与服务容错本身无关,springcloud升级后的坑 *ServletRegistrat…
Hystrix简介 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败. 服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的"扇出".如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的"雪崩效应".对于高流量的应用来说,单一的后避依赖可能会导致所有服务器上的所有资源…
目录 前言 1. Hystrix 基础知识 1.1 Hystrix 断路器强调调用 1.2 两大类别的 Hystrix 实现 1.3 舱壁策略 1.4 Hystrix 在远程资源调用失败时的决策过程 1.5 当 Hystrix 断路器打开后 1.6 Hystrix 的所有配置 2. 对服务使用 Hystrix 断路器 2.1 引入 pom.xml 依赖 2.2 修改 bootstrap.yml 配置文件 2.3 在主程序类上标注注解 2.4 在业务类上使用 @HystrixCommand 注解(…
目录 Hystrix是什么 熔断 什么是熔断 熔断类型 打开 半开 关闭 使用方法 导包 添加启动注解 新增方法 测试 降级 什么是降级 使用方法 导包 修改yml,新增如下 启动类新增注解 @EnableHystrix 修改方法 测试 其他降级策略 新问题,代码冗余 方式1:@DefaultProperties 方式2:实现@FeignClient接口 监控 新建监控项目 导包 启动类添加注解 修改配置文件 启动项目 修改其他项目 导包 修改启动类 调用方法修改 测试 监控看法 Hystrix…
 踩的坑: 1).springcloud框架中,依赖一直报错,很可能是没有添加springcloud的依赖,或者是依赖的版本号过低.并且springboot也有一个父依赖. 2.springcloud的hystrix,针对频繁的请求或者断了的连接,可以做熔断机制. 并且在熔断类里,做一个错误信息的插入数据库,方便服务恢复后手动添 加之前没有成功的操作: 3.数据库如果用的是阿里云服务器的,启动报错,一般也是依赖的错误.---druid的版本要在1.1.8版本以上. 4.redis存对象数据,结果…
最近在使用SpringCloud的context-path时,遇到了一些坑,记录一下. server.context-path(上下文) 服务提供者的application配置文件中有一个属性叫server.context-path,是上下文. 如下示: server.context-path=/dev 如果没有上下文,我们访问一个接口的路径可能是: localhost:8080/user/ 如果有上下文dev,那么这个url必须写成: localhost:8080/dev/user/ 也就是说…
前言: 最近刚入职,公司使用了SpringCloud,之前有了解过SpringCloud,但是长时间不去搭建不去使用很容易就忘了,因此空闲时间重新复习一下SpringCloud.但是之前开的SpringCloud的版本可能有点低,公司现在用的 " Greenwich.RELEASE "的版本,SpringBoot使用了" 2.1.x "的版本,算是比较新了,因此在使用 Hystrix-Dashboard 的时候会有点坑,因此想把踩到的坑记录下来,让更多的人避开这个坑…
最近在做网关改造,想要通过Gateway过滤器获取ResponseBody的值,查看了网上的帖子和官网内容: 帖子:https://cloud.tencent.com/developer/article/1384111 官网:https://github.com/spring-cloud/spring-cloud-gateway/blob/master/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gatewa…
1,application.yaml中配置没有生效问题解决 如果配置文件确认没有错误但是没有生效首先是要到编译目录去查看是否被编译过去了,如果没有,请先将项目clean在重启 但是idea启动项目时也会先build,又有可能配置文件没有被编译过去,真实坑爹! 另外,yaml文件中的那些坑: (1)冒号:后面必须有空格,下级属性缩进一格(只支持空格不支持制表符tab) (2)保证不能有重复的一级节点. (3)如果参数是以空格开始或结束的字符串,应使用单引号把他包进来.如果一个字符串参数包含特殊字符…
在微服务开发中SpringCloud全家桶集成了OpenFeign用于服务调用,SpringCloud的OpenFeign使用SpringMVCContract来解析OpenFeign的接口定义. 但是SpringMVCContract的Post接口解析实现有个巨坑,就是如果使用的是@RequestParam传参的Post请求,参数是直接挂在URL上的. 问题发现与分析 最近线上服务器突然经常性出现CPU高负载的预警,经过排查发现日志出来了大量的OpenFeign跨服务调用出现400的错误(HT…
写在前面 最近,在使用SpringBoot+K8S开发微服务系统,既然使用了K8S,我就不想使用SpringCloud了.为啥,因为K8S本身的就提供了非常6的服务注册与发现.限流.熔断.负载均衡等等微服务需要使用的技术,那我为啥还要接入SpringCloud呢?额,说了这么多,在真正使用SpringBoot+K8S这一套技术栈的时候,也会遇到一些问题,比如我不需要使用SpringCloud时,调用其他服务时,我使用的是原生的OpenFegin,在使用OpenFegin调用其他服务的时候,就遇到…
我是根据周立先生所写的<Spring+Cloud与Docker微服务架构实战>来学习SpringCloud的,我会记录下来我日常遇到的所有问题,包括但不仅只包括SpringCloud的问题.话不多说,上bug: [12-25 14:28:04.677 INFO .userinfo.dao.UserInfoDao] http-nio-13702-exec-1: ====执行sql:com.hlxj.cloud.cloudservice.userinfo.dao.UserInfoDao.inser…
1. 出错信息如下: 在启动配置中心的客户端时,报以下错误信息: Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'foo' in value "${foo}" 2. 度娘查了下,发现很多人碰到这个坑. 首先我提交到git上到配置文件名称为下面两个文件 cloud-config-dev.properties cloud-config-test.properties 遵循配置中心配置…
踩了几个小时坑,使用仪表盘监控单个服务的时候很容易,但是一到多个服务,瞬间坑就来了,大概碰到下面三个: 1InstanceMonitor$MisconfiguredHostException, No message available","path":"/actuator/hystrix.stream: 因为我用的是springboot2.0.6版本,这个版本默认路径不是/hystrix.stream,而turbine默认路径是这个,所以要修改一下,可以有两种修改方…
公司项目进行微服务改造,由之前的dubbo改用SpringCloud,微服务之间通过FeignClient进行调用,今天在测试的时候,eureka注册中心有相应的服务,但feignclient就是无法调通,一直报404错误,排查过程如下: 一.问题: 服务提供方定义的接口如下: /** * 黑白名单查询接口 * * @author LiJunJun * @since 2018/10/18 */ @Component(value = "blackAndWhiteListFeignClient&qu…
spring boot 版本演信息: 文章链接:https://github.com/spring-projects/spring-boot/releases?after=v2.0.0.M3 https://github.com/spring-projects/spring-boot/tags   Spring Cloud 启动错误 - java.lang.NoSuchMethodError:  文章链接:    https://blog.csdn.net/u010904188/article/…
今天在搭建SpringCloud Eureka过程中,一直在报pom依赖错误,排查问题总结如下经验. 1.SpringBoot整合SpringCloud两者版本是有严格约束的,详细见SpringBoot官方文档(https://spring.io/projects/spring-cloud): 正确依赖示例: 2.新版本的eureka server 的依赖artifactId已经变化,spring boot.spring cloud里面很多包引用.包名等配置更新的很快,注意时刻关注官网. <ar…
今天在使用 SpringCloud 时遇到了一个问题,感觉有不少小伙伴会遇到,所以记录下来 版本说明 SpringBoot 2.2.4.RELEASE SpringCloud Greenwich.SR1 情景复现 在 pom.xml 中加入如下依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</arti…
对象传参: #使用@RequestBody来指定传参对象 @RequestMapping(value = "/v2/matterCode/genCode", method = RequestMethod.POST) ResultResponse<String> getCode(@RequestBody MatterCodeBO matterCodeBO); 注意:@RequestBody在一个方法内有且只有一个,不能同时存在两个! 普通传参: #普通传参使用@Request…
背景 前段时间同事碰到一个问题,需要在 SpringCloud 的 Feign 调用中使用自定义的 URL:通常情况下是没有这个需求的:毕竟都用了 SpringCloud 的了,那服务之间的调用都是走注册中心的,不会需要自定义 URL 的情况. 但也有特殊的,比如我们这里碰到 ToB 场景,需要对每个商户自定义的 URL 进行调用. 虽说也可以使用原生的 Feign 甚至是自定义一个 OKHTTP Client 实现,但这些方案都得换一种写法: 打算利用现有的 SpringCloud OpenF…
报错日志: 2018-12-17 10:01:19,688 ERROR [io.undertow.request] (default task-3) UT005023: Exception handling request to /xxx/app/bannerMaterialManager/uploadBannerSysGoodsPicture: java.nio.charset.IllegalCharsetNameException: UTF-8;boundary=sqgzzmMxl1UPdI…
无法直接传输List 错误方法1: @RequestMapping(value = "/stat/merchant/get_merchant_compare_info", method = RequestMethod.POST) @ResponseBody MerchantCompareTotalInfo getMerchantCompareInfo( @RequestParam(value = "licenseNoList") List<String>…
首先配置类: @Bean public ServletRegistrationBean getServlet(){ HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet(); ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet); registrationBean.setLoadOn…
1. 今天使用Feign 调用其他项目,结果一直跳转到断路器,跟踪发现是接口响应时间较长,解决方案 解决:# 在 Feign 模块中,单独设置这个超时时间不行,还要额外设置 Ribbon 的超时时间,如下:hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 5000#设置连接时间,解决接口反应时间长报异常问题ribbon: ReadTimeout: 5000 ConnectTimeout:…
很多朋友在使用SpringCloudGateway的时候可能都碰到过以下几个问题 SpringCloudGateway中如何读取Post请求体 private BodyInserter getBodyInserter(ServerWebExchange exchange) { ServerRequest serverRequest = new DefaultServerRequest(exchange); Mono<String> modifiedBody = serverRequest.bo…