<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>故障排查 on Apache Dubbo</title><link>https://deploy-preview-3202--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/</link><description>Recent content in 故障排查 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://deploy-preview-3202--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/index.xml" rel="self" type="application/rss+xml"/><item><title>请求耗时采样</title><link>https://deploy-preview-3202--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/profiler/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/profiler/</guid><description>&lt;p>性能采样功能可以对 Dubbo 处理链路上的各处耗时进行检测，在出现超时的时候 &lt;code>( usageTime / timeout &amp;gt; profilerWarnPercent * 100 )&lt;/code> 通过日志记录调用的耗时。&lt;/p>
&lt;p>此功能分为 &lt;code>simple profiler&lt;/code> 和 &lt;code>detail profiler&lt;/code> 两个模式，其中 &lt;code>simple profiler&lt;/code> 模式默认开启，&lt;code>detail profiler&lt;/code> 模式默认关闭。
&lt;code>detail profiler&lt;/code> 相较 &lt;code>simple profiler&lt;/code> 模式多采集了每个 filter 的处理耗时、协议上的具体耗时等。
在 &lt;code>simple profiler&lt;/code> 模式下如果发现 Dubbo 框架内部存在耗时长的情况，可以开启 &lt;code>detail profiler&lt;/code> 模式，以便更好地排查问题。&lt;/p>
&lt;h2 id="使用场景">使用场景&lt;/h2>
&lt;p>需要对 Dubbo 请求的精确耗时进行采集分析的场景，如服务不明原因的超时等&lt;/p>
&lt;h2 id="使用方式">使用方式&lt;/h2>
&lt;p>&lt;code>simple profiler&lt;/code> 默认自动开启，对于请求处理时间超过超时时间 3/4 的，都会通过日志打印出慢调用信息。如果需要开启 &lt;code>detail profiler&lt;/code> 模式或者修改超时告警比例，可以参考&lt;a href="https://deploy-preview-3202--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/reference-manual/qos/profiler/">性能采样命令&lt;/a>文档。&lt;/p>
&lt;h3 id="日志说明">日志说明&lt;/h3>
&lt;p>日志中各字段的含义如下：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[Dubbo-Consumer] execute service 接口#方法 cost 实际耗时, this invocation almost (maybe already) timeout. Timeout: 超时时间
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>invocation context:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>请求上下文
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>thread info: 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Start time: 开始请求时间（nano 时间）
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>+-[ Offset: 当前节点开始时间; Usage: 当前节点使用总耗时, 当前节点耗时比例 ] 当前节点描述
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> +-[ Offset: 当前节点开始时间; Usage: 当前节点使用总耗时, 当前节点耗时比例 ] 当前节点描述
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>对于请求耗时这里以两个例子进行介绍：&lt;/p></description></item><item><title>应用启动失败</title><link>https://deploy-preview-3202--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/start-failed/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/start-failed/</guid><description>&lt;p>在开发与生产部署过程中，由于各种非预期的变更，可能会出现应用无法启动的情况。对于 Dubbo 来说，通常启动失败时都会有类似以下的报错信息。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>Caused by: java.lang.IllegalStateException: Dubbo Module&lt;span style="color:#719e07">[&lt;/span>1.1.1&lt;span style="color:#719e07">]&lt;/span> is stopping or stopped, can not start again
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">[&lt;/span>DUBBO&lt;span style="color:#719e07">]&lt;/span> Dubbo Application&lt;span style="color:#719e07">[&lt;/span>1.1&lt;span style="color:#719e07">](&lt;/span>first-dubbo-consumer&lt;span style="color:#719e07">)&lt;/span> start failure
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="一句话总结">一句话总结&lt;/h2>
&lt;p>正确配置日志输出，往前翻到第一个报错的位置并进行处理。&lt;/p>
&lt;h2 id="排查方式">排查方式&lt;/h2>
&lt;h3 id="1-配置日志输出">1 配置日志输出&lt;/h3>
&lt;p>目前 Dubbo 支持多种日志框架，如果环境中存在多种日志框架的支持（如 log4j 和 logback），Dubbo 会按照 （log4j &amp;gt; slf4j &amp;gt; log4j2 &amp;gt; jcl）的顺序输出日志框架。&lt;/p>
&lt;p>如果与预期的日志框架不同时，会出现日志无法输出的问题。此时可以通过以下的配置进行调整：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-properties" data-lang="properties">&lt;span style="display:flex;">&lt;span>dubbo.application.logger&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">slf4j&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>注：3.2.0 及以上的版本中将自动分析日志框架是否存在配置，优选日志框架输出。&lt;/p>
&lt;h3 id="2-找到真正的报错信息">2 找到真正的报错信息&lt;/h3>
&lt;p>在正确配置日志输出之后，可以在日志中搜索 &lt;code>[DUBBO] Model start failed&lt;/code> 或者 &lt;code>start failure&lt;/code> 关键字，查看真正导致 Dubbo 启动失败的原因。&lt;/p>
&lt;p>如下所示，启动失败的原因为有服务订阅找不到提供者。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span style="display:flex;">&lt;span>[&lt;span style="color:#2aa198">27&lt;/span>&lt;span style="color:#719e07">/&lt;/span>&lt;span style="color:#2aa198">02&lt;/span>&lt;span style="color:#719e07">/&lt;/span>&lt;span style="color:#2aa198">23&lt;/span> &lt;span style="color:#2aa198">12&lt;/span>:&lt;span style="color:#2aa198">49&lt;/span>:&lt;span style="color:#2aa198">18&lt;/span>:&lt;span style="color:#2aa198">018&lt;/span> CST] main ERROR deploy&lt;span style="color:#719e07">.&lt;/span>DefaultModuleDeployer: [DUBBO] Model start failed: Dubbo Module[&lt;span style="color:#2aa198">1.1&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">1&lt;/span>] start failed: java&lt;span style="color:#719e07">.&lt;/span>lang&lt;span style="color:#719e07">.&lt;/span>IllegalStateException: Failed to check the status of the service org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>samples&lt;span style="color:#719e07">.&lt;/span>api&lt;span style="color:#719e07">.&lt;/span>GreetingsService&lt;span style="color:#719e07">.&lt;/span> No provider available &lt;span style="color:#719e07">for&lt;/span> the service org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>samples&lt;span style="color:#719e07">.&lt;/span>api&lt;span style="color:#719e07">.&lt;/span>GreetingsService from the url consumer:&lt;span style="color:#719e07">//&lt;/span>&lt;span style="color:#2aa198">30.221&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">144.195&lt;/span>&lt;span style="color:#719e07">/&lt;/span>org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>samples&lt;span style="color:#719e07">.&lt;/span>api&lt;span style="color:#719e07">.&lt;/span>GreetingsService?application&lt;span style="color:#719e07">=&lt;/span>first&lt;span style="color:#719e07">-&lt;/span>dubbo&lt;span style="color:#719e07">-&lt;/span>consumer&lt;span style="color:#719e07">&amp;amp;&lt;/span>background&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#268bd2">false&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>dubbo&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">2.0&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">2&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>environment&lt;span style="color:#719e07">=&lt;/span>product&lt;span style="color:#719e07">&amp;amp;&lt;/span>executor&lt;span style="color:#719e07">-&lt;/span>management&lt;span style="color:#719e07">-&lt;/span>mode&lt;span style="color:#719e07">=&lt;/span>default&lt;span style="color:#719e07">&amp;amp;&lt;/span>file&lt;span style="color:#719e07">-&lt;/span>cache&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#268bd2">true&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>interface&lt;span style="color:#719e07">=&lt;/span>org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>samples&lt;span style="color:#719e07">.&lt;/span>api&lt;span style="color:#719e07">.&lt;/span>GreetingsService&lt;span style="color:#719e07">&amp;amp;&lt;/span>methods&lt;span style="color:#719e07">=&lt;/span>sayHi&lt;span style="color:#719e07">&amp;amp;&lt;/span>pid&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">54580&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>register&lt;span style="color:#719e07">.&lt;/span>ip&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">30.221&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">144.195&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>release&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">3.2&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">0&lt;/span>&lt;span style="color:#719e07">-&lt;/span>beta&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">6&lt;/span>&lt;span style="color:#719e07">-&lt;/span>SNAPSHOT&lt;span style="color:#719e07">&amp;amp;&lt;/span>side&lt;span style="color:#719e07">=&lt;/span>consumer&lt;span style="color:#719e07">&amp;amp;&lt;/span>sticky&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#268bd2">false&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>timestamp&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">1677473358611&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>unloadClusterRelated&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#268bd2">false&lt;/span> to the consumer &lt;span style="color:#2aa198">30.221&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">144.195&lt;/span> use dubbo version &lt;span style="color:#2aa198">3.2&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">0&lt;/span>&lt;span style="color:#719e07">-&lt;/span>beta&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">6&lt;/span>&lt;span style="color:#719e07">-&lt;/span>SNAPSHOT, dubbo version: &lt;span style="color:#2aa198">3.2&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">0&lt;/span>&lt;span style="color:#719e07">-&lt;/span>beta&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">6&lt;/span>&lt;span style="color:#719e07">-&lt;/span>SNAPSHOT, current host: &lt;span style="color:#2aa198">30.221&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">144.195&lt;/span>, error code: &lt;span style="color:#2aa198">5&lt;/span>&lt;span style="color:#719e07">-&lt;/span>&lt;span style="color:#2aa198">14.&lt;/span> This may be caused by , go to https:&lt;span style="color:#719e07">//&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>org&lt;span style="color:#719e07">/&lt;/span>faq&lt;span style="color:#719e07">/&lt;/span>&lt;span style="color:#2aa198">5&lt;/span>&lt;span style="color:#719e07">/&lt;/span>&lt;span style="color:#2aa198">14&lt;/span> to find instructions&lt;span style="color:#719e07">.&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>java&lt;span style="color:#719e07">.&lt;/span>lang&lt;span style="color:#719e07">.&lt;/span>IllegalStateException: Failed to check the status of the service org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>samples&lt;span style="color:#719e07">.&lt;/span>api&lt;span style="color:#719e07">.&lt;/span>GreetingsService&lt;span style="color:#719e07">.&lt;/span> No provider available &lt;span style="color:#719e07">for&lt;/span> the service org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>samples&lt;span style="color:#719e07">.&lt;/span>api&lt;span style="color:#719e07">.&lt;/span>GreetingsService from the url consumer:&lt;span style="color:#719e07">//&lt;/span>&lt;span style="color:#2aa198">30.221&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">144.195&lt;/span>&lt;span style="color:#719e07">/&lt;/span>org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>samples&lt;span style="color:#719e07">.&lt;/span>api&lt;span style="color:#719e07">.&lt;/span>GreetingsService?application&lt;span style="color:#719e07">=&lt;/span>first&lt;span style="color:#719e07">-&lt;/span>dubbo&lt;span style="color:#719e07">-&lt;/span>consumer&lt;span style="color:#719e07">&amp;amp;&lt;/span>background&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#268bd2">false&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>dubbo&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">2.0&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">2&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>environment&lt;span style="color:#719e07">=&lt;/span>product&lt;span style="color:#719e07">&amp;amp;&lt;/span>executor&lt;span style="color:#719e07">-&lt;/span>management&lt;span style="color:#719e07">-&lt;/span>mode&lt;span style="color:#719e07">=&lt;/span>default&lt;span style="color:#719e07">&amp;amp;&lt;/span>file&lt;span style="color:#719e07">-&lt;/span>cache&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#268bd2">true&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>interface&lt;span style="color:#719e07">=&lt;/span>org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>samples&lt;span style="color:#719e07">.&lt;/span>api&lt;span style="color:#719e07">.&lt;/span>GreetingsService&lt;span style="color:#719e07">&amp;amp;&lt;/span>methods&lt;span style="color:#719e07">=&lt;/span>sayHi&lt;span style="color:#719e07">&amp;amp;&lt;/span>pid&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">54580&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>register&lt;span style="color:#719e07">.&lt;/span>ip&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">30.221&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">144.195&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>release&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">3.2&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">0&lt;/span>&lt;span style="color:#719e07">-&lt;/span>beta&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">6&lt;/span>&lt;span style="color:#719e07">-&lt;/span>SNAPSHOT&lt;span style="color:#719e07">&amp;amp;&lt;/span>side&lt;span style="color:#719e07">=&lt;/span>consumer&lt;span style="color:#719e07">&amp;amp;&lt;/span>sticky&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#268bd2">false&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>timestamp&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">1677473358611&lt;/span>&lt;span style="color:#719e07">&amp;amp;&lt;/span>unloadClusterRelated&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#268bd2">false&lt;/span> to the consumer &lt;span style="color:#2aa198">30.221&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">144.195&lt;/span> use dubbo version &lt;span style="color:#2aa198">3.2&lt;/span>&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">0&lt;/span>&lt;span style="color:#719e07">-&lt;/span>beta&lt;span style="color:#719e07">.&lt;/span>&lt;span style="color:#2aa198">6&lt;/span>&lt;span style="color:#719e07">-&lt;/span>SNAPSHOT
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="常见的原因">常见的原因&lt;/h2>
&lt;p>本章将介绍 Dubbo 中常见的启动失败原因。&lt;/p></description></item><item><title>地址找不到异常</title><link>https://deploy-preview-3202--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/no-provider/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/no-provider/</guid><description>&lt;p>在开发与生产部署过程中，由于 Dubbo 是一个需要基于服务发现功能进行调用的框架，很容易由于各种客观原因出现 &lt;code>No Provder&lt;/code> 的异常，本文旨在通过体系化的排查思路，让您能够在异常的时候快速定位原因并解决。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>java.lang.IllegalStateException: Failed to check the status of the service org.apache.dubbo.samples.api.GreetingsService. No provider available for the service org.apache.dubbo.samples.api.GreetingsService from the url consumer://*** to the consumer 30.221.146.226 use dubbo version 3.2.0-beta.4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Exception in thread &amp;#34;main&amp;#34; org.apache.dubbo.rpc.RpcException: No provider available from registry 127.0.0.1:2181 for service org.apache.dubbo.samples.api.GreetingsService on consumer 30.221.146.226 use dubbo version 3.2.0-beta.4, please check status of providers(disabled, not registered or in blacklist).
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="一句话总结">一句话总结&lt;/h2>
&lt;p>服务找不到时先自查服务是否已经开发完部署了，然后在注册中心中确认是否已经注册，如果注册检查服务端发布情况、如果未注册检查消费端订阅情况，中间任何一步出问题都会导致异常。&lt;/p>
&lt;h2 id="排查思路全览">排查思路全览&lt;/h2>
&lt;p>&lt;img alt="img" src="https://deploy-preview-3202--dubbo.netlify.app/imgs/docs3-v2/java-sdk/troubleshoot/1676536783437-2e3853cf-68bd-43b1-bc66-81dfc1c4585b.jpeg">&lt;/p></description></item><item><title>请求成功率低</title><link>https://deploy-preview-3202--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/request-failed/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/troubleshoot/request-failed/</guid><description>&lt;p>在生产环境中，请求成功率与延时是最关键的指标，本文将介绍在请求成功率下降时候的排查思路。&lt;/p>
&lt;h2 id="一句话总结">一句话总结&lt;/h2>
&lt;p>全链路指标（消费端、网络、服务端、外部依赖等）分析瓶颈&lt;/p>
&lt;p>&lt;img alt="img" src="https://deploy-preview-3202--dubbo.netlify.app/imgs/docs3-v2/java-sdk/troubleshoot/1677487652373-fdc41dbd-0fe0-461f-b827-fa8db68ba2a2.jpeg">&lt;/p>
&lt;h2 id="排查思路">排查思路&lt;/h2>
&lt;h3 id="1-消费端是否正常构造请求">1 消费端是否正常构造请求&lt;/h3>
&lt;h4 id="11-检查类对象是否都是可以序列化的">1.1 检查类对象是否都是可以序列化的&lt;/h4>
&lt;p>在使用 Dubbo 进行 RPC 进行远程调用的时候，由于是跨进程的调用，为了防止非预期的数据在网络中请求，Dubbo 遵循 Java 的序列化最佳实践会检查所有数据对象是否实现了 &lt;code>Serializable&lt;/code> 接口。&lt;/p>
&lt;p>以下是检查到序列化异常时的日志样例：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span style="display:flex;">&lt;span>io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>handler&lt;span style="color:#719e07">.&lt;/span>codec&lt;span style="color:#719e07">.&lt;/span>EncoderException: java&lt;span style="color:#719e07">.&lt;/span>lang&lt;span style="color:#719e07">.&lt;/span>IllegalArgumentException: [Serialization Security] Serialized &lt;span style="color:#719e07">class&lt;/span> org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>samples&lt;span style="color:#719e07">.&lt;/span>api&lt;span style="color:#719e07">.&lt;/span>GreetingsService&lt;span style="color:#719e07">$&lt;/span>Data has &lt;span style="color:#719e07">not&lt;/span> implement Serializable interface&lt;span style="color:#719e07">.&lt;/span> Current mode is strict check, will disallow to deserialize it by default&lt;span style="color:#719e07">.&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>handler&lt;span style="color:#719e07">.&lt;/span>codec&lt;span style="color:#719e07">.&lt;/span>MessageToByteEncoder&lt;span style="color:#719e07">.&lt;/span>write(MessageToByteEncoder&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">125&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>channel&lt;span style="color:#719e07">.&lt;/span>AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>invokeWrite0(AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">881&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>channel&lt;span style="color:#719e07">.&lt;/span>AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>invokeWrite(AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">863&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>channel&lt;span style="color:#719e07">.&lt;/span>AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>write(AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">968&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>channel&lt;span style="color:#719e07">.&lt;/span>AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>write(AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">856&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>handler&lt;span style="color:#719e07">.&lt;/span>timeout&lt;span style="color:#719e07">.&lt;/span>IdleStateHandler&lt;span style="color:#719e07">.&lt;/span>write(IdleStateHandler&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">304&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>channel&lt;span style="color:#719e07">.&lt;/span>AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>invokeWrite0(AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">879&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>channel&lt;span style="color:#719e07">.&lt;/span>AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>invokeWrite(AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">863&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>channel&lt;span style="color:#719e07">.&lt;/span>AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>write(AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">968&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>channel&lt;span style="color:#719e07">.&lt;/span>AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>write(AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">856&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>channel&lt;span style="color:#719e07">.&lt;/span>ChannelDuplexHandler&lt;span style="color:#719e07">.&lt;/span>write(ChannelDuplexHandler&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">115&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>remoting&lt;span style="color:#719e07">.&lt;/span>transport&lt;span style="color:#719e07">.&lt;/span>netty4&lt;span style="color:#719e07">.&lt;/span>NettyClientHandler&lt;span style="color:#719e07">.&lt;/span>write(NettyClientHandler&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">88&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>channel&lt;span style="color:#719e07">.&lt;/span>AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>invokeWrite0(AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">879&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>channel&lt;span style="color:#719e07">.&lt;/span>AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>invokeWriteAndFlush(AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">940&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>channel&lt;span style="color:#719e07">.&lt;/span>AbstractChannelHandlerContext&lt;span style="color:#719e07">$&lt;/span>WriteTask&lt;span style="color:#719e07">.&lt;/span>run(AbstractChannelHandlerContext&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">1247&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>util&lt;span style="color:#719e07">.&lt;/span>concurrent&lt;span style="color:#719e07">.&lt;/span>AbstractEventExecutor&lt;span style="color:#719e07">.&lt;/span>runTask(AbstractEventExecutor&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">174&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>util&lt;span style="color:#719e07">.&lt;/span>concurrent&lt;span style="color:#719e07">.&lt;/span>AbstractEventExecutor&lt;span style="color:#719e07">.&lt;/span>safeExecute(AbstractEventExecutor&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">167&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>util&lt;span style="color:#719e07">.&lt;/span>concurrent&lt;span style="color:#719e07">.&lt;/span>SingleThreadEventExecutor&lt;span style="color:#719e07">.&lt;/span>runAllTasks(SingleThreadEventExecutor&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">470&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>channel&lt;span style="color:#719e07">.&lt;/span>nio&lt;span style="color:#719e07">.&lt;/span>NioEventLoop&lt;span style="color:#719e07">.&lt;/span>run(NioEventLoop&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">569&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>util&lt;span style="color:#719e07">.&lt;/span>concurrent&lt;span style="color:#719e07">.&lt;/span>SingleThreadEventExecutor&lt;span style="color:#719e07">$&lt;/span>&lt;span style="color:#2aa198">4.&lt;/span>run(SingleThreadEventExecutor&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">997&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>util&lt;span style="color:#719e07">.&lt;/span>internal&lt;span style="color:#719e07">.&lt;/span>ThreadExecutorMap&lt;span style="color:#719e07">$&lt;/span>&lt;span style="color:#2aa198">2.&lt;/span>run(ThreadExecutorMap&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">74&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>util&lt;span style="color:#719e07">.&lt;/span>concurrent&lt;span style="color:#719e07">.&lt;/span>FastThreadLocalRunnable&lt;span style="color:#719e07">.&lt;/span>run(FastThreadLocalRunnable&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">30&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at java&lt;span style="color:#719e07">.&lt;/span>lang&lt;span style="color:#719e07">.&lt;/span>Thread&lt;span style="color:#719e07">.&lt;/span>run(&lt;span style="color:#cb4b16">Thread&lt;/span>&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">748&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Caused by: java&lt;span style="color:#719e07">.&lt;/span>lang&lt;span style="color:#719e07">.&lt;/span>IllegalArgumentException: [Serialization Security] Serialized &lt;span style="color:#719e07">class&lt;/span> org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>samples&lt;span style="color:#719e07">.&lt;/span>api&lt;span style="color:#719e07">.&lt;/span>GreetingsService&lt;span style="color:#719e07">$&lt;/span>Data has &lt;span style="color:#719e07">not&lt;/span> implement Serializable interface&lt;span style="color:#719e07">.&lt;/span> Current mode is strict check, will disallow to deserialize it by default&lt;span style="color:#719e07">.&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>common&lt;span style="color:#719e07">.&lt;/span>utils&lt;span style="color:#719e07">.&lt;/span>DefaultSerializeClassChecker&lt;span style="color:#719e07">.&lt;/span>loadClass(DefaultSerializeClassChecker&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">112&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>common&lt;span style="color:#719e07">.&lt;/span>serialize&lt;span style="color:#719e07">.&lt;/span>hessian2&lt;span style="color:#719e07">.&lt;/span>Hessian2SerializerFactory&lt;span style="color:#719e07">.&lt;/span>getDefaultSerializer(Hessian2SerializerFactory&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">49&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at com&lt;span style="color:#719e07">.&lt;/span>alibaba&lt;span style="color:#719e07">.&lt;/span>com&lt;span style="color:#719e07">.&lt;/span>caucho&lt;span style="color:#719e07">.&lt;/span>hessian&lt;span style="color:#719e07">.&lt;/span>io&lt;span style="color:#719e07">.&lt;/span>SerializerFactory&lt;span style="color:#719e07">.&lt;/span>getSerializer(SerializerFactory&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">393&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at com&lt;span style="color:#719e07">.&lt;/span>alibaba&lt;span style="color:#719e07">.&lt;/span>com&lt;span style="color:#719e07">.&lt;/span>caucho&lt;span style="color:#719e07">.&lt;/span>hessian&lt;span style="color:#719e07">.&lt;/span>io&lt;span style="color:#719e07">.&lt;/span>Hessian2Output&lt;span style="color:#719e07">.&lt;/span>writeObject(Hessian2Output&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">411&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>common&lt;span style="color:#719e07">.&lt;/span>serialize&lt;span style="color:#719e07">.&lt;/span>hessian2&lt;span style="color:#719e07">.&lt;/span>Hessian2ObjectOutput&lt;span style="color:#719e07">.&lt;/span>writeObject(Hessian2ObjectOutput&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">99&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>rpc&lt;span style="color:#719e07">.&lt;/span>protocol&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>DubboCodec&lt;span style="color:#719e07">.&lt;/span>encodeRequestData(DubboCodec&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">208&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>remoting&lt;span style="color:#719e07">.&lt;/span>exchange&lt;span style="color:#719e07">.&lt;/span>codec&lt;span style="color:#719e07">.&lt;/span>ExchangeCodec&lt;span style="color:#719e07">.&lt;/span>encodeRequest(ExchangeCodec&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">261&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>remoting&lt;span style="color:#719e07">.&lt;/span>exchange&lt;span style="color:#719e07">.&lt;/span>codec&lt;span style="color:#719e07">.&lt;/span>ExchangeCodec&lt;span style="color:#719e07">.&lt;/span>encode(ExchangeCodec&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">75&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>rpc&lt;span style="color:#719e07">.&lt;/span>protocol&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>DubboCountCodec&lt;span style="color:#719e07">.&lt;/span>encode(DubboCountCodec&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">47&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at org&lt;span style="color:#719e07">.&lt;/span>apache&lt;span style="color:#719e07">.&lt;/span>dubbo&lt;span style="color:#719e07">.&lt;/span>remoting&lt;span style="color:#719e07">.&lt;/span>transport&lt;span style="color:#719e07">.&lt;/span>netty4&lt;span style="color:#719e07">.&lt;/span>NettyCodecAdapter&lt;span style="color:#719e07">$&lt;/span>InternalEncoder&lt;span style="color:#719e07">.&lt;/span>encode(NettyCodecAdapter&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">69&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	at io&lt;span style="color:#719e07">.&lt;/span>netty&lt;span style="color:#719e07">.&lt;/span>handler&lt;span style="color:#719e07">.&lt;/span>codec&lt;span style="color:#719e07">.&lt;/span>MessageToByteEncoder&lt;span style="color:#719e07">.&lt;/span>write(MessageToByteEncoder&lt;span style="color:#719e07">.&lt;/span>java:&lt;span style="color:#2aa198">107&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	&lt;span style="color:#719e07">...&lt;/span> &lt;span style="color:#2aa198">22&lt;/span> more
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>典型的日志关键字为 &lt;code>has not implement Serializable interface&lt;/code>。&lt;/p></description></item></channel></rss>