本文是基于dubbo2.6.0讲解,每个版本不一样,较新的版本可按照官方配置进行配置,如有疑惑最好自行查看相关源码(本文也记录了查看源码的方式)。
官方提供QOS服务详解和相关配置:http://dubbo.apache.org/zh-cn/docs/user/references/qos.html
dubbo中的QOS服务
拿到dubbo服务ip,通过telnet命令远程连接到你的dubbo服务(中间没有任何认证),然后可通过offline和online命令上下线你所有的服务,这种命令的安全性不言而喻,但是它的初衷是方便开发者治理服务,比如某个服务有严重错误,开发者可以直接下线该服务而不影响其它服务(offline支持正则匹配)。从2.6.4/2.7.0以前,QOS服务的远程连接默认是开启的,最新版的没有这种问题。
解决方法
- 直接关闭QOS整个服务
- 关闭远程连接
官方提供的相关配置命令:
dubbo.application.qosEnable=true
dubbo.application.qosPort=33333
dubbo.application.qosAcceptForeignIp=false
但是由于对于dubbo2.6.0不管怎么设置都没用,后面查看源码发现可以通过下面方式进行配置和关闭服务
//引入qos