| <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Dubbo – QOS Operation Manual</title><link>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/</link><description>Recent content in QOS Operation Manual on Apache Dubbo</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/index.xml" rel="self" type="application/rss+xml"/><item><title>Docs3-V2: QOS Overview</title><link>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/overview/</guid><description> |
| <h2 id="description-of-related-parameters">Description of related parameters</h2> |
| <p>QoS provides some startup parameters to configure startup, they mainly include:</p> |
| <table> |
| <thead> |
| <tr> |
| <th>Parameters</th> |
| <th>Description</th> |
| <th>Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>qos-enable</td> |
| <td>Whether to enable QoS</td> |
| <td>true</td> |
| </tr> |
| <tr> |
| <td>qos-port</td> |
| <td>Enable QoS binding port</td> |
| <td>22222</td> |
| </tr> |
| <tr> |
| <td>qos-accept-foreign-ip</td> |
| <td>Whether to allow remote access</td> |
| <td>false</td> |
| </tr> |
| <tr> |
| <td>qos-accept-foreign-ip-whitelist</td> |
| <td>Supported remote host ip address (segment)</td> |
| <td>(none)</td> |
| </tr> |
| <tr> |
| <td>qos-anonymous-access-permission-level</td> |
| <td>Permission level for anonymous access supported</td> |
| <td>PUBLIC(1)</td> |
| </tr> |
| </tbody> |
| </table> |
| <blockquote> |
| <p>Note, starting from 2.6.4/2.7.0, the default configuration of qos-accept-foreign-ip is changed to false. If qos-accept-foreign-ip is set to true, it may bring security risks, please evaluate carefully Open.</p> |
| </blockquote> |
| <h2 id="qos-parameter-configuration">QoS parameter configuration</h2> |
| <ul> |
| <li>system properties</li> |
| <li>dubbo.properties</li> |
| <li>XML method</li> |
| <li>Spring-boot automatic assembly method</li> |
| </ul> |
| <p>Among them, the priority order of the above methods is system properties &gt; dubbo.properties &gt; XML/Spring-boot automatic assembly method.</p> |
| <h2 id="port">port</h2> |
| <p>The port of the new version of telnet is different from the port of the dubbo protocol, the default is <code>22222</code></p> |
| <p>It can be modified through the configuration file <code>dubbo.properties</code>:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo.application.qos-port=33333 |
| </span></span></code></pre></div><p>or |
| You can set the JVM parameter:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>-Ddubbo.application.qos-port=33333 |
| </span></span></code></pre></div><h2 id="safety">Safety</h2> |
| <p>By default, dubbo accepts commands initiated by any host</p> |
| <p>It can be modified through the configuration file <code>dubbo.properties</code>:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo.application.qos-accept-foreign-ip=false |
| </span></span></code></pre></div><p>or</p> |
| <p>You can set the JVM parameter:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>-Ddubbo.application.qos-accept-foreign-ip=false |
| </span></span></code></pre></div><p>Reject commands issued by the remote host, and only allow the service to execute locally.</p> |
| <p>At the same time, you can specify the supported remote host ip addresses (segments) by setting <code>qos-accept-foreign-ip-whitelist</code>, and separate multiple ip addresses (segments) with <strong>comma</strong>, such as:</p> |
| <blockquote> |
| <p>Configuration file <code>dubbo.properties</code></p> |
| </blockquote> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo.application.qos-accept-foreign-ip-whitelist=123.12.10.13, 132.12.10.13/24 |
| </span></span></code></pre></div><blockquote> |
| <p>Set JVM parameters:</p> |
| </blockquote> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>-Ddubbo.application.qos-accept-foreign-ip-whitelist=123.12.10.13,132.12.10.13/24 |
| </span></span></code></pre></div><h2 id="permissions">Permissions</h2> |
| <p>In order to support the life cycle probe by default, QoS provides the ability to access anonymously and set the permission level. The currently supported permission levels are:</p> |
| <ul> |
| <li>PUBLIC(1) |
| By default, the command permission level of anonymous access is supported. Currently, only commands related to lifecycle probes are supported.</li> |
| <li>PROTECTED(2) |
| command default privilege level</li> |
| <li>PRIVATE(3) |
| The highest privilege level reserved, currently unsupported</li> |
| <li>NONE |
| The lowest privilege level, i.e. anonymous access is not supported</li> |
| </ul> |
| <blockquote> |
| <p>Privilege level <code>PRIVATE</code>&gt; <code>PROTECTED</code>&gt; <code>PUBLIC</code>&gt; <code>NONE</code>, high-level permissions can access commands of the same level and low-level permissions. |
| Currently the permissions of the following commands are <code>PUBLIC</code>, and the default permissions of other commands are <code>PROTECTED</code>.</p> |
| </blockquote> |
| <table> |
| <thead> |
| <tr> |
| <th>command</th> |
| <th>privilege level</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>Live</td> |
| <td>PUBLIC (1)</td> |
| </tr> |
| <tr> |
| <td>Startup</td> |
| <td>PUBLIC (1)</td> |
| </tr> |
| <tr> |
| <td>Ready</td> |
| <td>PUBLIC (1)</td> |
| </tr> |
| <tr> |
| <td>Quit</td> |
| <td>PUBLIC (1)</td> |
| </tr> |
| </tbody> |
| </table> |
| <p>By default, dubbo allows anonymous hosts to initiate anonymous access, only commands with <code>PUBLIC</code> permission level can be executed, and other commands with higher permissions will be rejected.</p> |
| <p><strong>Turn off anonymous access</strong> |
| Anonymous access can be turned off by setting <code>qos-anonymous-access-permission-level=NONE</code>.</p> |
| <p><strong>SET PERMISSION LEVEL</strong> |
| It can be modified through the configuration file <code>dubbo.properties</code>:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo.application.qos-anonymous-access-permission-level=PROTECTED |
| </span></span></code></pre></div><p>or<br> |
| You can set the JVM parameter:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>-Ddubbo.application.qos-anonymous-access-permission-level=PROTECTED |
| </span></span></code></pre></div><p>to allow anonymous access to higher-level privileged commands.</p> |
| <h2 id="agreement">agreement</h2> |
| <h3 id="telnet-and-http-protocols">telnet and http protocols</h3> |
| <p>The telnet module now supports both the http protocol and the telnet protocol, which is convenient for use in various situations |
| Example:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>➜ ~ telnet localhost 22222 |
| </span></span><span style="display:flex;"><span>Trying ::1... |
| </span></span><span style="display:flex;"><span>telnet: connect to address ::1: Connection refused |
| </span></span><span style="display:flex;"><span>Trying 127.0.0.1... |
| </span></span><span style="display:flex;"><span>Connected to localhost. |
| </span></span><span style="display:flex;"><span>Escape character is &#39;^]&#39;. |
| </span></span><span style="display:flex;"><span> ████████▄ ███ █▄ ▀█████████▄ ▀█████████▄ ▄██████▄ |
| </span></span><span style="display:flex;"><span> ███ ▀███ ███ ███ ███ ███ ███ ███ ███ ███ |
| </span></span><span style="display:flex;"><span> ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ |
| </span></span><span style="display:flex;"><span> ███ ███ ███ ███ ▄███▄▄▄██▀ ▄███▄▄▄██▀ ███ ███ |
| </span></span><span style="display:flex;"><span> ███ ███ ███ ███ ▀▀███▀▀▀██▄ ▀▀███▀▀▀██▄ ███ ███ |
| </span></span><span style="display:flex;"><span> ███ ███ ███ ███ ███ ██▄ ███ ██▄ ███ ███ |
| </span></span><span style="display:flex;"><span> ███ ▄███ ███ ███ ███ ███ ███ ███ ███ ███ |
| </span></span><span style="display:flex;"><span> ████████▀ ████████▀ ▄█████████▀ ▄█████████▀ ▀██████▀ |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt;ls |
| </span></span><span style="display:flex;"><span>As Provider side: |
| </span></span><span style="display:flex;"><span>+----------------------------------+---+ |
| </span></span><span style="display:flex;"><span>| Provider Service Name |PUB| |
| </span></span><span style="display:flex;"><span>+----------------------------------+---+ |
| </span></span><span style="display:flex;"><span>|org.apache.dubbo.demo.DemoService|N| |
| </span></span><span style="display:flex;"><span>+----------------------------------+---+ |
| </span></span><span style="display:flex;"><span>As Consumer side: |
| </span></span><span style="display:flex;"><span>+---------------------+---+ |
| </span></span><span style="display:flex;"><span>|Consumer Service Name|NUM| |
| </span></span><span style="display:flex;"><span>+---------------------+---+ |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>➜ ~ curl &#34;localhost:22222/ls?arg1=xxx&amp;arg2=xxxx&#34; |
| </span></span><span style="display:flex;"><span>As Provider side: |
| </span></span><span style="display:flex;"><span>+----------------------------------+---+ |
| </span></span><span style="display:flex;"><span>| Provider Service Name |PUB| |
| </span></span><span style="display:flex;"><span>+----------------------------------+---+ |
| </span></span><span style="display:flex;"><span>|org.apache.dubbo.demo.DemoService|N| |
| </span></span><span style="display:flex;"><span>+----------------------------------+---+ |
| </span></span><span style="display:flex;"><span>As Consumer side: |
| </span></span><span style="display:flex;"><span>+---------------------+---+ |
| </span></span><span style="display:flex;"><span>|Consumer Service Name|NUM| |
| </span></span><span style="display:flex;"><span>+---------------------+---+ |
| </span></span></code></pre></div><h2 id="use-configuration">Use configuration</h2> |
| <h3 id="use-system-properties-to-configure">Use system properties to configure</h3> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>-Ddubbo.application.qos-enable=true |
| </span></span><span style="display:flex;"><span>-Ddubbo.application.qos-port=33333 |
| </span></span><span style="display:flex;"><span>-Ddubbo.application.qos-accept-foreign-ip=false |
| </span></span><span style="display:flex;"><span>-Ddubbo.application.qos-accept-foreign-ip-whitelist=123.12.10.13,132.12.10.13/24 |
| </span></span><span style="display:flex;"><span>-Ddubbo.application.qos-anonymous-access-permission-level=PUBLIC |
| </span></span></code></pre></div><h3 id="use-dubboproperties-file-configuration">Use dubbo.properties file configuration</h3> |
| <p>Add the dubbo.properties file in the <code>src/main/resources</code> directory of the project, the content is as follows:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo.application.qos-enable=true |
| </span></span><span style="display:flex;"><span>dubbo.application.qos-port=33333 |
| </span></span><span style="display:flex;"><span>dubbo.application.qos-accept-foreign-ip=false |
| </span></span><span style="display:flex;"><span>dubbo.application.qos-accept-foreign-ip-whitelist=123.12.10.13, 132.12.10.13/24 |
| </span></span><span style="display:flex;"><span>dubbo.application.qos-anonymous-access-permission-level=PUBLIC |
| </span></span></code></pre></div><h3 id="use-the-xml-method-to-configure">Use the XML method to configure</h3> |
| <p>If you want to configure the QoS-related parameters of the response through XML, you can configure them as follows:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#719e07">&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt;</span> |
| </span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;beans</span> xmlns=<span style="color:#2aa198">&#34;http://www.springframework.org/schema/beans&#34;</span> |
| </span></span><span style="display:flex;"><span> xmlns:xsi=<span style="color:#2aa198">&#34;http://www.w3.org/2001/XMLSchema-instance&#34;</span> |
| </span></span><span style="display:flex;"><span> xmlns:dubbo=<span style="color:#2aa198">&#34;http://dubbo.apache.org/schema/dubbo&#34;</span> |
| </span></span><span style="display:flex;"><span> xsi:schemaLocation=<span style="color:#2aa198">&#34;http://www.springframework.org/schema/beans |
| </span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> http://www.springframework.org/schema/beans/spring-beans.xsd |
| </span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd&#34;</span><span style="color:#268bd2">&gt;</span> |
| </span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:application</span> name=<span style="color:#2aa198">&#34;demo-provider&#34;</span><span style="color:#268bd2">&gt;</span> |
| </span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:parameter</span> key=<span style="color:#2aa198">&#34;qos-enable&#34;</span> value=<span style="color:#2aa198">&#34;true&#34;</span><span style="color:#268bd2">/&gt;</span> |
| </span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:parameter</span> key=<span style="color:#2aa198">&#34;qos-accept-foreign-ip&#34;</span> value=<span style="color:#2aa198">&#34;false&#34;</span><span style="color:#268bd2">/&gt;</span> |
| </span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:parameter</span> key=<span style="color:#2aa198">&#34;qos-accept-foreign-ip-whitelist&#34;</span> value=<span style="color:#2aa198">&#34;123.12.10.13,132.12.10.13/24&#34;</span><span style="color:#268bd2">/&gt;</span> |
| </span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:parameter</span> key=<span style="color:#2aa198">&#34;qos-anonymous-access-permission-level&#34;</span> value=<span style="color:#2aa198">&#34;NONE&#34;</span><span style="color:#268bd2">/&gt;</span> |
| </span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:parameter</span> key=<span style="color:#2aa198">&#34;qos-port&#34;</span> value=<span style="color:#2aa198">&#34;33333&#34;</span><span style="color:#268bd2">/&gt;</span> |
| </span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;/dubbo:application&gt;</span> |
| </span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:registry</span> address=<span style="color:#2aa198">&#34;multicast://224.5.6.7:1234&#34;</span><span style="color:#268bd2">/&gt;</span> |
| </span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:protocol</span> name=<span style="color:#2aa198">&#34;dubbo&#34;</span> port=<span style="color:#2aa198">&#34;20880&#34;</span><span style="color:#268bd2">/&gt;</span> |
| </span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:service</span> interface=<span style="color:#2aa198">&#34;org.apache.dubbo.demo.provider.DemoService&#34;</span> ref=<span style="color:#2aa198">&#34;demoService&#34;</span><span style="color:#268bd2">/&gt;</span> |
| </span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;bean</span> id=<span style="color:#2aa198">&#34;demoService&#34;</span> class=<span style="color:#2aa198">&#34;org.apache.dubbo.demo.provider.DemoServiceImpl&#34;</span><span style="color:#268bd2">/&gt;</span> |
| </span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;/beans&gt;</span> |
| </span></span></code></pre></div><h3 id="use-spring-boot-automatic-assembly-configuration">Use spring-boot automatic assembly configuration</h3> |
| <p>If it is a spring-boot application, it can be configured on <code>application.properties</code> or <code>application.yml</code>:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo.application.qos-enable=true |
| </span></span><span style="display:flex;"><span>dubbo.application.qos-port=33333 |
| </span></span><span style="display:flex;"><span>dubbo.application.qos-accept-foreign-ip=false |
| </span></span><span style="display:flex;"><span>dubbo.application.qos-accept-foreign-ip-whitelist=123.12.10.13, 132.12.10.13/24 |
| </span></span><span style="display:flex;"><span>dubbo.application.qos-anonymous-access-permission-level=NONE |
| </span></span></code></pre></div></description></item><item><title>Docs3-V2: Basic Command Manual</title><link>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/command/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/command/</guid><description> |
| <h2 id="help-command">help command</h2> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>// list all commands |
| </span></span><span style="display:flex;"><span>dubbo&gt;help |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>//List the specific usage of a single command |
| </span></span><span style="display:flex;"><span>dubbo&gt;help online |
| </span></span><span style="display:flex;"><span>+--------------+---------------------------------- ------------------------------------------------+ |
| </span></span><span style="display:flex;"><span>| COMMAND NAME | online | |
| </span></span><span style="display:flex;"><span>+--------------+---------------------------------- ------------------------------------------------+ |
| </span></span><span style="display:flex;"><span>| EXAMPLE | online dubbo | |
| </span></span><span style="display:flex;"><span>| | online xx.xx.xxx.service | |
| </span></span><span style="display:flex;"><span>+--------------+---------------------------------- ------------------------------------------------+ |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><h2 id="version-command">version command</h2> |
| <p>Display the version number of the currently running Dubbo</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;version |
| </span></span><span style="display:flex;"><span>dubbo version &#34;3.0.10-SNAPSHOT&#34; |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><h2 id="quit-command">quit command</h2> |
| <p>exit command state</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;quit |
| </span></span><span style="display:flex;"><span>BYE! |
| </span></span><span style="display:flex;"><span>Connection closed by foreign host. |
| </span></span></code></pre></div></description></item><item><title>Docs3-V2: Service Management Commands</title><link>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/service-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/service-management/</guid><description> |
| <h2 id="ls-command">ls command</h2> |
| <p>List consumers and providers</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;ls |
| </span></span><span style="display:flex;"><span>As Provider side: |
| </span></span><span style="display:flex;"><span>+------------------------------------------------- -----------------------+---------------------+ |
| </span></span><span style="display:flex;"><span>| Provider Service Name | PUB | |
| </span></span><span style="display:flex;"><span>+------------------------------------------------- -----------------------+---------------------+ |
| </span></span><span style="display:flex;"><span>|DubboInternal - UserRead/org.apache.dubbo.metadata.MetadataService:1.0.0| | |
| </span></span><span style="display:flex;"><span>+------------------------------------------------- -----------------------+---------------------+ |
| </span></span><span style="display:flex;"><span>| com.dubbo.dubbointegration.UserReadService |nacos-A(Y)/nacos-I(Y)| |
| </span></span><span style="display:flex;"><span>+------------------------------------------------- -----------------------+---------------------+ |
| </span></span><span style="display:flex;"><span>As Consumer side: |
| </span></span><span style="display:flex;"><span>+-----------------------------------------+------- ----------+ |
| </span></span><span style="display:flex;"><span>| Consumer Service Name | NUM | |
| </span></span><span style="display:flex;"><span>+-----------------------------------------+------- ----------+ |
| </span></span><span style="display:flex;"><span>|com.dubbo.dubbointegration.BackendService|nacos-AF(I-2,A-2)| |
| </span></span><span style="display:flex;"><span>+-----------------------------------------+------- ----------+ |
| </span></span></code></pre></div><p>List the services provided and consumed by dubbo, as well as the number of service addresses consumed.</p> |
| <p>Note:</p> |
| <ul> |
| <li>Services prefixed with <code>DubboInternal</code> are built-in services of Dubbo, and are not registered with the registry by default.</li> |
| <li>The first part of <code>nacos-A(Y)</code> in the service publishing status is the corresponding registry name, and the second part is the registration mode (<code>A</code> stands for application-level address registration, <code>I</code> stands for interface-level address registration), The third part represents whether the corresponding mode has been registered</li> |
| <li>The first part of <code>nacos-AF(I-2,A-2)</code> in the service subscription status is the corresponding registration center name, and the second part is the subscription mode (<code>AF</code> stands for dual subscription mode, <code>FA</code> stands for only Application-level subscription, <code>FI</code> stands for interface-level subscription only), the first half of the third part represents the source of the address mode (<code>A</code> stands for application-level address, <code>I</code> stands for interface-level address), and the second half represents the corresponding number of addresses</li> |
| </ul> |
| <h2 id="online">online</h2> |
| <h3 id="online-commands">online commands</h3> |
| <p>Online online service command</p> |
| <p>When using the delayed release function (by setting org.apache.dubbo.config.AbstractServiceConfig#register to false), when you need to go online later, you can use the Online command</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>//Online all services |
| </span></span><span style="display:flex;"><span>dubbo&gt;online |
| </span></span><span style="display:flex;"><span>OK |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>//According to the rules, launch some services |
| </span></span><span style="display:flex;"><span>dubbo&gt;online com.* |
| </span></span><span style="display:flex;"><span>OK |
| </span></span></code></pre></div><h2 id="log-off">log off</h2> |
| <h3 id="offline-command">offline command</h3> |
| <p>Offline service command</p> |
| <p>Due to failure and other reasons, it is necessary to temporarily go offline to maintain the site, and you can use the Offline offline command.</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>//Offline all services |
| </span></span><span style="display:flex;"><span>dubbo&gt;offline |
| </span></span><span style="display:flex;"><span>OK |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>//According to the rules, some services are offline |
| </span></span><span style="display:flex;"><span>dubbo&gt;offline com.* |
| </span></span><span style="display:flex;"><span>OK |
| </span></span></code></pre></div></description></item><item><title>Docs3-V2: Frame State Command</title><link>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/probe/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/probe/</guid><description> |
| <p>Reference document: <a href="../../../advanced-features-and-usage/others/dubbo-kubernetes-probe/">Kubernetes Lifecycle Probe</a></p> |
| <h2 id="startup-command">startup command</h2> |
| <p>Check if the current framework has been started</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;startup |
| </span></span><span style="display:flex;"><span>true |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><h2 id="ready-command">ready command</h2> |
| <p>Detect whether the current framework can provide services normally (may be temporarily offline)</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;ready |
| </span></span><span style="display:flex;"><span>true |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><h2 id="live-command">live command</h2> |
| <p>Check if the current framework is running normally (possibly a permanent exception)</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;live |
| </span></span><span style="display:flex;"><span>true |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div></description></item><item><title>Docs3-V2: Logging framework runtime management</title><link>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/logger-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/logger-management/</guid><description> |
| <h2 id="logging-framework-runtime-management">Logging framework runtime management</h2> |
| <p>Starting from <code>3.0.10</code>, dubbo-qos runtime control supports querying log configuration and dynamically modifying the used log framework and log level.</p> |
| <p>Note: The log configuration modified by dubbo-qos is not stored persistently and will become invalid after the application is restarted.</p> |
| <h3 id="1-query-log-configuration">1. Query log configuration</h3> |
| <p>Command: <code>loggerInfo</code></p> |
| <p>Example:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>&gt; telnet 127.0.0.1 <span style="color:#2aa198">22222</span> |
| </span></span><span style="display:flex;"><span>&gt; loggerInfo |
| </span></span></code></pre></div><p>output:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>Trying 127.0.0.1... |
| </span></span><span style="display:flex;"><span>Connected to localhost. |
| </span></span><span style="display:flex;"><span>Escape character is &#39;^]&#39;. |
| </span></span><span style="display:flex;"><span> ___ __ __ ___ ___ ____ |
| </span></span><span style="display:flex;"><span> / _ \ / / / // _ ) / _ ) / __ \ |
| </span></span><span style="display:flex;"><span> / // // /_/ // _ |/ _ |/ /_/ / |
| </span></span><span style="display:flex;"><span>/____/ \____//____//____/ \____/ |
| </span></span><span style="display:flex;"><span>dubbo&gt;loggerInfo |
| </span></span><span style="display:flex;"><span>Available logger adapters: [jcl, jdk, log4j, slf4j]. Current Adapter: [log4j]. Log level: INFO |
| </span></span></code></pre></div><h3 id="2-modify-log-level">2. Modify log level</h3> |
| <p>Command: <code>switchLogLevel {level}</code></p> |
| <p>level: <code>ALL</code>, <code>TRACE</code>, <code>DEBUG</code>, <code>INFO</code>, <code>WARN</code>, <code>ERROR</code>, <code>OFF</code></p> |
| <p>Example:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>&gt; telnet 127.0.0.1 <span style="color:#2aa198">22222</span> |
| </span></span><span style="display:flex;"><span>&gt; switchLogLevel WARN |
| </span></span></code></pre></div><p>output:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>Trying 127.0.0.1... |
| </span></span><span style="display:flex;"><span>Connected to localhost. |
| </span></span><span style="display:flex;"><span>Escape character is &#39;^]&#39;. |
| </span></span><span style="display:flex;"><span> ___ __ __ ___ ___ ____ |
| </span></span><span style="display:flex;"><span> / _ \ / / / // _ ) / _ ) / __ \ |
| </span></span><span style="display:flex;"><span> / // // /_/ // _ |/ _ |/ /_/ / |
| </span></span><span style="display:flex;"><span>/____/ \____//____//____/ \____/ |
| </span></span><span style="display:flex;"><span>dubbo&gt;loggerInfo |
| </span></span><span style="display:flex;"><span>Available logger adapters: [jcl, jdk, log4j, slf4j]. Current Adapter: [log4j]. Log level: INFO |
| </span></span><span style="display:flex;"><span>dubbo&gt;switchLogLevel WARN |
| </span></span><span style="display:flex;"><span>OK |
| </span></span><span style="display:flex;"><span>dubbo&gt;loggerInfo |
| </span></span><span style="display:flex;"><span>Available logger adapters: [jcl, jdk, log4j, slf4j]. Current Adapter: [log4j]. Log level: WARN``` |
| </span></span></code></pre></div><h3 id="3-modify-the-log-output-framework">3. Modify the log output framework</h3> |
| <p>Command: <code>switchLogger {loggerAdapterName}</code></p> |
| <p>loggerAdapterName: <code>slf4j</code>, <code>jcl</code>, <code>log4j</code>, <code>jdk</code>, <code>log4j2</code></p> |
| <p>Example:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>&gt; telnet 127.0.0.1 <span style="color:#2aa198">22222</span> |
| </span></span><span style="display:flex;"><span>&gt; switchLogger slf4j |
| </span></span></code></pre></div><p>output:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>Trying 127.0.0.1... |
| </span></span><span style="display:flex;"><span>Connected to localhost. |
| </span></span><span style="display:flex;"><span>Escape character is &#39;^]&#39;. |
| </span></span><span style="display:flex;"><span> ___ __ __ ___ ___ ____ |
| </span></span><span style="display:flex;"><span> / _ \ / / / // _ ) / _ ) / __ \ |
| </span></span><span style="display:flex;"><span> / // // /_/ // _ |/ _ |/ /_/ / |
| </span></span><span style="display:flex;"><span>/____/ \____//____//____/ \____/ |
| </span></span><span style="display:flex;"><span>dubbo&gt;loggerInfo |
| </span></span><span style="display:flex;"><span>Available logger adapters: [jcl, slf4j, log4j, jdk]. Current Adapter: [log4j]. Log level: INFO |
| </span></span><span style="display:flex;"><span>dubbo&gt;switchLogger slf4j |
| </span></span><span style="display:flex;"><span>OK |
| </span></span><span style="display:flex;"><span>dubbo&gt;loggerInfo |
| </span></span><span style="display:flex;"><span>Available logger adapters: [jcl, slf4j, log4j, jdk]. Current Adapter: [slf4j]. Log level: INFO |
| </span></span></code></pre></div></description></item><item><title>Docs3-V2: Performance Sampling Command</title><link>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/profiler/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/profiler/</guid><description> |
| <p>The performance sampling function can detect the time consumption of various parts of the Dubbo processing link. When a timeout occurs, <code>( usageTime / timeout &gt; profilerWarnPercent * 100 )</code> records the time consumption of calls through logs.</p> |
| <p>This function is divided into <code>simple profiler</code> and <code>detail profiler</code> two modes, where <code>simple profiler</code> mode is enabled by default, and <code>detail profiler</code> mode is disabled by default. |
| Compared with the <code>simple profiler</code> mode, the <code>detail profiler</code> collects more time-consuming processing of each filter, specific time-consuming protocols, etc. |
| In the <code>simple profiler</code> mode, if you find that there is a long time-consuming situation inside the Dubbo framework, you can enable the <code>detail profiler</code> mode to better troubleshoot the problem.</p> |
| <p>Reference link: <a href="../../../advanced-features-and-usage/performance/profiler/">Request time-consuming sampling</a></p> |
| <h2 id="enablesimpleprofiler-command">enableSimpleProfiler command</h2> |
| <p>Enable <code>simple profiler</code> mode, enabled by default</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;enableSimpleProfiler |
| </span></span><span style="display:flex;"><span>OK |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><h2 id="disablesimpleprofiler-command">disableSimpleProfiler command</h2> |
| <p>Turn off the <code>simple profiler</code> mode, and the <code>detail profiler</code> will not be enabled after it is turned off</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;disableSimpleProfiler |
| </span></span><span style="display:flex;"><span>OK |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><h2 id="enabledetailprofiler-command">enableDetailProfiler command</h2> |
| <p>Enable the <code>detail profiler</code> mode, which is disabled by default, you need to enable the <code>simple profiler</code> mode to actually enable it</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;enableDetailProfiler |
| </span></span><span style="display:flex;"><span>OK. This will cause performance degradation, please be careful! |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><h2 id="disabledetailprofiler-command">disableDetailProfiler command</h2> |
| <p>Turn off <code>detail profiler</code> mode, it will not affect <code>simple profiler</code></p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;disableDetailProfiler |
| </span></span><span style="display:flex;"><span>OK |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><h2 id="setprofilerwarnpercent-command">setProfilerWarnPercent command</h2> |
| <p>Set the warning percentage for the timeout</p> |
| <p>Command: <code>setProfilerWarnPercent {profilerWarnPercent}</code></p> |
| <p>profilerWarnPercent: The warning percentage of the timeout period, the value range is 0.0 ~ 1.0, and the default value is 0.75</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;setProfilerWarnPercent 0.75 |
| </span></span><span style="display:flex;"><span>OK |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div></description></item><item><title>Docs3-V2: Routing Status Command</title><link>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/router-snapshot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/router-snapshot/</guid><description> |
| <p>Many of Dubbo&rsquo;s traffic management capabilities are implemented based on Router. In a production environment, if traffic results do not meet expectations, you can use the routing status command to check the routing status to locate possible problems.</p> |
| <p>Reference link: <a href="../../../advanced-features-and-usage/performance/router-snapshot/">routing status collection</a></p> |
| <h2 id="getroutersnapshot-command">getRouterSnapshot command</h2> |
| <p>Get the current grouping status of each layer of routing. (Only supports StateRouter)</p> |
| <p>Command: <code>getRouterSnapshot {serviceName}</code></p> |
| <p><code>serviceName</code> is the name of the service to be collected, which supports matching</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;getRouterSnapshot com.dubbo.dubbointegration.BackendService |
| </span></span><span style="display:flex;"><span>com.dubbo.dubbointegration.BackendService@2c2e824a |
| </span></span><span style="display:flex;"><span>[ All Invokers: 2 ] [ Valid Invokers: 2 ] |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>MockInvokersSelector Total: 2 |
| </span></span><span style="display:flex;"><span>[ Mocked -&gt; Empty (Total: 0) ] |
| </span></span><span style="display:flex;"><span>[ Normal -&gt; 172.18.111.187:20880,172.18.111.183:20880 (Total: 2) ] |
| </span></span><span style="display:flex;"><span> ↓ |
| </span></span><span style="display:flex;"><span>StandardMeshRuleRouter not support |
| </span></span><span style="display:flex;"><span> ↓ |
| </span></span><span style="display:flex;"><span>TagStateRouter not support |
| </span></span><span style="display:flex;"><span> ↓ |
| </span></span><span style="display:flex;"><span>ServiceStateRouter not support |
| </span></span><span style="display:flex;"><span> ↓ |
| </span></span><span style="display:flex;"><span>AppStateRouter not support |
| </span></span><span style="display:flex;"><span> ↓ |
| </span></span><span style="display:flex;"><span>TailStateRouterEnd |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><h2 id="enableroutersnapshot-command">enableRouterSnapshot command</h2> |
| <p>Enable routing result collection mode</p> |
| <p>Command: <code>enableRouterSnapshot {serviceName}</code></p> |
| <p><code>serviceName</code> is the name of the service to be collected, which supports matching</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;enableRouterSnapshot com.dubbo.* |
| </span></span><span style="display:flex;"><span>OK. Found service count: 1. This will cause performance degradation, please be careful! |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><h2 id="disableroutersnapshot-command">disableRouterSnapshot command</h2> |
| <p>Disable routing result collection mode</p> |
| <p>Command: <code>disableRouterSnapshot {serviceName}</code></p> |
| <p><code>serviceName</code> is the name of the service to be collected, which supports matching</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;disableRouterSnapshot com.dubbo.* |
| </span></span><span style="display:flex;"><span>OK. Found service count: 1 |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><h2 id="getenabledroutersnapshot-command">getEnabledRouterSnapshot command</h2> |
| <p>Get the services that are currently collecting</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;getEnabledRouterSnapshot |
| </span></span><span style="display:flex;"><span>com.dubbo.dubbointegration.BackendService |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><h2 id="getrecentroutersnapshot-command">getRecentRouterSnapshot command</h2> |
| <p>Obtain the historical routing status through the qos command. (up to 32 results stored)</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>dubbo&gt;getRecentRouterSnapshot |
| </span></span><span style="display:flex;"><span>1658224330156 - Router snapshot service com.dubbo.dubbointegration.BackendService from registry 172.18.111.184 on the consumer 172.18.111.184 using the dubbo version 3.0.9 is below: |
| </span></span><span style="display:flex;"><span>[ Parent (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) ] Input: 172.18.111.187:20880,172.18.111.183:20880 -&gt; Chain Node Output: 172.18.111.187:20880.3172.18 :20880 |
| </span></span><span style="display:flex;"><span> [ MockInvokersSelector (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: invocation.need.mock not set. Return normal Invokers. ] Current Node Output: 172.18.111.187:20880,172.183.111. :20880 |
| </span></span><span style="display:flex;"><span> [ StandardMeshRuleRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: MeshRuleCache has not been built. Skip route. ] Current Node Output: 172.18.111.187:20880,172.1803:1121.88 |
| </span></span><span style="display:flex;"><span> [ TagStateRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: Disable Tag Router. Reason: tagRouterRule is invalid or disabled ] Current Node Output: 172.18.111.187:20880,172.183.111. 20880 |
| </span></span><span style="display:flex;"><span> [ ServiceStateRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: Directly return. Reason: Invokers from previous router is empty or conditionRouters is empty. ] Current Node Output: 172.18.111.187:20880 ,172.18.111.183:20880 |
| </span></span><span style="display:flex;"><span> [ AppStateRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: Directly return. Reason: Invokers from previous router is empty or conditionRouters is empty. ] Current Node Output: 172.18.111.187:20880 ,172.18.111.183:20880 |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>1658224330156 - Router snapshot service com.dubbo.dubbointegration.BackendService from registry 172.18.111.184 on the consumer 172.18.111.184 using the dubbo version 3.0.9 is below: |
| </span></span><span style="display:flex;"><span>[ Parent (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) ] Input: 172.18.111.187:20880,172.18.111.183:20880 -&gt; Chain Node Output: 172.18.111.187:20880.3172.18 :20880 |
| </span></span><span style="display:flex;"><span> [ MockInvokersSelector (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: invocation.need.mock not set. Return normal Invokers. ] Current Node Output: 172.18.111.187:20880,172.183.111. :20880 |
| </span></span><span style="display:flex;"><span> [ StandardMeshRuleRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: MeshRuleCache has not been built. Skip route. ] Current Node Output: 172.18.111.187:20880,172.1803:1121.88 |
| </span></span><span style="display:flex;"><span> [ TagStateRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: Disable Tag Router. Reason: tagRouterRule is invalid or disabled ] Current Node Output: 172.18.111.187:20880,172.183.111. 20880 |
| </span></span><span style="display:flex;"><span> [ ServiceStateRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: Directly return. Reason: Invokers from previous router is empty or conditionRouters is empty. ] Current Node Output: 172.18.111.187:20880 ,172.18.111.183:20880 |
| </span></span><span style="display:flex;"><span> [ AppStateRouter (Input: 2) (Current Node Output: 2) (Chain Node Output: 2) Router message: Directly return. Reason: Invokers from previous router is empty or conditionRouters is empty. ] Current Node Output: 172.18.111.187:20880 ,172.18.111.183:20880 |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>··· |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div></description></item><item><title>Docs3-V2: Serialization Security Audit</title><link>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/docs3-v2/java-sdk/reference-manual/qos/security/</guid><description> |
| <p>Dubbo supports real-time viewing of current configuration information and trusted/untrusted class lists through QoS commands. Currently supports two commands: <code>serializeCheckStatus</code> to view the current configuration information, <code>serializeWarnedClasses</code> to view the real-time alarm list.</p> |
| <h3 id="serializecheckstatus-command"><code>serializeCheckStatus</code> command</h3> |
| <p>Access directly through the console:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>&gt; telnet 127.0.0.1 <span style="color:#2aa198">22222</span> |
| </span></span><span style="display:flex;"><span>Trying 127.0.0.1... |
| </span></span><span style="display:flex;"><span>Connected to localhost. |
| </span></span><span style="display:flex;"><span>Escape character is <span style="color:#2aa198">&#39;^]&#39;</span>. |
| </span></span><span style="display:flex;"><span> ___ __ __ ___ ___ ____ |
| </span></span><span style="display:flex;"><span> / _ <span style="color:#cb4b16">\ </span>/ / / // _ <span style="color:#719e07">)</span> / _ <span style="color:#719e07">)</span> / __ <span style="color:#cb4b16">\ |
| </span></span></span><span style="display:flex;"><span><span style="color:#cb4b16"></span> / // // /_/ // _ |/ _ |/ /_/ / |
| </span></span><span style="display:flex;"><span>/____/ <span style="color:#cb4b16">\_</span>___//____//____/ <span style="color:#cb4b16">\_</span>___/ |
| </span></span><span style="display:flex;"><span>dubbo&gt;serializeCheckStatus |
| </span></span><span style="display:flex;"><span>CheckStatus: WARN |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>CheckSerializable: <span style="color:#b58900">true</span> |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>AllowedPrefix: |
| </span></span><span style="display:flex;"><span>... |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>DisAllowedPrefix: |
| </span></span><span style="display:flex;"><span>... |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><p>Request the result in json format via http:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>&gt; curl http://127.0.0.1:22222/serializeCheckStatus |
| </span></span><span style="display:flex;"><span><span style="color:#719e07">{</span><span style="color:#2aa198">&#34;checkStatus&#34;</span>: <span style="color:#2aa198">&#34;WARN&#34;</span>,<span style="color:#2aa198">&#34;allowedPrefix&#34;</span>:<span style="color:#719e07">[</span>...<span style="color:#719e07">]</span>,<span style="color:#2aa198">&#34;checkSerializable&#34;</span>:true,<span style="color:#2aa198">&#34;disAllowedPrefix&#34;</span>:<span style="color:#719e07">[</span>...<span style="color:#719e07">]}</span> |
| </span></span></code></pre></div><h3 id="serializewarnedclasses-command"><code>serializeWarnedClasses</code> command</h3> |
| <p>Access directly through the console:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>&gt; telnet 127.0.0.1 <span style="color:#2aa198">22222</span> |
| </span></span><span style="display:flex;"><span>Trying 127.0.0.1... |
| </span></span><span style="display:flex;"><span>Connected to localhost. |
| </span></span><span style="display:flex;"><span>Escape character is <span style="color:#2aa198">&#39;^]&#39;</span>. |
| </span></span><span style="display:flex;"><span> ___ __ __ ___ ___ ____ |
| </span></span><span style="display:flex;"><span> / _ <span style="color:#cb4b16">\ </span>/ / / // _ <span style="color:#719e07">)</span> / _ <span style="color:#719e07">)</span> / __ <span style="color:#cb4b16">\ |
| </span></span></span><span style="display:flex;"><span><span style="color:#cb4b16"></span> / // // /_/ // _ |/ _ |/ /_/ / |
| </span></span><span style="display:flex;"><span>/____/ <span style="color:#cb4b16">\_</span>___//____//____/ <span style="color:#cb4b16">\_</span>___/ |
| </span></span><span style="display:flex;"><span>dubbo&gt;serializeWarnedClasses |
| </span></span><span style="display:flex;"><span>Warned Classes: |
| </span></span><span style="display:flex;"><span>io.dubbo.test.NotSerializable |
| </span></span><span style="display:flex;"><span>io.dubbo.test2.NotSerializable |
| </span></span><span style="display:flex;"><span>io.dubbo.test2.OthersSerializable |
| </span></span><span style="display:flex;"><span>org.apache.dubbo.samples.NotSerializable |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span> |
| </span></span><span style="display:flex;"><span>dubbo&gt; |
| </span></span></code></pre></div><p>Request the result in json format via http:</p> |
| <div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>&gt; curl http://127.0.0.1:22222/serializeWarnedClasses |
| </span></span><span style="display:flex;"><span><span style="color:#719e07">{</span><span style="color:#2aa198">&#34;warnedClasses&#34;</span>:<span style="color:#719e07">[</span><span style="color:#2aa198">&#34;io.dubbo.test2.NotSerializable&#34;</span>,<span style="color:#2aa198">&#34;org.apache.dubbo.samples.NotSerializable&#34;</span>,<span style="color:#2aa198">&#34;io.dubbo.test.NotSerializable&#34;</span>,<span style="color:#2aa198">&#34;io.dubbo.test2.OthersSerializable&#34;</span><span style="color:#719e07">]}</span> |
| </span></span></code></pre></div><p>Note: It is recommended to pay attention to the result of <code>serializeWarnedClasses</code> in time, and judge whether it is attacked by whether the returned result is not empty.</p> |
| <blockquote> |
| <p>For more configuration details, please refer to <a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/security/class-check/">Dubbo Class Check Mechanism</a>.</p> |
| </blockquote></description></item></channel></rss> |