Nacos服务实例的权重设置方式(以及设置为0时的作用与场景)

 更新时间:2024年07月31日 09:14:14   作者:其然乐衣  
这篇文章主要介绍了Nacos服务实例的权重设置方式(以及设置为0时的作用与场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

先分析为何要用权重设置

Nacos有同集群优先访问的负载均衡,不过呢,我们部署的时候啊,可能会存在这么一种情况,因为企业里服务器设备啊,会更新迭代,有一些机器呢,性能比较好,还有一些属于是祖传设备了,性能非常的差,可以说是老弱病残,这个时候呢,我们肯定是希望这些性能好的机器,它承担更多的用户请求,而那些性能差一点的,自然是承担少一点的请求,正所谓能者多劳嘛。

但是我们目前看来,NacosRule做到的是集群优先,而后做随机,当用户请求来了以后,它可不管你是性格好的还是差,这个身强力壮的还是老弱病残拉过来就一顿造,那这个时候那些性能差的肯定就会出问题。

那么我们该怎样去控制不同服务它的一个请求量呢?

哎,Nacos,给我们提供了一个权重的配置,通过修改服务实力的权重,可以控制访问频率,权重越大,访问到的频率就越高,那我们就可以把性能好的机器全都设得大一点,性能差一些呢,设置的小一点。

权重设置为0时,该实例就不会被访问了,也就是说权重调整0时,它压根儿就不会被访问。

设置权重为0有什么作用?

我们以前一个服务,我们想要对它做一个版本的升级,我们该怎么办?

我们是不是要把它重启啊,但是你光天化日之下,你去重启个服务器,是不好的,因为用户都还在访问,你一重启别人就反应不了“哎,你这服务怎么挂了?”,就有问题了!对不对,所以说呢,我们是不能随便重启的。

往往呀,每次版本升级都是搞得跟那个什么谍战片一样,要找一个月黑风高无人之夜是吧,然后等用户都下线儿了,我们偷偷的把服务停机,然后呢,去做版本的一个升级。

但是你想看,如果现在有了这个权重,我可不可以这么做?我有多个服务器,8081、8082、8083各自部署,我先将8081这个服务的权重调成零。

然后呢,大白天也没事儿啊,这个时候呢,渐渐的8081就不承担用户请求了,那这个时候我对它做停机,用户就不会有感知了,那么这个时候对8081停机完了以后,就可以去做一些这个版本的升级,升级完成以后我再重启,我给它权重先不着急调太大,先调小一点,调到零点多,0.01什么之类的,这个时候呢,我们放出少数用户进来做个测试,看看行不行,如果没什么问题,我们就可以逐渐扩大比例,一次升级,这个时候用户是无感知的,你可以做到平滑升级。

非常优雅,那么这样呢,这种升级方式啊,其实就是比较比较顺滑这种方式了,你就不用去大半夜去加班的去搞了。所以呢,这是我们这个权重的一些作用。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 在IntelliJ IDEA中多线程并发代码的调试方法详解

    在IntelliJ IDEA中多线程并发代码的调试方法详解

    这篇文章主要介绍了在IntelliJ IDEA中多线程并发代码的调试方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • java如何动态执行while循环

    java如何动态执行while循环

    这篇文章主要介绍了java如何动态执行while循环问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • springBoot自动配置的全过程

    springBoot自动配置的全过程

    这篇文章主要介绍了springBoot自动配置的全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • SpringBoot Web开发中的异常处理自动配置原理解析

    SpringBoot Web开发中的异常处理自动配置原理解析

    本文给大家介绍SpringBoot Web开发中的异常处理自动配置原理解析,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2025-10-10
  • Springboot项目中实现微信小程序登录案例(最新推荐)

    Springboot项目中实现微信小程序登录案例(最新推荐)

    文章介绍了如何通过微信开放平台的授权登录功能实现Spring Boot项目与微信小程序的微信登录,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-02-02
  • Java使用BigDecimal解决精度丢失问题

    Java使用BigDecimal解决精度丢失问题

    本文详细解释了浮点型数据因二进制和十进制不兼容而导致的精度丢失问题,并指出BigDecimal是解决该问题的有效方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2026-04-04
  • SpringBoot 返回Json实体类属性大小写的解决

    SpringBoot 返回Json实体类属性大小写的解决

    这篇文章主要介绍了SpringBoot 返回Json实体类属性大小写的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • java 随机生成6位短信验证码实例代码

    java 随机生成6位短信验证码实例代码

    这篇文章主要介绍了java 随机生成6位短信验证码的实例代码,文中给大家扩展介绍了java随机生成四位数字验证码的方法,需要的朋友可以参考下
    2019-12-12
  • Java数组模拟优先级队列数据结构的实例

    Java数组模拟优先级队列数据结构的实例

    这篇文章主要介绍了Java数组模拟优先级队列数据结构的实例,优先级队列中的元素会被设置优先权,本文的例子借助了Java中的TreeSet和TreeMap,需要的朋友可以参考下
    2016-04-04
  • Java 线程的优先级(setPriority)案例详解

    Java 线程的优先级(setPriority)案例详解

    这篇文章主要介绍了Java 线程的优先级(setPriority)案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08

最新评论