
Spring-cloud
zhuwei_clark
还行吧
展开
-
Request processin g failed; nested exception is feign.RetryableException: too many bytes written
错误信息:2020-09-08 14:07:14.718 ERROR 16146 --- [io-12000-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is feign.Re原创 2020-09-08 14:14:55 · 1467 阅读 · 0 评论 -
openFeign服务之间调用保持请求头信息处理
1、注意特殊情况,在定时任务或者内部之间调用,没有request的时候,不要处理直接返回。2、在GET请求,参数确放在Body里面传递的情况,restTemplate是不认识的,所以这里要转化下处理,然后清空body数据/** * 解决服务调用丢失请求头的问题 * @author 大仙 * */@Componentpublic class FeignConfiguration implements RequestInterceptor{ private final Logge.原创 2020-09-08 13:48:04 · 2312 阅读 · 0 评论 -
spring cloud oauth2系列篇(二)深入authorization_code授权码模式完整实现
项目的源码地址:https://github.com/daxian-zhu/online_edu项目是最新的,文章可能不是最新的这里先简单的介绍项目,不然有的地方可能我表达不清楚容易造成误解online_edu||----online_edu_com 公共模块,存放公共实体,枚举,工具类等||----online_edu_config 配置中心,基于sp...原创 2019-07-16 20:10:56 · 2700 阅读 · 1 评论 -
spring cloud 问题记录(十六) 使用Feign跨服调用时header请求头中的信息丢失
写这篇帖子呢其实是因为昨天(2019年7月4号)我同事(大牛)遇到的一个BUG,我也就跟着学习了下。 情况呢很简单,我们项目的权限验证使用的keycloak,而验证体系继承在了gateway,获取用户信息的时候。而用户的部分信息是直接通过gateway获取之后,使用header的方式传输给服务的。而同事在使用A服务调用B服务的时候,发现从request里面获取不到...原创 2019-07-05 10:10:40 · 4166 阅读 · 3 评论 -
spring cloud 问题记录(十五) Unauthorized grant type: authorization_code
在使用授权码的方式获取code的时候出现如下异常:org.springframework.security.oauth2.common.exceptions.InvalidClientException: Unauthorized grant type: authorization_code at org.springframework.security.oauth2.provider.t...原创 2019-07-03 11:49:15 · 7799 阅读 · 2 评论 -
spring cloud 问题记录(十四)spring 5 redis set的方法问题
在使用spring 5 配置oauth2的启动时候出现如下异常Caused by: java.lang.NoSuchMethodError: org.springframework.data.redis.connection.RedisConnection.set([B[B)V at org.springframework.security.oauth2.provider.token.st...原创 2019-07-03 11:36:54 · 536 阅读 · 0 评论 -
spring cloud 问题记录(十二)springsecurity Cannot load keys from store: class path resource [kevin_key.jks]
今天在使用jwt的方式实现spring cloud security的安全验证的时候,出现一个奇怪的异常Cannot load keys from store: class path resource [kevin_key.jks]java.io.IOException: Invalid keystore format从错误堆栈信息中可以看到,是秘匙对文件格式错误。但是并没有对文件...原创 2019-06-24 17:43:35 · 14470 阅读 · 4 评论 -
spring cloud 问题记录(十)spring cloud config配置中心2种刷新方式
再不重启的情况更新配置属性,是配置中心的目的。在小的项目上面如果没有条件构建apollo这种大型的配置中心集群。那么spring cloud config无疑是一种不错的选择。那么spring cloud config提供了2种刷新方式1:config server端刷新(全局刷新)首先在服务端暴露出相应的刷新接口:#暴露刷新接口management: endpoints: ...原创 2019-06-18 10:59:19 · 642 阅读 · 0 评论 -
spring cloud 问题记录(十一)网关不能加载相应的服务的问题
在启动eureka,config,gateway,业务应用的时候,突然之间遇到一个很懵逼的问题。通过网关访问业务应用居然报404错误,分析原因。1:地址错误检查地址:排除2:端口错误:检查端口:排除3:检查gateway的路由规则和业务应用:检查:排除。后来去查看gateway的启动类@EnableZuulServer@EnableEurekaClient...原创 2019-06-18 10:27:25 · 1432 阅读 · 0 评论 -
spring cloud 问题记录(九)spring cloud config配置加载多个配置文件
在配置仓库我们可能会根据需要将配置分成很多种,例如公共的配置,例如应用独有的配置,例如数据库database的配置,例如redis的配置等等如图,可能common的配置在每个应用中都会用到,所以这里单独提炼出来,那么怎么在客户端使用2个配置呢spring: application: name: public-gateway cloud: config: ...原创 2019-06-17 17:47:03 · 4497 阅读 · 3 评论 -
spring cloud 问题记录(八)spring cloud config 配置中心指定本地缓存路径
在很多情况下,我们不希望使用默认的的缓存路径,spring cloud config是提供了指定缓存路径的功能spring: application: name: public-config cloud: config: server: git: uri: https://git.zhubanxian.com/zhu/o...原创 2019-06-17 17:03:42 · 3380 阅读 · 0 评论 -
spring cloud 问题记录(十三)authenticationManager无法注入问题
在配置spring cloud security的过程中出现如下异常信息导致无法启动项目Field authenticationManager in com.clark.online.edu.config.AuthorizationServerConfig required a bean of type 'org.springframework.security.authentication...原创 2019-07-01 10:44:17 · 11902 阅读 · 7 评论 -
spring cloud oauth2系列篇(一)入门authorization_code授权码模式内存实现
项目的最新地址:https://github.com/daxian-zhu/online_edu说到oauth2其实很多人都不陌生,很多大的开放平台的API接口的认证都是使用的oauth2实现的,本文主要是结合spring cloud来简单的说下,如果有什么不对的地方大家可以指出来。先说下我这里使用的spring boot和spring cloud的版本 <!-- spring...原创 2019-07-16 17:42:48 · 1634 阅读 · 0 评论 -
spring boot2.1.X The bean 'clientDetailsService', defined in XX,could not be registered
今天在升级spring boot2.1.2的时候出现如下异常Description:The bean 'clientDetailsService', defined in com.codeus.wecode.service.DBClientDetailsService, could not be registered. A bean with that name has already ...原创 2019-08-12 13:44:38 · 3966 阅读 · 1 评论 -
Refused to display in a frame because it set 'X-Frame-Options' to 'DENY'
解决方法如下: @Override public void configure(HttpSecurity http) throws Exception { //禁用csrf http.csrf().disable() .formLogin().permitAll() .and().httpBasic(); ...原创 2019-08-15 23:54:07 · 813 阅读 · 0 评论 -
spring cloud 集成TX-LCN5.0.2使用LCN模式实现分布式事务
各位童鞋注意啦,5.0.2的版本在多节点下是存在问题的,解决方法:https://blog.youkuaiyun.com/zhuwei_clark/article/details/103711929项目源码地址:https://github.com/daxian-zhu/online_edu对于微服务化的趋势,分布式事务是一个绕不去的坎,现在有很多开源的软件tx-lcn,byte-tcc,seat...原创 2019-07-31 16:33:57 · 8197 阅读 · 21 评论 -
zuul代理丢失Authorization
参考文章:https://blog.youkuaiyun.com/f45056231p/article/details/90370827里面有比较详细的原因介绍,我这里简单的总结下:zuul在代理转发的时候,需要对请求头进行重组,过滤掉所有的敏感信息,以下头信息都是敏感信息:Authorization,Cookie,Set-Cookie,host,connection,content-lengt...原创 2019-07-22 17:28:56 · 1456 阅读 · 0 评论 -
Spring Cloud oauth2 - Cannot convert access token to JSON
出现这个主要是资源服务器配置,设置如下即可:converter.setVerifierKey(publicKey);//不设置这个会出现 Cannot convert access token to JSONconverter.setVerifier(new RsaVerifier(publicKey));完整的配置如下 @Bean("resJwtAccessTokenCon...原创 2019-07-22 13:53:31 · 16215 阅读 · 3 评论 -
annotation.web.configurers.ExpressionUrlAuthorizationConfigurer@5a88849 to already built object
今天在做权限配置的时候遇到一个很坑的问题,其实就算解决了我也不知道什么原因咯,异常情况如下:Caused by: java.lang.IllegalStateException: Cannot apply org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfi...原创 2019-07-22 10:11:45 · 1574 阅读 · 2 评论 -
spring cloud zuul+oauth2+config+lcn微服务架构和项目实现
项目架构图如下:项目地址:https://github.com/daxian-zhu/online_edu如果觉得有点帮助的,请点个star,后期会不断完善原创 2019-07-23 20:45:25 · 498 阅读 · 0 评论 -
spring cloud oauth2系列篇(三)password模式获取access_token
项目的源码地址:https://github.com/daxian-zhu/online_edupassword模式和上一篇文章的代码是一致的:https://blog.youkuaiyun.com/zhuwei_clark/article/details/96174086访问方式稍微有点不一样http://localhost:9004/oauth/token?grant_type=pass...原创 2019-07-16 20:20:45 · 980 阅读 · 0 评论 -
spring cloud 问题记录(七)配置中心属性配置不更新的问题
在更新配置文件,并且提交到git上面去,调用刷新的接口http://localhost:9002/actuator/bus-refresh重新请求业务接口,发现数据没有刷新。一脸懵逼的开始找原因:1:首选怀疑是否刷新的问题,所以查看本地缓存文件。结论:本地缓存文件已经刷新。2:重启业务应用试试是否生效,这个时候居然报错了java.nio.charset.Malfor...原创 2019-06-17 17:01:03 · 1384 阅读 · 1 评论 -
spring cloud 问题记录(六)配置中心报错Cannot pull from remote XX.git the working tree is not clean.
在使用配置中心拉取配置文件的时候,有时候总会遇到很多让人很郁闷的问题,如果本地缓存文件被更改的时候就会遇到以下问题: Cannot pull from remote https://git.zhubanxian.com/zhu/online_edu_config.git, the working tree is not clean.而我遇到这个问题的原因就是因为吧本地的缓存给删了。其...原创 2019-06-17 16:47:33 · 2954 阅读 · 1 评论 -
spring cloud 问题记录(五)Eureka各项配置属性说明
Eureka包含四个部分的配置instance:当前Eureka Instance实例信息配置 client:Eureka Client客户端特性配置 server:Eureka Server注册中心特性配置 dashboard:Eureka Server注册中心仪表盘配置那么一般的server配置如下eureka: instance: #以IP地址注册到服务中心,相...原创 2019-05-28 14:04:29 · 695 阅读 · 0 评论 -
Request method 'GET' not supported的其它原因
今天遇到一个奇葩错误{ "timestamp": 1540465525104, "status": 405, "error": "Method Not Allowed", "exception": "org.springframework.web.HttpRequestMethodNotSupportedException", "me原创 2018-10-25 19:12:24 · 16422 阅读 · 3 评论 -
LCN基于Spring cloud2.0实现分布式事物管理(二)项目结合
这里启动三个项目,一个发起方,也就是我们常说的消费者,二个参与方,也就是我们常说的提供者,数据库的处理方式采用jpa的方式,这个用mybatis,hibernate都不影响。项目结构如下:具体的搭建的方式这里就不讲解,这里先把hystrix给去掉,下一篇讲解存在hystrix的情况,采用一个简单的例子,这边要创建用户并且要给这个用户赋予相应的权限。vts_sc_lcn_jpa : ...原创 2018-09-25 12:04:55 · 1712 阅读 · 0 评论 -
LCN基于Spring cloud2.0实现分布式事物管理(一)LCN的修改和部署
官网地址:http://www.txlcn.org/git地址不支持2.0:https://github.com/codingapi/tx-lcn/支持2.0的修改版地址:https://download.youkuaiyun.com/download/zhuwei_clark/10685627首先,对项目进行编译,装好maven环境,jdk环境。命令如下,注意这里需要jdk1.8以上mvn...原创 2018-09-25 11:48:44 · 6051 阅读 · 10 评论 -
logback.xml和logback-spring.xml的区别
logback和logback-spring.xml都可以用来配置logback,但是2者的加载顺序是不一样的。logback.xml--->application.properties--->logback-spring.xml.logback.xml加载早于application.properties,所以如果你在logback.xml使用了变量时,而恰好这个变量是写在ap...原创 2018-09-11 10:17:39 · 7358 阅读 · 1 评论 -
Spring cloud在网关常用签名验证方法
一般在做接口请求的时候为了保证参数的一致性和防止有人利用正确的参数做大量的重复请求,一般都会做签名验证。在spring cloud的项目一般是在网关,利用过滤器的方式进行验证。public class SignFilter extends ZuulFilter{ @Override public Object run() throws ZuulException { // T...原创 2018-09-11 16:41:25 · 8223 阅读 · 0 评论 -
spring-cloud学习笔记基于spring-boot2.0.3--Hystrix集成(一)Feign Hystrix实现
分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况,这种现象被称为服务雪崩效应。为了应对服务雪崩,一种常见的做法是手动服务降级。而 Hystrix 的出现,给我们提供了另一种选择。针对造成服务雪崩的不同原因,可以使用不同的应对策略:流量控制 改进缓存模式 服务自动扩容 服务调用者降级服务流量控制 的具体措施包括:网关限流 用户交互限流 关闭重试因为 Ngin...原创 2018-09-01 12:47:17 · 1071 阅读 · 0 评论 -
spring-cloud学习笔记基于spring-boot2.0.3--服务提供与调用
上一篇我们简单的介绍了注册中心Eureka的内容,这一篇我们接下来讲解的是服务的提供与调用。主要存在三种角色1、注册中心2、服务提供者提供服务并注册到注册中心3、服务消费者从注册中心获取服务。首先创建一个spring-boot项目vts_sc_provider。引入Maven配置 <dependency> <groupId>org.spr...原创 2018-08-28 17:00:29 · 289 阅读 · 0 评论 -
spring-cloud学习笔记基于spring-boot2.0.3--Eureka注册中心(三)自我保护模式及相关问题
因为是个人服务器,虽然采用集群的方式部署,但是Eureka的三个节点我都是部署在一台服务器上,在运行过程中会出现异常提示,Eureka已经进入自我保护模式。 那么首先我们来说下什么是自我保护模式: 当 Eureka Server 节点在短时间内丢失了过多实例的连接时(比如网络故障或频繁的启动关闭客户端),那么这个节点就会进入自我保护模式,一旦进入到该模式,Eure...原创 2018-08-27 17:03:51 · 329 阅读 · 0 评论 -
spring-cloud学习笔记基于spring-boot2.0.3--Eureka注册中心(二)集群方式部署
上篇我们介绍了Eureka的注册中心的搭建,注册中心是整个微服务架构的一个核心组件,如果只是单节点的应用,一旦出现注册中心挂掉的情况,那么会造成服务之间的不可调用。所以在生成环境中一般都会采用集群的部署方式。在上一篇博客的基础上改造:博客地址:https://blog.youkuaiyun.com/zhuwei_clark/article/details/82114299 复制...原创 2018-08-27 16:50:19 · 421 阅读 · 0 评论 -
Spring Cloud项目前后端分离跨域问题解决
跨域问题,其实百度上面有一堆的解决方案,针对普通的情况其实百度上面的方案都是可行的。我这里主要介绍2种情况。当然我这里的配置都是基于网关的,而不是基于服务的。1、没有增加权限验证。2、增加了spring security的权限验证(我这里是基于keyCloak),增加了Authorization 首先我们介绍第一种情况的解决方法,这个很简单,只需要在启动类里面配置过滤器就可...原创 2018-10-26 14:00:52 · 2109 阅读 · 4 评论 -
Spring boot集成websocket实现分布式websocketsession共享(一)--基于redis的发布订阅
本文主要是针对分布式场景下的使用websocket的一个解决方案。我们以下面的图来说明下业务使用场景。 针对如图的情况,很多人第一时间想到的是websocket的session共享,这是大多数的第一反应。很遗憾的是,websocketsession是不支持序列化操作,所以也就不可能存在redis中。那么我们有什么其他的方式解决呢。 我们知道在单节点中我们只需要吧websockets...原创 2018-10-30 21:09:26 · 25762 阅读 · 50 评论 -
spring cloud 问题记录(四)info接口的返回内容设置
我们上一篇博客说了怎么显示为IP端口的形式。那么我们可以看到,这个地方是可以进行点击查看的。如果我们没有进行设置的话,返回的内容其实是一个{}。那么一般我们会把应用的一些信息进行设置,这样在大量服务的情况下,我们能更好的知道部署的项目的内容。现在我们来配置info接口info: app.name: ${spring.application.name} compa...原创 2019-05-28 14:01:19 · 1987 阅读 · 0 评论 -
spring cloud 问题记录(三)设置服务在Eureka注册中心里面显示为IP加端口的形式
在我们打开注册中心的web界面的时候,是可以看到现在连接注册中的服务的,但是显示的信息缺失机器名称加端口的形式,通常IP的形式能更好的理解,所以我们都希望如下图显示。设置如下:eureka: instance: #使用IP注册 prefer-ip-address: true #ip-address: 192.168.1.1 #强制指定IP地址,默认会获取本机的...原创 2019-05-27 17:57:52 · 1853 阅读 · 0 评论 -
spring cloud 问题记录(二)org.apache.http.conn.ConnectTimeoutException: Connect to localhost:8761 timed ou
在启动eureka的之后,启动其他的eureka的服务注册进来之后会出现如下的异常Caused by: org.apache.http.conn.ConnectTimeoutException: Connect to localhost:8761 timed out at org.apache.http.conn.scheme.PlainSocketFactory.connectSocke...原创 2019-05-27 17:53:50 · 16731 阅读 · 0 评论 -
spring cloud 问题记录(一)eureka启动报Cannot execute request on any known server
使用spring cloud也快2年了,从1.5X到现在2.x其实使用过程一直会遇到很多问题,都没有怎么细节的去整理过。最近正在重构一个项目,正好细心的整理一遍。com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server at com.netfli...原创 2019-05-27 14:33:12 · 486 阅读 · 0 评论 -
spring cloud zuul增加header传输
在使用OAuth2.0传输权限认证,为了再调用其他的项目的时候获取token,必须在token下传到其他各个服务@Componentpublic class KeyUserFilter extends ZuulFilter { private static final Logger logger = LoggerFactory.getLogger(KeyUserFilter.cl...原创 2019-05-15 12:07:05 · 1616 阅读 · 0 评论