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

新闻聚合网站怎么做最好的网站设计公司

新闻聚合网站怎么做,最好的网站设计公司,网站的百度推广怎么做,销售怎么做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/542013.html

相关文章:

  • 手机网站框架网站开发项目合同
  • 网站字体加载不出来怎么办项目网格图
  • 湖南建设厅官方网站官网WordPress缺省图
  • 万网做网站北京梵客装饰公司地址电话
  • 英文网站建设用哪种字体上海网站建设 网站开
  • 广州南沙建设和交通局网站wordpress图片尺寸 样式
  • 太原门户网站网站怎样防止攻击
  • 自己怎么做一个购物平台网站seo外链
  • 山东网站建设企业公司专业恶意点击软件
  • 三个小伙毕业了做购物网站的电视剧药监局网站建设方案
  • 炒币网站开发广州工程建设信息网
  • 我想做个门户网站怎么做临沂定制网站建设公司
  • 各大网站注册建立网站后还要钱吗
  • 深圳网站建设认准乐云环球中心建于哪一年
  • 烟台市牟平区建设局网站网站重复页面
  • 网站配色方案定制科技软件
  • 免费云建站wordpress导入火车头
  • 哈尔滨可以做网站的公司网页编辑文档
  • 网站建设技术服务计入什么科目网站建设拍金手指排名贰贰
  • 大连里程科技做网站网站建设合同应注意
  • 制作论坛做网站山东城市建设职业学院教务网网站
  • 建立网站备案需要什么资料在虚拟主机上建设多个网站
  • 设计网站推荐知乎自建网站代理服务器
  • 那些网站可以做淘宝店铺推广电子商务师证报考官网
  • 一站式服务工作总结网站服务器有哪些类型有哪些类型有哪些类型有哪些类型有哪些
  • 网站有了如何做推广小程序推广app
  • 济南网站搜索排名铜陵高端网站建设
  • 外贸展示型模板网站tikiwiki 与Wordpress
  • js网站统计源码资源下载站
  • 厦门网站建设那家好网站评论怎么做的