SpringCloud—GateWay(六)初始化加载流程
核心源码 Route类 Route 是 gateway 中最基本的组件之一,表示一个具体的路由信息载体。路由信息由ID、目标URl、一组断言和一组过滤器组成。如果断言路由为真,则说明请求的URI和配置…
SpringCloud—GateWay(五)熔断、限流、重试
修改请求路径的过滤器 StripPrefix Filter StripPrefix Filter 是一个请求路径截取的功能,我们可以利用这个功能来做特殊业务的转发。 application.yml 配…
SpringCloud—Gateway(四)Filter(过滤器)
Spring Cloud Gateway 的 Filter 的生命周期不像 Zuul 的那么丰富,它只有两个:“pre” 和 “post”。 PRE: 这种过滤器在请求被路由之前调用。我们可利用这种过…
SpringCloud—Gateway(三) Predicate
Predicate 介绍 Predicate 来源于 Java 8,是 Java 8 中引入的一个函数,Predicate 接受一个输入参数,返回一个布尔值结果。该接口包含多种默认方法来将 Predi…
SpringCloud—GateWay(二)服务化
在实际的工作中,服务的相互调用都是依赖于服务中心提供的入口来使用,服务中心往往注册了很多服务,如果每个服务都需要单独配置的话,这将是一份很枯燥的工作。Spring Cloud Gateway 提供了一…
SpringCloud—GateWay(一)
Spring 官方最终还是按捺不住推出了自己的网关组件:Spring Cloud Gateway ,相比之前我们使用的 Zuul(1.x) 它有哪些优势呢?Zuul(1.x) 基于 Servlet,使…
Java—LinkedList
最开始学习 Java 的时候,我还挺纳闷的,有了 ArrayList,干嘛还要 LinkedList 啊,都是 List,不是很多余吗?当时真的很傻很天真,不知道有没有同款小伙伴。搞不懂两者之间的区别…
SpringCloud—Zuul(三)
对Zuul的作用应该已经有了一个基本的认识,但是对于路由的配置我们只是做了一个简单的介绍,本文我们就来看看路由配置的其他一些细节。 首先我们来回忆一下上篇文章我们配置路由规则的那两行代码: zuul.…
SpringCloud—Zuul(二)
Zuul除了网关使用模式,以及自动转发机制,但其实Zuul还有更多的应用场景,比如:鉴权、流量转发、请求统计等等,这些功能都可以使用Zuul来实现。 Zuul的核心 Filter是Zuul的核心,用来…
SpringCloud—Zuul(一)
Spring Cloud中的Ribbon、Hystrix、Feign这些知识点大家都耳熟能详了,我们在前文也提到过微服务就是把一个大的项目拆分成很多小的独立模块,然后通过服务治理让这些独立的模块配合工…
Java—ArrayList源码走一波
ArrayList 实现了 List 接口,是基于数组实现的。小伙伴们都知道,数组的大小是固定的,创建的时候指定了大小,就不能再调整了,如果数组满了,就不能再添加任何元素了。ArrayList 是数组…
Java—数组的操作(java.util.Arrays)
java.util.Arrays 类就是为数组而生的专用工具类,基本上常见的对数组的操作,Arrays 类都考虑到了,这让我由衷地觉得,是时候给该类的作者 Josh Bloch、Neal Gafter…
SpringCloud—OpenFeign拦截器应用(RequestInterceptor)
使用Spring Cloud时,通常会用 Feign 来调用远程服务,比如远程服务的权限验证,需要在 header 中传递 token之类的。在方法中显示传递又过于麻烦了,这时候就可以考虑使用 Fei…
Java—字符串操作(String)
String 可以说是 Java 中最常见的数据类型,用来表示一串文本,它的使用频率非常高。 一、多行字符串 每个操作系统对换行符的定义都不尽相同,所以在拼接多行字符串之前,需要先获取到操作系统的换行…
Java—装饰器模式和代理模式的区别
代理模式和装饰器模式很像,这里用【到咖啡馆喝咖啡】作例子来讲解。 基础实现 定义一个咖啡的接口。 public interface Coffee { /** * 打印当前咖啡里有什么 */ void …
SpringCloud—OpenFeign(四)配置详解+Hystrix
Ribbon配置 ribbon的配置其实非常简单,直接在application.properties中配置即可,如下: # 设置连接超时时间 ribbon.ConnectTimeout=600 # 设…
SpringCloud—OpenFeign(三)继承特性
上篇我们了解了Feign的基本使用,在HelloService类中声明接口时,我们发现这里的代码可以直接从服务提供者的Controller中复制过来,这些可以复制的代码Spring Cloud Fei…
SpringCloud—OpenFeign(二)参数传递
Feign和普通参数传递的区别: 参数一定要绑定参数名。 如果通过 header 来传递参数,一定记得中文要转码。 测试的服务端接口,继续使用 provider 提供的接口。 1.添加调用接口 这里,…
SpringCloud—OpenFeign(一)声明式服务调用
我们使用Ribbon、RestTemplate、Hystrix组件,这些组件是我们Spring Cloud中非常基础的组件,小伙伴们在使用的过程中可能也发现了这些东西都是同时出现的,而且配置也都非常相…
Spring—注解驱动开发Spring Ioc容器中注册Bean的7种方式
Spring是一个非常强大的反转控制(IOC)框架,以帮助分离项目组件之间的依赖关系。因此可以说Spring容器对Bean的注册、管理可以说是它的核心内容,最重要的功能部分。 因此本文主要介绍:向Sp…
SpringCloud—Hystrix(六)仪表盘与Turbine集群监控
Hystrix仪表盘,就像汽车的仪表盘实时显示汽车的各项数据一样,Hystrix仪表盘主要用来监控Hystrix的实时运行状态,通过它我们可以看到Hystrix的各项指标信息,从而快速发现系统中存在的…
SpringCloud—Hystrix(五)请求合并
在微服务架构中,我们将一个项目拆分成很多个独立的模块,这些独立的模块通过远程调用来互相配合工作,但是,在高并发情况下,通信次数的增加会导致总的通信时间增加,同时,线程池的资源也是有限的,高并发环境会导…
SpringCloud—Hystrix(四)请求缓存
高并发环境下如果能处理好缓存就可以有效的减小服务器的压力,Java中有许多非常好用的缓存工具,比如Redis、EHCache等,当然在Spring Cloud的Hystrix中也提供了请求缓存的功能,…
SpringCloud—Hystrix(三)服务降级与异常处理
看了自定义Hystrix请求命令的问题,使大家对Hystrix的使用有了进一步的了解,之前都有涉及到一个叫做fallbackMethod的东西,我们之前没有细说这个东西,今天我们就来详细说说这个fal…
SpringCloud—Hystrix(二)自定义请求命令
前面介绍了断路器Hystrix的一个简单使用,主要是通过注解来实现断路器的功能的,不过对于Hystrix的使用,除了注解,我们也可以使用继承类的方式来实现,本文我们就来看看另一种Hystrix的使用方…
SpringCloud—Hystrix(一)(Ribbon)
基本介绍 Hystrix 叫做断路器/熔断器。微服务系统中,整个系统出错的概率非常高,因为在微服务系统中,涉及到的模块太多了,每一个模块出错,都有可能导致整个服务出,当所有模块都稳定运行时,整个服务才…
Feign、Ribbon、Hystrix 三者关系
如果微服务项目加上了spring-cloud-starter-netflix-hystrix依赖,那么,feign会通过代理模式, 自动将所有的方法用 hystrix 进行包装。 在Spring Cl…
SpringCloud—Ribbon(负载均衡器)
Ribbon Ribbon 是 Netflix 开源的基于 HTTP 和 TCP 的客户端负载均衡器框架,目前也已被 S…
Spring—读取配置的方式,@Value、@PropertySource、@ConfigurationProperties使用详解
前言 Spring (Boot)获取参数的方式有很多,其中最被我们熟知的为@Value了,它不可谓不强大。 针对我们平时最长使用的@Value,以及可能很少人使用的@PropertySource、@C…
SpringCloud—的负载均衡策略
我们大致的了解了一下Spring Cloud中有哪些负载均衡器,但是对于负载均衡策略我们并没有去详细了解,我们只是知道在BaseLoadBalancer的chooseServer方法中,调用了IRul…