当前位置:网站首页>Nacos分级存储模型-集群配置与NacosRule负载均衡
Nacos分级存储模型-集群配置与NacosRule负载均衡
2022-07-29 12:21:00 【茂桑】
当我们的服务越来越多,服务实例越来越多(比如说userservice,有8081、8082、8083端口三个实例),我们在同一个机房部署所有的服务很不安全,应对突发状况时,就像鸡蛋放在一个篮子里;很不安全,很不友好,所有我们需要分开部署机房与服务器;
一个服务可以分多个集群部署,一个服务器可以部署多个服务(但是一般不会这么做,一般一台服务器就只部署一个服务实例),一个集群可以有多个实例;那我们该如何配置集群呢?
服务启动前,配置好集群属性,再进行启动:
例如:
给userservice配置集群HZ(杭州),启动两个userservice实例:8081、8082,此时这两个实例都部署在HZ集群上
此时,再修改集群名,启动一个userservice3,这个实例就部署在SH(上海)集群上了
可以再Nacos中看到部署的服务实例:
点击“详情”:可以看到集群和部署的实例
总结:
NacosRule负载均衡
以上我们把userservice1(服务提供者)和userservice2(服务提供者)配置在了HZ(杭州)集群,userservice3(服务提供者)配置在了SH(上海)集群。
操作:把orderservice(服务消费者)也部署在HZ集群:
此时我们的orderservice(服务消费者)也配置到HZ集群,再调用userservice(服务提供者)时,还是会使用默认的轮询算法;且不分集群(userservice1、2、3都会轮询调用);
这是很不明智的,因为现实情况中,当我们在杭州的服务orderservice(服务消费者),要去调用上海的远程服务userservice13,肯定会比同一个集群的userservice1、2更加慢,增加了时间损耗,舍近而求远
那我们要怎么去设置让orderservice(服务消费者)设置默认访问和自己在同一个集群上的服务呢?
这就引出了我们的NacosRule负载均衡:
配置NacosRule负载均衡之后,会优先访问同一集群的服务提供者
注意:配置NacosRule之后,请把原来有的Ribbon的负载均衡配置替换、注释或删除,不然Nacos的负载均衡配置无法生效
在orderservice(服务消费者)配置好NacosRule负载均衡之后,会自动调用和自己在同一个集群的服务,也就是userservice1和2,不会调用远程集群的userservice3
在orderservice(服务消费者)调用同一个集群的多个userservice服务实例时,会进行随机访问服务实例;也就是说这里的userservice1和2,会被orderservice随机访问,而3由于不在同一个集群,不会被优先访问。
那如果此时,同一个集群的userservice1、2服务宕机了,orderservice在调用时,本集群没有服务可调时,orderservice会调用不同集群的userservice3吗?
会!但是会有警告:本来访问的HZ集群,但是此时出现了一次跨集群访问,访问了SH集群的userservice3
总结:
Nacos服务实例的权重设置
边栏推荐
- MySQL如何对SQL做prepare预处理(解决IN查询SQL预处理仅能查询出一条记录的问题)
- WPF 截图控件之绘制方框与椭圆(四) 「仿微信」
- Container is changed | deploy MySQL cluster in the Rancher
- AI cocoa AI frontier introduction (7.29)
- WordPress 常规设置
- [Cloud native] Introduction and use of Feign of microservices
- MySQL database installation (detailed)
- sleep()方法和wait()方法的区别?安全
- 金仓数据库 KingbaseES 客户端编程接口指南 - ODBC 驱动使用
- mysql5.7.35安装配置教程【超级详细安装教程】
猜你喜欢
金仓数据库KingbaseES客户端编程接口指南-ODBC(6. KingbaseES ODBC 的扩展属性)
3D Laser SLAM: Interpretation of LeGO-LOAM Papers---Hardware System Part
关于栈迁移的那些事儿
pycharm专业版使用
IO流:节点流和处理流详细归纳。
Codeforces Round # 797 (Div. 3) personal answer key
最简单的共享列表服务器KissLists
IO flow: node flow and process flow summarized in detail.
Container is changed | deploy MySQL cluster in the Rancher
微信H5网页分享只显示链接处理办法
随机推荐
Squarespace 和 WordPress 的区别
Mysql各个大版本之间的区别
influxdb2的使用
【多线程】——Callable创建多线程
The company has a new product, do you want to hire an agent?
Go简单实现协程池
【多线程】——synchronized关键字
WordPress 重置密码
RedisTemplate使用详解
【多线程】——深入理解线程中断方式(interrupt)
容器化 | 在 Rancher 中部署 MySQL 集群
[Cloud native] Introduction and use of Feign of microservices
QCon Guangzhou Station is here!Exclusive custom backpacks are waiting for you!
TiCDC synchronization delay problem
PD 源码分析- Checker: region 健康卫士
Based article 】 【 learn with Rust | Rust function and process control, rounding
MySQL 视图(详解)
The meaning of "last in first out" in stack and "first in first out" in queue
MySQL常用的日期时间函数
PHP uedtior报错 errorHandler is not defined