快捷搜索: 王者荣耀 脱发

OpenFeign简介,负载策略

openFeign概念:

Open 是 Spring Cloud 家族的一个成员, 它最核心的作用是为 HTTP 形式的 Rest 提供了非常简洁高效的 RPC 调用方式

... <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> ... <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> 接口类上:@FeignClient("被调用的服务器名")

启动类上:@EnableFeignClients

然后在需要使用的地方@Resource注入

OpenFeign的用途及实现原理 openfeign的用途:服务发现,负载均衡,服务调用

在SpringCloud中,可以实现服务调用和负载均衡,而OpenFeign基于注解加接口的服务调用方式比Ribbon看起来更加简洁,那我们在使用OpenFeign实现服务调用时,如何修改负载均衡策略呢?

随机(Random)算法:在实例列表中随机选择某个实例 轮询(RoundRobin)算法:按顺序选择实例 最少连接数(Least Connections)算法:每次取连接数最少的实例 一致性哈希(Consistent Hashing)算法:基于一致性哈希算法总是将相同参数的请求落在同一个实例上 权重随机(Weigthd Random):随机取一个数,根据这个数属于哪个范围选择对应的实例

Ribbon内置负载均衡算法

1、 RoundRobinRule

    轮询策略:Ribbon 默认采用的策略。若经过一轮轮询没有找到可用的provider,其最多轮询 10 轮(代码中写死的,不能修改)。若还未找到,则返回 null。

2、RandomRule

    随机策略:从所有可用的 provider 中随机选择一个。

3、RetryRule

    重试策略:先按照 RoundRobinRule 策略获取 server,若获取失败,则在指定的时限内重试。默认的时限为 500 毫秒。

4、BestAvailableRule

    最可用策略:选择并发量最小的 provider,即连接的消费者数量最少的provider。其会遍历服务列表中的每一个server,选择当前连接数量minimalConcurrentConnections 最小的server。

5、AvailabilityFilteringRule

    可用过滤算法:该算法规则是过滤掉处于熔断状态的 server 与已经超过连接极限的server,对剩余 server 采用轮询策略。

经验分享 程序员 微信小程序 职场和发展