
spring cloud
spring cloud系列问题说明
zhuwei_clark
还行吧
展开
-
Spring Cloud微服务构建汇总
本文源码源码地址基础说明 项目构建 阿里云相关功能封装 单元测试 rabbitMq的封装 异常处理 Swagger集成 网关集成 当前用户获取 服务调用 认证体系 配置中心集成...原创 2020-03-18 13:09:51 · 302 阅读 · 0 评论 -
Spring Cloud微服务项目搭建系列文章(十):使用nacos作为注册中心openfeign进行服务之间调用
上一篇获取当前登录用户我们讲解了怎么获取当前登录的用户这一篇我们来讲解下注册中心,注册中心其实是微服务的核心组件了本文源码:源码地址常用的注册中心:eureka 只维护1.X版本了,2.x版本已经放弃了。属于CA原则的注册中心 ZooKeeper 高一致性的注册中心,也是dubbo支持的比较好的注册中心 consul 可以理解是eureka的升华,适用于大的系统中 nac...原创 2020-03-11 10:27:40 · 1384 阅读 · 2 评论 -
Spring Cloud微服务项目搭建系列文章(九):Spring Cloud gateway集成Spring Cloud Security、Oauth2获取当前登录用户
上一篇Spring Cloud Gateway的集成我们讲解了如何集成Spring cloud gateway本文源码地址:源码地址那么接下来我们希望网关做为入口能集成权限相关认证,具体的集成流程请参考:Spring Cloud Gateway实现权限控制集成权限模块之后,一般的项目获取当前登录用户的接口是调用比较频繁的接口信息之一。这里也体现使用JWT的方式的好处之一,部分用...原创 2020-03-10 15:45:37 · 12120 阅读 · 1 评论 -
Spring Cloud微服务项目搭建系列文章(八):Spring Cloud gateway网关集成
上一篇Swagger处理我们讲解了API的处理,那么公共模块基本上我们处理的差不多了。这一篇我们主要介绍网关的集成,在Spring Cloud的体系里面网关主要有以下两种:1、zuul2、gatewayzuulSpring Cloud 只支持1.X的版本,因为zuul2.x的版本一直没有出,所以才有Spring Cloud gateway的出现。所以Spring cloud是没...原创 2020-03-09 10:34:50 · 1717 阅读 · 0 评论 -
Spring Cloud微服务项目搭建系列文章(七):API处理之Swagger集成
上一篇异常处理我们讲解了关于异常的处理,本文主要介绍对于API的处理。本文项目地址:源码地址现在Spring对于web的处理分成2中方式:一种是传统的webmvc的方式,基于http的一种是基于reactor和netty实现的,webflux的方式。因此Swagger也提供了2种集成方式,webflux的实现Swagger2集成Spring boot 2.1.12 ...原创 2020-03-05 15:34:13 · 566 阅读 · 0 评论 -
Spring Cloud微服务项目搭建系列文章(六):自定义异常和全局异常捕获
上一篇rabbitmq集成和封装我们讲解rabbit相关的内容本文项目源码地址:源码地址在很多业务场景我们需要对一些异常情况进行异常抛出处理,但是抛出的异常往往在可读性上不是特别的友好。所以我们需要对异常进行处理。在不同的业务场景我们需要对不同的的业务进行明确的异常说明,所以我们不能都抛出同一个runtimeException。这样表达就不够明确。所以整个异常的结构应该如下构建:...原创 2020-03-05 14:49:13 · 897 阅读 · 0 评论 -
Spring Cloud微服务项目搭建系列文章(五):rabbitMq集成和封装
上一篇Spring Boot单元测试我们讲解了如何对Spring boot项目进行单元测试。下面我们继续讲解Com模块其他功能的实现,这篇我们讲解的是RabbitMq的集成和封装功能。前言ACK机制下面是我看到网友对rabbitMq的ack机制的总结1、什么是消息确认ACK。 答:如果在处理消息的过程中,消费者的服务器在处理消息的时候出现异常,那么可能这条正在处理的消息就...原创 2020-03-05 11:47:59 · 1189 阅读 · 0 评论 -
Spring Cloud微服务项目搭建系列文章(四):Spring Boot单元测试
上一篇阿里云相关功能我们讲解了如何封装阿里云常用的功能,以及使用注解进行开关操作。本文源码地址:源码地址正常的情况我们写完这个功能的时候是应该进行单元测试的,下面我们来讲解下如何进行单元测试首先POM文件,导入测试相关的JAR包 <!-- https://mvnrepository.com/artifact/junit/junit --> ...原创 2020-03-05 11:02:40 · 923 阅读 · 0 评论 -
Spring Cloud微服务项目搭建系列文章(三):公共模块之阿里云OSS,VOD,SMS相关功能封装
上一篇外层项目构建我们讲解如何构建一个外层项目,现在开始我们讲解的是Com模块的相关功能Com模块是一个starter包,至于什么事starter包,后面我会单独来讲解。项目源码:源码地址背景说明这一篇是公共模块中阿里云相关功能讲解,在日常开发中其实我们跟阿里云的接触是相当的频繁的。而且阿里云的产品确实也非常好用,这里就介绍三个功能的集成:OSS文件存储 VOD视频点播 短...原创 2020-03-04 19:18:22 · 1128 阅读 · 1 评论 -
Spring Cloud微服务项目搭建系列文章(二):外层项目构建
上一篇我基础说明们简单的说了下服务的演变和结构图。下面我正式来开始构建项目项目源码地址:源码地址外层项目创建创建项目:file->new->project设置group id和artifact id设置maven相关属性点击完成项目就构建完成了删除Src目录,并修改POM文件内容,主要是做这么几件事情指定上传下载jar的仓...原创 2020-03-04 18:49:07 · 410 阅读 · 0 评论 -
Spring Cloud Security 集成Spring cloud gateway 解决跨域问题
针对于spring boot的相关项目,如果没有集成Security等权限相关的框架,配置跨域其实很简单,网上的大部分的做法其实也是对的@Configurationpublic class CorsFilter implements WebFilter { @Override public Mono<Void> filter(ServerWebExchang...原创 2020-03-03 17:32:56 · 2578 阅读 · 3 评论 -
Spring Cloud Gateway +Oauth2 +JWT+Vue 实现前后端分离RBAC权限管理
这是一篇很长的文章,所以需要有点耐心,当然也可以直接查看源码:源码对于有不太明白的地方可以给我留言,如果网关是zuul或者不是基于spring cloud的实现的,那其实更简单了1.1、如果是zuul正常实现资源服务起就行,只是核心的manager实现变了一个接口,这个可以参考下面我给的连接地址。1.2、如果是单纯的spring boot,就只需要吧auth模块和com模块引入即可。无太大的变...原创 2020-02-27 17:58:22 · 24553 阅读 · 8 评论 -
TX-LCN补充说明:解决集群节点下,分布式事务回调用,会路由到非发起方机器上去
第一步:TM修改JoinGroupExecuteService修改//源码// transactionManager.join(dtxContext, joinGroupParams.getUnitId(), joinGroupParams.getUnitType(),// rpcClient.g...原创 2019-12-26 11:18:01 · 1428 阅读 · 0 评论 -
Eureka-Server源码更改增加操作功能
更改好的JAR下载地址:https://download.csdn.net/download/zhuwei_clark/12048483源码更改内容如下:1、首先用压缩软件打开该jar包这里说一个小细节,一般spring系列的页面都是使用freemarker渲染的。这个也是我们日常处理页面静态化常用的方式。进入templates目录,一直找到静态资源存储的目录:...原创 2019-12-24 11:53:05 · 183 阅读 · 0 评论 -
深入解析RabbitMQ,实现发送安全,手动ACK,错误数据持久化。队列不同时段重试
最近挺忙的,时间有限我就不写原理了,直接贴代码。是最近项目需要我整理的。yml配置 #rabbit配置spring: rabbitmq: host: 172.17.236.101 port: 5672 username: XXX password: XXX#rabbit扩展配置配置spring: rabbitmq: virtua...原创 2019-12-11 19:54:48 · 673 阅读 · 0 评论 -
spring cloud oauth2系列篇(三)password模式获取access_token
项目的源码地址:https://github.com/daxian-zhu/online_edupassword模式和上一篇文章的代码是一致的:https://blog.csdn.net/zhuwei_clark/article/details/96174086访问方式稍微有点不一样http://localhost:9004/oauth/token?grant_type=pass...原创 2019-07-16 20:20:45 · 980 阅读 · 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 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 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 · 7802 阅读 · 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 问题记录(十三)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 · 11906 阅读 · 7 评论 -
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 · 644 阅读 · 0 评论 -
spring cloud 问题记录(十一)网关不能加载相应的服务的问题
在启动eureka,config,gateway,业务应用的时候,突然之间遇到一个很懵逼的问题。通过网关访问业务应用居然报404错误,分析原因。1:地址错误检查地址:排除2:端口错误:检查端口:排除3:检查gateway的路由规则和业务应用:检查:排除。后来去查看gateway的启动类@EnableZuulServer@EnableEurekaClient...原创 2019-06-18 10:27:25 · 1433 阅读 · 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 · 3381 阅读 · 0 评论 -
spring cloud 问题记录(七)配置中心属性配置不更新的问题
在更新配置文件,并且提交到git上面去,调用刷新的接口http://localhost:9002/actuator/bus-refresh重新请求业务接口,发现数据没有刷新。一脸懵逼的开始找原因:1:首选怀疑是否刷新的问题,所以查看本地缓存文件。结论:本地缓存文件已经刷新。2:重启业务应用试试是否生效,这个时候居然报错了java.nio.charset.Malfor...原创 2019-06-17 17:01:03 · 1385 阅读 · 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 · 2955 阅读 · 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 评论 -
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 · 1617 阅读 · 0 评论 -
spring cloud -分布式服务调用链跟踪整合Zipkin、RabbitMQ
相关的Jar的引入 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-sleuth-zipkin-stream</artifactId> </dependency> <!-- ...原创 2019-04-12 17:04:43 · 478 阅读 · 0 评论 -
spring cloud 配置中心-基于spring cloud bus(2)--项目构建
spring boot的版本为1.5.8 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.8.RELEASE<...原创 2019-04-10 17:19:19 · 135 阅读 · 0 评论 -
spring cloud 配置中心-基于spring cloud bus(1)--rabbitMq的安装(CentOS7.X)
wget http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el6.x86_64.rpmrpm -ihv erlang-18.1-1.el6.x86_64.rpmyum install socatwget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitm...原创 2019-04-10 14:10:01 · 153 阅读 · 0 评论 -
spring boot使用Redis分布式锁实现分布式环境下定时任务的管理
我们有很多时候都需要一些定时任务的辅助,大多数情况,定时任务都可能是写到一个服务节点。但是可能存在以下情况: 但是如果业务逻辑过于复杂的话,不好维护。 如果服务节点挂了,那么所有的定时任务都不会执行了。 如果在微服务的体系里面,我个人感觉定时任务还是跟着服务本身走维护要方便,而且对于业务开发人员也比较方便。而且通常的情况下我们的服务都是采用分布式多节点的方式...原创 2018-11-02 15:07:50 · 4804 阅读 · 5 评论 -
Spring boot集成websocket实现分布式websocketsession共享(一)--基于redis的发布订阅
本文主要是针对分布式场景下的使用websocket的一个解决方案。我们以下面的图来说明下业务使用场景。 针对如图的情况,很多人第一时间想到的是websocket的session共享,这是大多数的第一反应。很遗憾的是,websocketsession是不支持序列化操作,所以也就不可能存在redis中。那么我们有什么其他的方式解决呢。 我们知道在单节点中我们只需要吧websockets...原创 2018-10-30 21:09:26 · 25764 阅读 · 50 评论