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

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

先分析为何要用权重设置

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

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

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

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

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

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

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

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

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

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

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

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

总结

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

相关文章

  • Java创建对象的几种方法

    Java创建对象的几种方法

    这篇文章主要为大家详细介绍了Java创建对象的几种方法,使用new创建、使用object.clone()创建、使用反序列化创建等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 深入理解Java中的final关键字_动力节点Java学院整理

    深入理解Java中的final关键字_动力节点Java学院整理

    Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字以及使用final的好处,具体内容详情通过本文学习吧
    2017-04-04
  • Java设计模式:组合模式

    Java设计模式:组合模式

    这篇文章主要介绍了快速理解Java设计模式中的组合模式,具有一定参考价值,需要的朋友可以了解下,希望能够给你带来帮助
    2021-09-09
  • Matlab及Java实现小时钟效果

    Matlab及Java实现小时钟效果

    这篇文章主要为大家详细介绍了Matlab及Java实现小时钟效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • 详解Jmeter中的BeanShell脚本

    详解Jmeter中的BeanShell脚本

    BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法,所以它和java是可以无缝衔接的,学了Java的一些基本语法后,就可以来在Jmeter中写写BeanShell脚本了
    2021-12-12
  • Spring中的@ConditionalOnProperty注解详解

    Spring中的@ConditionalOnProperty注解详解

    这篇文章主要介绍了Spring中的@ConditionalOnProperty注解详解,常见的@Conditionalxxx开头的注解我们称之为条件注解,常见的条件注解有,简单来讲,一般是在配置类上或者是@Bean修饰的方法上,添加此注解表示一个类是否要被Spring上下文加载,需要的朋友可以参考下
    2024-01-01
  • Spring之IOC详解

    Spring之IOC详解

    本文主要介绍了Spring中的IOC的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • SpringBoot如何使用ApplicationContext获取bean对象

    SpringBoot如何使用ApplicationContext获取bean对象

    这篇文章主要介绍了SpringBoot 如何使用ApplicationContext获取bean对象,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • java Future 接口使用方法详解

    java Future 接口使用方法详解

    这篇文章主要介绍了java Future 接口使用方法详解,Future接口是Java线程Future模式的实现,可以来进行异步计算的相关资料,需要的朋友可以参考下
    2017-03-03
  • MybatisPlus中saveBatch方法的使用

    MybatisPlus中saveBatch方法的使用

    本文介绍了MyBatisPlus中的saveBatch方法的使用及其实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11

最新评论