首页 > 其他分享 >微服务架构---Ribbon\Feign

微服务架构---Ribbon\Feign

时间:2024-09-20 16:51:54浏览次数:10  
标签:Feign 调用 服务 负载 --- 均衡 com Ribbon

Ribbon(负载均衡)

Ribbon概述

在 SpringCloud 中, Nacos⼀般配合Ribbon进行使用Ribbon提供了客户端负载均衡的功能,Ribbon利用从Nacos中读取到的服务信息,在调用服务节点提供的服务时,会合理的进行负载。

Ribbon作用

1.服务调用

基于Ribbon实现服务调用, 是通过拉取到的所有服务列表组成(服务名-请求路径的)映射关系。借助 RestTemplate 最终进⾏调用

2. 负载均衡

当有多个服务提供者时,Ribbon可以根据负载均衡的算法自动的选择需要调用的服务地址

Ribbon实现订单调用商品服务

  1. 不需导入坐标(springcloud提供的服务发现的jar中已包含了Ribbon的依赖)

  2. 商品服务控制层打印查询商品的信息

  3. 订单服务(消费者),添加负载均衡注解

  @Bean
   	@LoadBalanced //负载均衡
   	public RestTemplate getRestTemplate(){
   		return new RestTemplate();
   	}
  1. 订单控制层通过服务名称消费使⽤

image-20240820010643102

Ribbon实现负载均衡

  • 服务端负载均衡

先发送请求到负载均衡服务器或者软件,然后通过负载均衡算法,在多个服务器之间选择⼀个进⾏访 问

  • 客户端负载均衡

客户端会有⼀个服务器地址列表,在发送请求前通过负载均衡算法选择⼀个服务器,然后进行访问

商品服务举例

  1. 再创建一个商品微服务启动,设置其端口为8082

启动两次服务器验证效果,并查看两个控制台发现以轮询的方式调用了商品服务

负载均衡策略

yml中需要调用的微服务名称默认不写是轮询方式

  • com.netflix.loadbalancer.RoundRobinRule :以轮询(A-B-A-B)的方式进行负载均衡

  • com.netflix.loadbalancer.RandomRule :随机策略

  • com.netflix.loadbalancer.RetryRule :重试策略

  • com.netflix.loadbalancer.WeightedResponseTimeRule :权重策略。会计算每个服务的权重,越高的被调用的可能性越大

  • com.netflix.loadbalancer.BestAvailableRule :最佳策略。遍历所有的服务实例,过滤掉故障实例,并返回请求数最小的实例返回

  • com.netflix.loadbalancer.AvailabilityFilteringRule :可⽤过滤策略。过滤掉故障和请求数超过阈值的服务实例,再从剩下的实例中轮询调用

  • ZoneAvoidanceRule:以区域可用的服务器为基础进行服务器的选择

✔在启动类方法上添加注解后再运行

自定义负载均衡策略

方式1:定义⼀个新的IRule:(全局设置--->对所有微服务生效)

@Bean
public IRule randomRule(){
 return new RandomRule();
}

方式2:在yml配置文件中配置:(局部设置--->对指定微服务生效)

#需要调⽤的微服务名称
service-product:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

标签:Feign,调用,服务,负载,---,均衡,com,Ribbon
From: https://blog.csdn.net/m0_63016075/article/details/142389902

相关文章

  • 基于微信小程序的家政项目管理系统的设计与实现-计算机毕业设计源码+LW文档
    摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了微信小程序家政项目小程序的开发全过程。通过分析微信小程序家政项目小程序管理的不足,创建了一个计算机管理微信小程序家政项目小程序的方案。文章介绍了微信小程序家政项目小程......
  • 【机器学习(九)】分类和回归任务-多层感知机 (MLP) -Sentosa_DSML社区版
    文章目录一、算法概念二、算法原理(一)感知机(二)多层感知机1、隐藏层2、激活函数sigma函数tanh函数ReLU函数3、反向传播算法三、算法优缺点(一)优点(二)缺点四、MLP分类任务实现对比(一)数据加载和样本分区1、Python代码2、Sentosa_DSML社区版(二)模型训练1、Python代码2、Sent......
  • 命令行提示:-bash-4.2$ ,原因分析及解决
    inux普通用户登录后,命令行提示:-bash-4.1$,原因分析及解决有时候在使用用户登陆Linux系统时会发现,命令行提示符成了:-bash-4.2$,不显示用户名,路径信息。 原因:用户家目录里面与环境变量有关的文件被删除所导致的也就是这俩文件:.bash_profile.bashrc这两个文件被删除了,导致......
  • 华为OD机试真题- 关联子串 python-2024年OD统一考试(E卷)
     最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客     每一题都含有详细的解题思路和代码注释,精编c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,持续跟新。题目描述:给定两个字符串str1和str2,如......
  • GEE教程:1950-2023年ECMWF数据中积雪的长时序统计分析
    目录简介数据函数millis()Arguments:Returns: Long代码结果简介1950-2023年ECMWF数据中积雪的长时序统计分析数据ECMWF/ERA5_LAND/DAILY_AGGR是由欧洲中期天气预报中心(ECMWF)提供的数据集。它是一个格网数据集,包含从ERA5-Land再分析数据集中得出的陆地区域每日聚......
  • Kubernetes-高可用集群证书更新
    本次k8s版本为v1.23.17Kubernetes集群中的证书主要分为两大类:Kubernetes组件证书(如:apiserver相关的证书)Etcd集群证书根据集群角色,证书还可以细分为:管理节点证书工作节点证书证书详情管理节点证书:Kubeadm部署:证书会由Kubeadm自动生成,覆盖Kubernetes组件(如:a......
  • P11063 【MX-X4-T3】「Jason-1」数对变换
    题意你有一个有序数对\((x,y)\),每次你可以选择其中一个数并指定一个整数\(k\),然后将你选的那个数除以\(k\)下取整,另外一个数乘\(k\)。你现在想要把\((a,b)\)变换成\((c,d)\)构造一组在65步解决问题的方案,或报告无解。\(1\lea,b,c,d\le10^9\)分析这题的突破口在于......
  • CCF31-1
    题目描述输入输出格式样例代码#include<stdio.h>#include<stdlib.h>#defineu100intmain(){intn,m,i,j,a[u][u],b[u][u];scanf("%d%d",&n,&m);for(i=0;i<n;i++)scanf("%d%d",&a[i][0],&a[i][1......
  • CCF32-1
    题目描述输入输出格式样例代码#include<stdio.h>#include<stdlib.h>#defineu1000#definek100intmain(){intn,m,i,j,p,t,a[u][k],b[u];scanf("%d%d",&n,&m);for(i=0;i<n;i++){for(j=0;j<m;j++)......
  • ASR6601 是一款通用的 Sub-GHz 无线通讯 SoC 芯片
    ASR6601是一款通用的Sub-GHz无线通讯SoC芯片该芯片集成了Sub-GHz射频收发器和32位的RISCMCU。Sub-GHz射频收发器不仅支持LoRa调制,还支持(G)FSK和G(MSK)等调制方式。CPU为ARMSTAR,工作频率最大支持48MHz。此外,该芯片支持3xI2C,1xI2S,4xUART,1xLPUART......