简介

  • Dubbo中,QoSQuality of Service)功能是一个非常重要的特性,用于提供对运行时服务的查询和控制能力。
  • QoS的概念源自网络设备中的服务质量保障机制,但在Dubbo中,它被用来实现对服务的动态管理。具体来说,QoS允许用户通过命令行或HTTP接口与Dubbo服务进行交互,以执行诸如查看服务状态、上下线服务等操作。
  • DubboQoS模块基于Netty4实现,并从2.5.8版本开始默认启用。所有的QoS命令都被抽象成一个个具体的指令,当这些指令被执行时,会返回相应的结果。

官方文档

配置参数

qos-enable 是否启动QoS true
qos-port 启动QoS绑定的端口 22222
qos-accept-foreign-ip 是否允许远程访问 false
qos-accept-foreign-ip-whitelist 支持的远端主机ip地址(段) (无)
qos-anonymous-access-permission-level 支持的匿名访问的权限级别 PUBLIC(1)

配置优先级:

系统属性 > dubbo.properties > XML/Spring-boot 自动装配

常用命令

  • help: 显示所有可用命令的帮助信息。
  • ls: 列出服务提供者和服务消费者的状态。
  • online: 将某个服务或所有服务上线,即重新注册到注册中心。
  • offline: 将某个服务或所有服务下线,即从注册中心注销。
  • quit: 退出当前的QoS会话。

这些命令可以通过TelnetHTTP协议访问,默认监听端口为22222(可以通过配置参数qos-port修改)

全部命令

