SpringCloud
文章平均质量分 59
SpringCloud
栗子木
我是一只小毛驴
展开
-
Spring Cloud Eureka: 客户端运行原理及源码阅读
前言Eureka可分为客户端和服务端两个部分,本篇主要介绍的客户端的运行机制和概念.Eureka客户端主要实现的功能分别是服务注册,服务发现,服务续约服务注册:Eureka Client会通过发送REST请求的方式向Eureka Server注册自己的服务,提供自身的元数据,比如ip地址、端口、运行状况指标的url、主页地址等信息。Eureka Server接收到注册请求后,就会把这些元数据信息存储在一个双层的Map中。服务续约:在服务注册后,Eureka Client会维护一个心跳来.原创 2021-04-04 11:13:23 · 360 阅读 · 0 评论 -
微服务之间调用部分Feign接口忽略认证授权
前言在SpringSecurity框架基础之上实现微服务之间部分接口忽略认证授权.思路创建忽略授权注解 获取所有被注解的类或者方法 在SpringSecurity框架中忽略授权1. 创建忽略授权注解@Target({ElementType.TYPE,ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface AuthIgnore {}2.获取所有...原创 2021-01-21 13:58:50 · 3508 阅读 · 1 评论 -
zuul网关上传大文件到微服务file为空的问题
问题描述:最近一个上传文件的功能,上传了一个较大的文件700M,一直出现接收的文件为空的问题,内存和磁盘都非常充足,也没有出现内存溢出的错误,一直都是空指针的问题,这让我百思不得七届.经过一系列的源码追踪才最终发现了问题所在环境:通过spring cloud zuul 路由转发到对应的文件上传服务,并且加了前缀为/zuul的路径,直接跳过spring mvc的文件处理解决办法和过程:经过自己不断的测试,小文件上传是没有任何问题的,但是一旦出现了较大的文件那么上传的文件则为空...原创 2020-10-10 16:46:19 · 8511 阅读 · 0 评论 -
exception.NacosException: endpoint is blank
出现该异常可能是因为你引用了spring-cloud-starter-alibaba-nacos-config的依赖,但是你实际又没用使用到动态配置,没有配置config.server-addr,所以导致出现了该异常信息原创 2020-08-26 22:01:17 · 706 阅读 · 0 评论 -
NacosException: java.lang.reflect.InvocationTargetException
详细异常信息如下:com.alibaba.nacos.api.exception.NacosException: java.lang.reflect.InvocationTargetException at com.alibaba.nacos.api.config.ConfigFactory.createConfigService(ConfigFactory.java:45) ~[nacos-api-1.1.1.jar:na] at com.alibaba.nacos.api.NacosFact.原创 2020-08-24 22:25:19 · 6901 阅读 · 7 评论 -
Spring Cloud GateWay 路由转发规则介绍
在我们开始本章内容之前我们要来先了解下Spring Cloud Gateway内部提供的所有谓语、断言,这样我们才能目标性的进行学习,我截了一张官网的图,如下所示:每一个Predicate的使用,你可以理解为:当满足这种条件后才会被转发,如果是多个,那就是都满足的情况下被转发。我们在application.yml配置文件内添加对应的路由配置,如下所示:server: port: 9521spring: application: name: service-gatew.原创 2020-07-12 23:07:55 · 2785 阅读 · 1 评论 -
spring cloud gateway 入门介绍
Spring Cloud Gateway是Spring Cloud大家族的一个新进成员,在Spring Cloud 2.0之后用于取代非官方的Zuul。Getaway基于Spring 5.0与Spring WebFlux开发,采用Reactor响应式设计。这是官方文档中提供的图,客户端发起请求到达Gateway,根据HandlerMapping到路由处理术语路由(Route):路由为一组断言与一组过滤器的集合,他是网关的一个基本组件。断言(Predicate):匹配路由的判断条件..原创 2020-07-12 22:21:44 · 245 阅读 · 0 评论 -
spring cloud alibaba nacos 配置详解
spring.cloud.nacos.discovery.server-addr ...原创 2020-07-11 14:26:28 · 2459 阅读 · 0 评论 -
spring cloud alibaba nacos 使用MYSQL数据源
在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:1.安装数据库,版本要求:5.6.5+ 2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql 3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。spring.datasource.platform=m转载 2020-07-11 11:43:27 · 582 阅读 · 0 评论 -
Spring Cloud Alibaba Nacos 实现配置管理
nacos非常的强大,不仅可以作为一个注册中心使用,同时也能够取代config作为一个配置中心,并且提供了比sprring cloud config更加强大的功能和交互方式接下来我们会继续使用上篇文章创建的nacos的服务,作为演示案例,参考https://blog.csdn.net/weixin_42214548/article/details/107280560步骤一:添加依赖,并且将application.properties重命名为bootstrap.properties,b..原创 2020-07-11 11:33:54 · 317 阅读 · 0 评论 -
spring cloud alibaba nacos 负载均衡
nacos天生就支持负载均衡,为什么呢,我们看看下图就知道了,nacos已经集成了ribbon,所以当同一个服务出现了多个实例之后会默认使用轮训机制进行负载均衡步骤一:上篇我们创建了nacos的提供者微服务,参考https://blog.csdn.net/weixin_42214548/article/details/107280560所以我们创建一个消费者微服务spring-cloud-consumer-nacos,并添加依赖 <dependencies> .原创 2020-07-11 11:00:05 · 1150 阅读 · 3 评论 -
spring cloud alibaba nacos 启动服务注册
本篇通过实现一个简单的 demo演示如何在您的 Spring Cloud 项目中启用 Nacos 的服务发现功能,如下图示:步骤一:创建一个简单的项目spring-cloud-test,并在pom文件中添加依赖管理器<dependencyManagement> <dependencies> <!-- SpringCloud 微服务 --> <dependency>..原创 2020-07-11 10:27:10 · 387 阅读 · 0 评论 -
spring cloud alibaba nacos的入门介绍
概览Nacos致力于帮助您发现,配置和管理微服务,Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现,服务配置,服务元数据及流量管理.Nacos 的关键特性包括:服务发现与服务健康监测 动态配服务 动态DNS服务 服务及元数据管理Nacos的地图Nacos 架构基本架构及概念服务 (Service)服务是指一个或一组软件功能(例如特定信息的检索或一组操作的执行),其目的是不同的客户端可以为不同的目的重用(例如通过跨进程的网络调用)。...原创 2020-07-11 09:54:22 · 201 阅读 · 0 评论 -
zuul+ribbon实现微服务故障重试
问题描述今天公司的微服务项目因为需要迭代更新会频繁重启,这样导致我们产品的体验非常不好,打算做服务集群,然后因为zuul网关集成了ribbon的原因,可以默认实现轮训制的负载均衡,这样我们重启一个服务的时候,另外一个集群服务将为产品提供服务.但是现实很骨感,因为是轮训制的负载,总是出现一个请求成功,一个请求出现状态码500的错误.HTTP Status 500 – Internal Server Errorzuul网关控制台出现类似如下的一些错误,这是因为在一个服务停止之后eureka不会.原创 2020-07-09 16:02:58 · 853 阅读 · 0 评论 -
spring cloud config 的spring.cloud.config.server.git.basedir含义
spring cloud config启动后会去application.yml中配置好的git仓库中读取配配置到本地中,默认是读取到临时目录下,例如: /tmp/XXXXXXX等. 如果读取后的配置存放在临时目录下,首先是不易去查看,其次在linux下会定时清除临时配置,所以使用默认的临时目录不是一个好方法. 而spring cloud给我们提供了指定读取配置文件的存放路径方法spring.cloud.config.server.git.basedir : ...原创 2020-06-23 10:39:15 · 1373 阅读 · 0 评论 -
解决spring cloud zuul的run方法return null之后还继续执行微服务请求
问题描述spring cloud zuul网关的使用有一个坑,在你对请求使用zuul提供的过滤器进行鉴权的时候如果进入到run方法里面,使用return null之后,并不会终止这次的请求,zuul还是会对这次的请求进行路由转发,这个就比较坑了. 参考下图,再进行return null之后,将继续执行下一个拦截器,而不会结束此次请求.解决问题我们只需要对RequestContext对象设置setSendZuulResponse(false)即可停止此次路由...原创 2020-06-23 10:07:28 · 1544 阅读 · 1 评论 -
SpringCloud使用eureka配置集群出现问题unavailable-replicas
原因一: eureka的注册中心地址不能使用localhosteureka: client: service-url: defaultZone: http://locaohost:8761/eureka/原因二: 相互注册要打开eureka.client.register-with-eureka=trueeureka.client.fetch-registr...原创 2020-02-23 14:02:35 · 493 阅读 · 0 评论 -
SpringCloud Zuul集成分布式Api文档Swagger2
关于如何在微服务中使用swagger2文档的问题,将在这篇文章中进行讲述.很多人在单体应用中都使用过swagger2,这个是没有问题的.不过现在系统架构进入到微服务时代,很多的互联网公司都开始使用微服务架构项目,那在微服务中是如何使用swagger2的呢,假设有:会员服务,订单服务,库存服务. 我们每次进行swagger2文档都需要改变地址栏的域名或者IP吗,这毫无疑问是一个愚蠢的做法,spr...原创 2019-11-23 16:43:20 · 579 阅读 · 0 评论 -
springcloud-config手动刷新和自动刷新实现
当一个系统中的配置文件发生改变的时候,我们需要重新启动该服务,才能使得新的配置文件生效,spring cloud config可以实现微服务中的所有系统的配置文件的统一管理,而且还可以实现当配置文件发生变化的时候,系统会自动更新获取新的配置什么是手动刷新?因为springcloud-config的服务端第一次读取远程git服务器的配置之后是会缓存一份配置在本地的,即使远程git修...原创 2019-11-18 23:35:41 · 1804 阅读 · 1 评论 -
SpringCloud中Hystrix的服务降级和服务熔断介绍和使用
什么是服务降级?服务降级的概念主要适用于微服务和分布式项目,在高并发的情况下一个微服务因为某种原因无法提供服务,其他级联的微服务可能会出现线程阻塞的情况,从而出现拖垮整个服务的风险.所以根据项目具体的业务可以针对某些接口进行服务降级,也就是快速返回友好提示.什么是服务熔断?服务熔断通常都是和服服务降级一起配合使用,熔断机制目的为了保护服务,在高并发的情况下,如果请求达到一定极限(...原创 2019-11-17 19:07:06 · 606 阅读 · 0 评论 -
springcloud的feign客户端连接超时问题(connect timed out)
有些人第一次使用feign客户端或许会出现下面的情况这对上述的情况不用担心,因为feign客户端默认的超时时间是一秒,一秒超时时间在复杂的业务场景下通常都是不够用的,所以对于这种情况我们只要配置下将feign的超时时间设置的长一些就行了.因为feign客户端底层使用ribbon作为客户端负载均衡,所以我们只要加上下面这段配置就可以解决这个问题....原创 2019-11-16 22:00:35 · 7788 阅读 · 0 评论 -
springcloud整合zookeeper
在eureka2.0闭源之后,consu和zookeeper都成为了替代的选择,今天给大家演示一下如何使用springcloud去整合zookeeper.首先是加入依赖jar包:spring-cloud-starter-zookeeper-discovery: springcloud整合zookeeper的依赖然后是yml配置:connect-string: 12...原创 2019-11-16 11:55:29 · 1070 阅读 · 2 评论 -
springcloud-eureka自我保护机制
默认情况下eurekaclient会定时向eurekaserver端发送心跳(默认是30S),如果eurekaserver在一定时间内没有收到eurekaclient发送的心跳,便会把该实例从注册服务列表中剔除(默认是90S),但是短时间内丢失大量的实例心跳的话,这时候eurekaserver会开启自我保护机制,.所有的注册服务实例都将被保护起来,不被剔除.产生的原因:在开发测试时,...原创 2019-11-15 23:15:00 · 356 阅读 · 0 评论 -
springcloud-eureka高可用集群搭建
高可用注册中心在微服务中,注册中心非常核心,可以实现服务治理,如果一旦注册出现故障的时候,可能会导致整个微服务无法访问,在这时候就需要对注册中心实现高可用集群模式。Eureka高可用原理默认情况下Eureka是让服务注册中心,不注册自己 ###因为该应用为注册中心,不会注册自己 register-with-eureka:true ###不...原创 2019-11-15 22:44:26 · 173 阅读 · 0 评论 -
springcloud-eureka入门使用
什么是服务治理在传统rpc远程调用中,服务与服务依赖关系,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。服务注册与发现在服务注册与发现中,有一个注册中心,当服务器启动的时候,会把当前自己服务器的信息 比如 服务地址通讯地址等以别名方式注册到注册中心上。另一方(消费者|服务提供者),以该别名的方式去注册中心...原创 2019-11-15 22:37:45 · 143 阅读 · 0 评论 -
springcloud-eureka参数详解
spring cloud eureka 参数配置eureka.client.service-url.defaultZone表示eureka的注册中心地址eureka.client.fetch-registery是否拉去注册中心的实例地址eureka.client.register-with-eureka是否注册自己到注册中心eureka.client....原创 2019-11-14 22:56:51 · 635 阅读 · 0 评论