🎀dubbo QOS介绍及命令

简介
- 在
Dubbo中,QoS(Quality of Service)功能是一个非常重要的特性,用于提供对运行时服务的查询和控制能力。 QoS的概念源自网络设备中的服务质量保障机制,但在Dubbo中,它被用来实现对服务的动态管理。具体来说,QoS允许用户通过命令行或HTTP接口与Dubbo服务进行交互,以执行诸如查看服务状态、上下线服务等操作。Dubbo的QoS模块基于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会话。
这些命令可以通过
Telnet或HTTP协议访问,默认监听端口为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介绍及命令的更多相关文章
- Dubbo入门介绍---搭建一个最简单的Demo框架
Dubbo入门---搭建一个最简单的Demo框架 置顶 2017年04月17日 19:10:44 是Guava不是瓜娃 阅读数:320947 标签: dubbozookeeper 更多 个人分类: D ...
- 03_Linux介绍、命令
学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"软件测试"获取视频和教程资料! b站在线视频 Linu ...
- Dubbo详细介绍与安装使用过程
今天看到一篇不错的dubbo介绍教程,原文链接:http://blog.csdn.net/xlgen157387/article/details/51865289 1 Dubbo介绍 1.1 dubb ...
- 关于 ‘--exec’ 参数( find 命令)及介绍 ‘xargs ’命令区别(新版)
前言: find 命令一直都是系统管理员的常用命令之一, 其参数中 "-exec" 尤其实用.而 "xargs" 命令,针对查询也有属于自己的见解.本文着重讲解 ...
- USB系列之七:ASPI介绍及命令测试
在以前的一篇博文<关于构建DOS下编程平台的总结>中曾经介绍了一种在DOS下驱动U盘的方法,我们大致回顾一下.在config.sys中加入两个驱动程序,就可以驱动U盘:device = a ...
- docker简单介绍----Dockerfile命令
DockerFile的组成部署: 下面优先介绍下Dcokerfile的基础指令 一.CMD指令:容器启动时要莫热门运行的命令,如果有多个CMD指定,最后一个生效 使用方法: CMD ["ex ...
- Dubbo 基础介绍
1.学习背景 随着互联网的发展,越来越多的企业每天处理着上亿级的请求,以及每秒几万的并发操作,对于传统的 JavaWeb 工程师是一个巨大的挑战.然而越来越复杂的业务以及数据库设计使得代码变得非常庞大 ...
- dubbo用途介绍
转自:http://blog.csdn.net/wuliu_forever/article/details/52053928 我们讨论过Nginx+tomcat组成的集群,这已经是非常灵活的集群技术, ...
- Dubbo框架介绍与安装 Dubbo 注册中心(Zookeeper-3.4.6)
背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. • 单一应用架构 • 当网站流量很小时, ...
- Dubbo模块介绍
一.Dubbo 整体框架 Dubbo主要有:Config 配置层.Proxy服务代理层.Registry注册中心层.Cluster 路由层.Monitor监控层.Protocol远程调用层.Excha ...
随机推荐
- python包学习:-了解
本节先做一些了解. numpy 参考:NumPy使用 NumPy 教程 NumPy是Python中科学计算的基础包.它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于 ...
- Linux基础:用户与用户组
- Maven:目前的部分技术
- 两种方式让你用Python轻松在RDKX5上部署推理
作者:SkyXZ CSDN:SkyXZ--CSDN博客 博客园:SkyXZ - 博客园 宿主机环境:WSL2-Ubuntu22.04+Cuda12.6.D-Robotics-OE 1.2.8.Ubun ...
- 玩转云端 | 拥有HBlock这项“存储盘活绝技”,数据中心也能“热辣瘦身”!
夏天马上就要到了,"瘦身"不光是特定人群的需求,也是数据中心的需求.构建轻量化.低碳化.高性价比的新型数据中心,更有效地支撑经济社会数字化转型,已成为业界主流趋势. 如何让数据中心 ...
- Luogu P11363 NOIP2024 树的遍历 题解 [ 紫 ] [ 树形 dp ] [ 组合计数 ] [ adhoc ]
树上遍历:CCF 难得一遇的好题! 参考了洛谷的第一篇题解,所以思路会有点相似. 部分分 当 \(k=1\) 时,显然方案总数为 \(\prod_{i=1}^{n}(d_i-1)!\),因为进入一个子 ...
- mysql之我的第一个jdbc程序
package com.yeyue.lesson01; import java.sql.*; public class jdbcFirstDemo { public static void main( ...
- 面试必备!HR面常问的20个问题及高分回答秘诀
HR面试一般会花大约20分钟,主要会问一些个人情况.处理事情的方法.工作经验.成长经历等相关问题. 当你到了HR面,基本上就代表你的面试已经通过了一大半了.不过,还是不要掉以轻心,HR面还是有可能会挂 ...
- [AHOI2013] 差异 题解
后缀自动机维护子串公共后缀方便一点,所以直接倒序插入字符串即可. 我们给所有前缀打上标记,然后跑树形 \(dp\),设 \(sum_i\) 表示第 \(i\) 个点的子树内有多少个前缀,\(ans\) ...
- nginx 强制https
nginx 强制https 通常有如下两种方法强制https推荐第二种,第二种更高效1.使用nginx的rewrite方法 server { listen 80; server_name xxx. ...