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

SpringCloud(二)

目录

1.Ribbon负载均衡

1.1负载均衡原理

负载均衡流程

1.2负载均衡策略

1.3懒加载

饥饿加载

总结

2.Nacos注册中心

2.1Nacos快速入门

2.2Nacos服务分级存储模型

Nacos服务分级存储模型

服务跨集群调用问题:

服务集群属性

选择调用userservice时优选选择本地集群部署

根据集群负载均衡

根据权重负载均衡

2.3Nacos环境隔离

Nacos和eureka的区别:

3.Nacaos配置管理

3.1统一配置管理

将配置交给Nacos管理的步骤

3.2配置热更新

总结:

3.3配置共享

服务共享配置

3.4搭建Nacos集群


1.Ribbon负载均衡

1.1负载均衡原理

负载均衡流程

1.2负载均衡策略

Ribbon的负载均衡规则是一个叫做IRule的接口来定义的,每个子接口都是一种规则:

通过定义IRule实现可以修改负载均衡规则,有两种方式:

  • 1.代码方式:zaiorder-service中的OrdewrApplication类中,定义一个新的Irule:
  • 2.配置文件方式:在order-service的application.yml文件中,添加新的配置也可以修改规则

1.3懒加载

饥饿加载

Ribbon默认采用的是懒加载,即第一次访问才会创建LoadBalanceClient,请求时间会很长。

而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过下面配置开启饥饿加载:

总结

2.Nacos注册中心

2.1Nacos快速入门

服务注册到Nacos

1.在cloud-demo父工程中添加spring-cloud-alibaba的管理依赖:

2.注释掉原来erueka的依赖

3.添加nacos的客户端依赖:

4.修改application.yml文件,注释掉eureka地址,添加nacos地址:

2.2Nacos服务分级存储模型

Nacos服务分级存储模型

服务跨集群调用问题:

服务调用尽可能选择本地集群服务,跨集群调用延迟较高

本地集群不可访问时,再去访问其他集群

服务集群属性

1.修改application.yml,添加一下内容:

2.控制台可以看到集群变化:

选择调用userservice时优选选择本地集群部署

根据集群负载均衡

1.修改order-service中的application.yam,设置集群为HZ:

2.然后再order-service中设置负载均衡的IRUle为NacosRule,这个规则会优先寻找与自己同集群的服务:

3.注意将user-service的权重都设置为1

NacosRule负载均衡的策略:

根据权重负载均衡

实际部署会出现这样的场景:

服务器性能有差异,有性能好的,有性能差的,希望好的服务器承担用户更多的请求

Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高

--以前需要对服务器版本升级,就需要重启

总结:

2.3Nacos环境隔离

Nacos中服务存储和数据存储的最外层都是一个名为namespace的东西,用来做最外层隔离

1.再Nacos控制台可以创建namespace用来隔离不同的环境

3.保存后会再控制台看到这个命名空间的id:

4.修改order-service的application.yaml,添加namespace:

要想服务可以访问需要放到相同的环境下

Nacos和eureka的区别:

3.Nacaos配置管理

3.1统一配置管理

配置获取的步骤如下:

1.引入Nacos的配置管理客户端依赖:

2.再userservice中的resource目录添加一个bootstrap.yaml文件,这个文件是引导类文件,优先级高于application.yml:

将配置交给Nacos管理的步骤

3.2配置热更新

Nacos中的配置文件变更后,微服务无需重启就可以感知。不过需要通过下面两种配置实现:

方法一:再@value注入的变量所在类上添加注解@RefreshScope

方式二:使用@ConfigurationProperties注解

总结:

3.3配置共享

多环境共享的一个需求

微服务启动时会从nacos读取多个配置文件:

服务共享配置

3.4搭建Nacos集群

nacos生产环境下一定要部署为集群状态,

  1. 集群搭建步骤:
  2. 搭建MySQL集群并初始化数据库表
  3. 下载nacos
  4. 修改集群配置(节点信息),数据库配置
  5. 分别启动多个nacos节点
  6. nginx反向代理
http://www.xdnf.cn/news/563473.html

相关文章:

  • Unity-编辑器扩展-其二
  • 电子电气架构 --- 细化造车阶段流程
  • 第一性原理(First Principles Thinking)——颠覆性创新的底层逻辑
  • LM-BFF——语言模型微调新范式
  • vscode打开的文件被覆盖/只能打开两个文件(Visual Studio Code)
  • 基于Resnet-34的树叶分类(李沐深度学习基础竞赛)
  • WebRTC与RTSP|RTMP的技术对比:低延迟与稳定性如何决定音视频直播的未来
  • 缓存穿透、缓存击穿、缓存雪崩解决方案
  • NIFI的处理器:JSLTTransformJSON 2.4.0
  • 第19天-Python自动化生成PPT图文教程(基于python-pptx)
  • Python 训练营打卡 Day 31
  • Sign签证绕过
  • MyBatis 关联映射与多表查询实战教程
  • 人工智能在生物医学研究中的创新应用
  • 基于两阶段交互控制框架的互联多能系统协同自治优化
  • JVM 与容器化部署调优实践(Docker + K8s)
  • 如何在Java中处理PDF文档(教程)
  • 【C/C++】探索单例模式:线程安全与性能优化
  • MySQL Host 被封锁解决方案(全版本适用 + Java 后端优化)
  • 制作跨平台AppImage包的方法
  • 基于STM32的智能台灯_自动亮度_久坐提醒仿真设计(Proteus仿真+程序设计+设计报告+讲解视频)
  • SQLMesh 宏操作符详解:@IF 的条件逻辑与高级应用
  • React---day1
  • asp.net web form nlog的安装
  • 9.PostgreSQL初体验
  • Flink SQL 计算实时指标同比的实现方法
  • vue3使用 Tailwind CSS (4.多版本)
  • UML 图的细分类别及其应用
  • virtualbox选项“启用套嵌vt-x/amd-v“不可用
  • 【论文阅读 | CVPR 2024 |RSDet:去除再选择:一种用于 RGB - 红外目标检测的由粗到精融合视角】