QoS 命令 说明 telnet 用法示例 http 用法示例
cd 设定服务上下文,cd 之后所有的命令都是针对该服务 cd org.demo.DemoService http://localhost:22222/cd?service=org.demo.DemoService
count 展示服务或方法调用次数。暂时只支持 dubbo 协议,不支持 triple 协议;RpcStatus 实现依赖 Active/Limit Filter,需改造 count org.demo.DemoService count org.demo.DemoService methodName http://localhost:22222/count?service=org.demo.DemoService&method=methodName
disableDetailProfiler 关闭 RPC 调用 profiler 工具(细粒度版本) disableDetailProfiler http://localhost:22222/disableDetailProfiler
disableRouterSnapshot 关闭 RPC 请求 Router 路由结果跟踪 disableRouterSnapshot http://localhost:22222/disableRouterSnapshot
disableSimpleProfiler 关闭 RPC 调用 profiler 工具(粗粒度版) disableSimpleProfiler http://localhost:22222/disableSimpleProfiler
enableDetailProfiler 开启 RPC 调用 profiler 工具(细粒度版本) enableDetailProfiler http://localhost:22222/enableDetailProfiler
enableRouterSnapshot 开启 RPC 请求 Router 路由结果跟踪,有助于跟踪路由规则执行是否符合预期 enableRouterSnapshot org.demo.DemoService http://localhost:22222/enableRouterSnapshot?service=org.demo.DemoService
enableSimpleProfiler 开启 RPC 调用 profiler 工具(粗粒度版) enableSimpleProfiler http://localhost:22222/enableSimpleProfiler
getAddress 查看某个服务的有效 ip 地址列表 getAddress org.demo.DemoService http://localhost:22222/getAddress?service=org.demo.DemoService
getConfig dump 当前应用的有效配置 getConfig http://localhost:22222/getConfig
getEnabledRouterSnapshot 查看当前 “启用 Router 路由结果跟踪” 的服务列表 getEnabledRouterSnapshot http://localhost:22222/getEnabledRouterSnapshot
getRecentRouterSnapshot 查看最近 32 条 “Router 路由结果跟踪” 数据 getRecentRouterSnapshot http://localhost:22222/getRecentRouterSnapshot
gracefulShutdown 从注册中心下线当前 ip 实例注册的所有服务,与offline的区别是,该命令会同时通过 tcp 连接告知所有消费方停止调用此实例。如要恢复,请执行 online 上线所有服务 gracefulShutdown http://localhost:22222/gracefulShutdown
help 帮助命令 help http://localhost:22222/help
invoke 调用某个 RPC 服务 invoke org.demo.DemoService.methodName(1234, “abcd”, {“prop”:“value”}) ?
live 检查当前进程/服务是否存活,可配置为 kubernetes liveness live http://localhost:22222/live
loggerInfo 查看当前日志 logger 配置 loggerInfo http://localhost:22222/loggerInfo
ls 查看当前所有服务列表 ls http://localhost:22222/ls
metrics 查看 metrics 指标,需开启metrics 统计才能看到数据。什么粒度? metrics http://localhost:22222/metrics
metrics_default 查看 metrics 指标 ,需开启metrics 统计才能看到数据。什么粒度? metrics_default http://localhost:22222/metrics_default
offline 从注册中心下线某个或多个服务(包含应用级和接口级地址) offline
offline org.demo.DemoService
http://localhost:22222/offline
http://localhost:22222/offline?service=org.demo.DemoService
offlineApp 从注册中心下线某个或多个服务(仅应用级) offlineApp
offlineApp org.demo.DemoService
http://localhost:22222/offlineApp?service=org.demo.DemoService
offlineInterface 从注册中心下线某个或多个服务(仅接口级) offlineInterface
offlineInterface org.demo.DemoService
http://localhost:22222/offlineInterface?service=org.demo.DemoService
online 将一个或多个服务注册到注册中心(包含应用级和接口级地址) online
online org.demo.DemoService
http://localhost:22222/online?service=org.demo.DemoService
onlineApp 将一个或多个服务注册到注册中心(仅应用级) onlineApp
onlineApp org.demo.DemoService
http://localhost:22222/onlineApp?service=org.demo.DemoService
onlineInterface 将一个或多个服务注册到注册中心(仅接口级) onlineInterface
onlineInterface org.demo.DemoService
http://localhost:22222/onlineInterface?service=org.demo.DemoService
ps 查看当前进程信息,包括监听的端口等 ps http://localhost:22222/ps
publishMetadata 发布或更新当前应用Metadata数据(可用于手动更新应用级服务发现元数据)。publishMetadata 10 表示延迟 10s 发布。在3.3.0之前版本的命令为 publish-metadata publishMetadata
publishMetadata 10
http://localhost:22222/publishMetadata
pwd 查看当前服务上下文,与 cd 配合使用 pwd http://localhost:22222/pwd
quit 退出当前 telnet 命令 quit
ready 检查当前进程/服务是否准备就绪对外服务,可配置为 kubernetes readiness ready http://localhost:22222/ready
select 调用方法?和invoke的关系? ? http://localhost:22222/?
serializeCheckStatus 检查当前在序列化白名单中的类列表 serializeCheckStatus http://localhost:22222/serializeCheckStatus
serializeWarnedClasses 检查当前在序列化警告名单中的类列表 serializeWarnedClasses http://localhost:22222/serializeWarnedClasses
setProfilerWarnPercent 控制序列化报警频率(仅限在警告名单中的类) setProfilerWarnPercent 0.75 http://localhost:22222/setProfilerWarnPercent?k=0.75
shutdown 尝试关闭当前 Dubbo 应用(销毁所有资源,重启前无法恢复) shutdown http://localhost:22222/shutdown
startup 检查当前进程/服务是否已经正常启动,可配置为 kubernetes startup startup http://localhost:22222/startup
switchLogLevel 动态调整日志级别 switchLogLevel debug http://localhost:22222/switchLogLevel?k=debug
switchLogger 切换日志logger组件。可用 logger 组件,可通过 loggerInfo 查看(切换前请务必确保应用已经加入相关组件依赖) switchLogger log4j2 http://localhost:22222/switchLogger?k=log4j2
version 查看当前使用的 Dubbo 框架版本 version http://localhost:22222/version

使用场景

优雅停机

在需要重启服务前,可以先将服务下线以避免新的请求被分配到即将停止的服务实例上。这有助于实现优雅停机,减少服务中断对用户体验的影响。

查询服务状态

在生产环境中调试问题时,运维人员可以通过QoS实时获取服务状态,而无需重启服务或修改代码


结束

