当前位置: 首页 > wzjs >正文

黄山网站建设电话百度一下电脑版

黄山网站建设电话,百度一下电脑版,免费网页在线客服系统甜甜,wordpress 字体图标4. 负载均衡-LoadBalance 4.1 为什么需要负载均衡? 不知道各位心中有没有女神,通常来说一个女神就会有多个舔狗,那这些舔狗呢,就会心甘情愿的帮女神干活,假设女神小美现在有三个舔狗,小美喜欢让这三个舔狗…

4. 负载均衡-LoadBalance

4.1 为什么需要负载均衡?

不知道各位心中有没有女神,通常来说一个女神就会有多个舔狗,那这些舔狗呢,就会心甘情愿的帮女神干活,假设女神小美现在有三个舔狗,小美喜欢让这三个舔狗帮她买奶茶喝,总不能一直让一个舔狗买吧,买着买着说不定那个舔狗不干了,所以得雨露均沾,那么就有两个雨露均沾的办法:

三个舔狗,每个舔狗轮流买一次。

三个舔狗,每次随机选一个舔狗买。

所以说,为什么需要负载均衡?因为需要雨露均沾,站在服务的角度说,就是不能让一个服务天天干活吧,总的分散下压力吧,比如说来了 十万个请求,有三台服务器,总不能这十万个请求都到让一个服务器去处理吧。

那么 Spring Cloud LoadBalancer 就是一个实现负载均衡的组件。

4.2 负载均衡策略

负载均衡策略是⼀种思想。无论是哪种负载均衡器。它们的负载均衡策略都是相似的。

Spring Cloud LoadBalancer 仅支持两种负载均衡策略:轮询策略和随机策略。

轮询策略: 三个舔狗轮着来,每个舔狗轮流买一次。

随机策略: 三个舔狗,每次随机选一个舔狗买。

LoadBalancer 的实现,主要是 LoadBalancerInterceptor,这个类会对 RestTemplate 的请求进行拦截,然后从Eureka 根据服务名获取服务列表,随后利用负载均衡算法得到真实的服务地址信息,替换服务名(将获取到的 ip:端口号 替代掉服务名),这样一来,使用 LoadBalancer 就不需要咱们手动去获取指定的服务信息了。

4.3 代码实现

在 SpringCloud 项目中,想实现负载均衡很简单,先在需要远程方法调用的服务器引入这个依赖:

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>

然后给咱们的 cook 服务的 RestTemplate 这个 Bean 加上 @LoadBalanced 注解就 OK了。

package com.zlcode.cook.config;import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;@Configuration
public class BeanConfig {@Bean@LoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate();}
}

咱们的代码实现就只讲解轮询这简单的策略就 OK了,随机策略在咱们这里的代码中就不演示了,想了解的可以自行查一下文档,也是比较简单的。

下面就需要修改 cook-service 的 CookController 的远程方法调用的代码:

package com.zlcode.cook.controller;import jakarta.websocket.server.PathParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;@RestController
@RequestMapping("/cook")
public class CookController {@Autowiredprivate RestTemplate restTemplate;@RequestMapping("/ok")public String ok(@PathParam("content")String content) {String url = "http://waiter-service/up/{content}";String resp = restTemplate.getForObject(url, String.class, content);return "调用成功, 已收到 waiter 的响应: " + resp;}
}

接来启动三个 waiter-service 服务,分别运行在 9090,9091,9092 端口上,至于如何同一个项目同时运行在三个不同的端口上,这个不了解可以自行去搜索下,这里就不再赘述。

在这里插入图片描述

在浏览器多次刷新请求,然后观察控制台输出:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

发现果然雨露均沾呀!

http://www.dtcms.com/wzjs/427648.html

相关文章:

  • asp网站没有数据库连接磁力猫最好磁力搜索引擎
  • 做网站怎么优化南京seo按天计费
  • 关于建设网站的书本没广告的视频播放器app
  • 注册一个网站需要多少钱优量汇广告平台
  • 外贸网站建设自媒体人专用网站
  • 有没有免费开网站的seo的基础优化
  • 哪些网站做渣土车租恁关键词批量调词 软件
  • 建设网站找什么问题seo诊断方法步骤
  • 棋盘网站开发seo网站推广主要目的不包括
  • 网站新闻专题怎么做aso苹果关键词优化
  • 免费解析网站制作长沙网
  • 做独立网站app推广引流渠道
  • 代做广联达 的网站厦门seo结算
  • 供应商管理与采购管理aso优化{ }贴吧
  • 广东移动宽带官网站做一个网站要花多少钱
  • 网站建设 资产百度推广账户登录首页
  • 十堰网络科技公司排名seo黑帽技术有哪些
  • 做网站如何推销2000元代理微信朋友圈广告
  • 17网站模板百度快照客服人工电话
  • 杭州科技公司网站建设域名解析
  • 代理公司注册手续百度快照优化推广
  • wordpress收缩企业seo关键词优化
  • 专业网站建设代理seo的重要性
  • 网站建立网站整站排名优化公司
  • 章丘公司做网站营销网站定制公司
  • 叫人做网站后不提供源码互联网搜索引擎
  • 泉州做网站优化哪家好娃哈哈软文推广
  • 素材网站可以做淘宝吗如何在百度推广自己
  • 井陉建设局网站公示游戏广告投放平台
  • 电影网站的设计与实现论文网址怎么创建