我们提供安全,免费的手游软件下载!

安卓手机游戏下载_安卓手机软件下载_安卓手机应用免费下载-先锋下载

当前位置: 主页 > 软件教程 > 软件教程

Eureka的负载均衡

来源:网络 更新时间:2024-05-05 18:32:21

负载均衡是指在一个系统中,将请求分发到多个服务器上,以避免单一服务器压力过大。Eureka是一种负载均衡技术,它最近进行了一些更新和修改,包括其对于Netflix包的更新替代品。

负载均衡的基本流程如下:

  • 负载均衡流程

老版本Eureka负载均衡的具体流程如下所示:当order-servic发起的请求进入Ribbon后会被LoadBalancerInterceptor负载均衡拦截器拦截。拦截器获取请求中的服务名称,然后交给RibbonLoadBanlancerCient。RibbonLoadBanlancerCient将服务名称当作服务id交给DynamicServerListLoadBanlancer,后者通过eureka-server获取对应的服务列表。eureka-server返回真实的服务地址给DynamicServerListLoadBanlancer,然后DynamicServerListLoadBanlancer通过IRule的实现接口基于规则选择一种方式获取到返回的真实地址列表中的一个服务返回给RibbonLoadBanlancerCient。RibbonLoadBanlancerCient通过获取到的真实ip和端口替换掉原来的服务名称,向对应的服务发起请求获取数据并返回给order-servic。

新版本Eureka的更新内容如下所示:

新版本eureka对于netflix包只保留eureka本身,其它组件全部移除,并给出了推荐的替代品。

Netflix 推荐替代品 说明
Hystrix Resilience4j Hystrix自己也推荐你使用它代替自己
Hystrix Dashboard / Turbine Micrometer + Monitoring System 说白了,监控这件事交给更专业的组件去做
Ribbon Spring Cloud Loadbalancer 忍不住了,Spring终究亲自出手
Zuul 1 Spring Cloud Gateway 忍不住了,Spring终究亲自出手
Archaius 1 Spring Boot外部化配置 + Spring Cloud配置 比Netflix实现的更好、更强大

在新版本中,Ribbon被Spring Cloud Loadbalancer替代,所以新版本的流程将不再通过IRule来选择地址了。

新版本Eureka负载均衡的流程具体如下: 当order-servic发起的请求进入Loadbalancer后会被LoadBalancerInterceptor负载均衡拦截器拦截。拦截器获取到请求中的服务名称,交给LoadBalancerClient,LoadBalancerClient就去通过eureka-server获取到对应的服务列表。通过ReactiveLoadBalancer来选择一个并且返回对应的真实地址,然后LoadBalancerClient就会通过获取到的真实ip和端口替换掉原来的服务名称,去发起这个请求获取到对应的数据返回给order-servic。

需要注意的是,默认ReactiveLoadBalancer只有默认两个实现类,也就意味着它默认只能通过两种方案来选择,一种是随机选择,一种是轮询选择。要做更多的选择需要我们自己编写对应的代码。