🎀dubbo QOS介绍及命令的更多相关文章

  1. Dubbo入门介绍---搭建一个最简单的Demo框架

    Dubbo入门---搭建一个最简单的Demo框架 置顶 2017年04月17日 19:10:44 是Guava不是瓜娃 阅读数:320947 标签: dubbozookeeper 更多 个人分类: D ...

  2. 03_Linux介绍、命令

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"软件测试"获取视频和教程资料! b站在线视频 Linu ...

  3. Dubbo详细介绍与安装使用过程

    今天看到一篇不错的dubbo介绍教程,原文链接:http://blog.csdn.net/xlgen157387/article/details/51865289 1 Dubbo介绍 1.1 dubb ...

  4. 关于 ‘--exec’ 参数( find 命令)及介绍 ‘xargs ’命令区别(新版)

    前言: find 命令一直都是系统管理员的常用命令之一, 其参数中 "-exec" 尤其实用.而 "xargs" 命令,针对查询也有属于自己的见解.本文着重讲解 ...

  5. USB系列之七:ASPI介绍及命令测试

    在以前的一篇博文<关于构建DOS下编程平台的总结>中曾经介绍了一种在DOS下驱动U盘的方法,我们大致回顾一下.在config.sys中加入两个驱动程序,就可以驱动U盘:device = a ...

  6. docker简单介绍----Dockerfile命令

    DockerFile的组成部署: 下面优先介绍下Dcokerfile的基础指令 一.CMD指令:容器启动时要莫热门运行的命令,如果有多个CMD指定,最后一个生效 使用方法: CMD ["ex ...

  7. Dubbo 基础介绍

    1.学习背景 随着互联网的发展,越来越多的企业每天处理着上亿级的请求,以及每秒几万的并发操作,对于传统的 JavaWeb 工程师是一个巨大的挑战.然而越来越复杂的业务以及数据库设计使得代码变得非常庞大 ...

  8. dubbo用途介绍

    转自:http://blog.csdn.net/wuliu_forever/article/details/52053928 我们讨论过Nginx+tomcat组成的集群,这已经是非常灵活的集群技术, ...

  9. Dubbo框架介绍与安装 Dubbo 注册中心(Zookeeper-3.4.6)

    背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. • 单一应用架构 • 当网站流量很小时, ...

  10. Dubbo模块介绍

    一.Dubbo 整体框架 Dubbo主要有:Config 配置层.Proxy服务代理层.Registry注册中心层.Cluster 路由层.Monitor监控层.Protocol远程调用层.Excha ...

随机推荐

  1. 1.某道翻译js逆向sign值

    首先找到这个请求接口 这个接口就是我们请求翻译的接口 发现有个sign值,这就是我们需要逆向的值 再看看这个接口的响应 可以发现这个响应是被加密的,我们还需要去逆向解密这个被加密的响应,这篇就单纯讲一 ...

  2. Spring常用注解介绍

    在Spring中,有许多高效的注解,其简化了开发并提高代码可读性,这样我们就不用再去spring.xml文件中写标签了非常方便 创建对象的注解 在Spring,有用于识别不同类型的Bean,使得Spr ...

  3. ORACLE 分页和行限制

    行限制:示例 (此语法从12C版本开始支持) 以下语句返回具有最低employee_id值的 5 名员工: SELECT employee_id, last_name FROM Employees O ...

  4. Nginx的HTTP模块与Stream模块:区别与应用场景

    本文分享自天翼云开发者社区<Nginx的HTTP模块与Stream模块:区别与应用场景>,作者:云海 Nginx是一个多功能的开源Web服务器,它支持多个模块,其中两个重要的模块是HTTP ...

  5. 硬件设计:POE--POE受电设备(PD)电路工作原理

    参考资料:解决POE PD设计挑战的有效的解决方案 POE电源模块的介绍特性和芯片的详细资料概述 如何应对PoE受电设备设计挑战 以太网供电中受电设备的芯片设计与研究 以太网供电检测和分级接口电路设计 ...

  6. RabbitMQ(六)——路由模式

    RabbitMQ系列 RabbitMQ(一)--简介 RabbitMQ(二)--模式类型 RabbitMQ(三)--简单模式 RabbitMQ(四)--工作队列模式 RabbitMQ(五)--发布订阅 ...

  7. 攻城攻心的混淆大师——深入解析第十八届CISCN x 第二届长城杯初赛Reverse赛题vt

    前言 在初赛结束近两月之际,笔者在复盘过程中意外发现了这道当时无人能解的难题.经过两日深入的探索与钻研,笔者终于成功地对这道赛题进行了全面的解构.在品味破译flag所带来的喜悦之余,笔者亦深感此题蕴含 ...

  8. 1 使用ollama完成DeepSeek本地部署

    1 ollama 1.1 什么是ollama ollama是一个开源的 LLM(大型语言模型)服务工具,用于简化在本地运行大语言模型,降低使用大语言模型的门槛,使得大模型的开发者.研究人员和爱好者能够 ...

  9. 使用vscode开发微信小程序

    1. 安装插件 2. 文件-打开文件夹-将新建的微信小程序导入,代码会有高亮的效果 3. 编辑内容,查看效果,如果有就说明插件引入成功.

  10. 【软件开发】Doxygen使用笔记

    [软件开发]Doxygen 使用笔记 Doxygen 是通过代码注释生成文档的事实标准,借用该工具可以将文档内容与代码写在一起方便维护. https://github.com/doxygen/doxy ...