<?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://dubbo.apache.org/zh-cn/docs/references/</link><description>Recent content in 参考手册 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://dubbo.apache.org/zh-cn/docs/references/index.xml" rel="self" type="application/rss+xml"/><item><title>配置中心参考手册</title><link>https://dubbo.apache.org/zh-cn/docs/references/config-center/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/config-center/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;
&lt;p&gt;此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档，请参阅&lt;a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config-center/"&gt;最新版本&lt;/a&gt;。&lt;/p&gt;

&lt;/div&gt;

&lt;p&gt;配置中心在 Dubbo 中承担3个职责：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;外部化配置：启动配置的集中式存储 （简单理解为 dubbo.properties 的外部化存储）。&lt;/li&gt;
&lt;li&gt;服务治理：服务治理规则的存储与通知。&lt;/li&gt;
&lt;li&gt;动态配置：控制动态开关或者动态变更属性值&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;启用动态配置，以 Zookeeper 为例，可查看 &lt;a href="../../references/xml/dubbo-config-center"&gt;配置中心属性详解&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2"&gt;&amp;lt;dubbo:config-center&lt;/span&gt; address=&lt;span style="color:#2aa198"&gt;&amp;#34;zookeeper://127.0.0.1:2181&amp;#34;&lt;/span&gt;&lt;span style="color:#268bd2"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;或者&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-properties" data-lang="properties"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo.config-center.address&lt;span style="color:#719e07"&gt;=&lt;/span&gt;&lt;span style="color:#2aa198"&gt;zookeeper://127.0.0.1:2181&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;或者&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ConfigCenterConfig configCenter &lt;span style="color:#719e07"&gt;=&lt;/span&gt; &lt;span style="color:#719e07"&gt;new&lt;/span&gt; ConfigCenterConfig();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;configCenter.setAddress(&lt;span style="color:#2aa198"&gt;&amp;#34;zookeeper://127.0.0.1:2181&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;为了兼容 2.6.x 版本配置，在使用 Zookeeper 作为注册中心，且没有显示配置配置中心的情况下，Dubbo 框架会默认将此 Zookeeper 用作配置中心，但将只作服务治理用途。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="外部化配置"&gt;外部化配置&lt;/h2&gt;
&lt;p&gt;请参考文档 &lt;a href="../configuration/external-config"&gt;外部化配置&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="动态配置"&gt;动态配置&lt;/h2&gt;
&lt;p&gt;[TODO 待完善]&lt;/p&gt;
&lt;h2 id="服务治理"&gt;服务治理&lt;/h2&gt;
&lt;h4 id="zookeeper"&gt;Zookeeper&lt;/h4&gt;
&lt;p&gt;默认节点结构：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dubbo.apache.org/imgs/user/zk-configcenter-governance.jpg" alt="zk-configcenter-governance"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;namespace，用于不同配置的环境隔离。&lt;/li&gt;
&lt;li&gt;config，Dubbo 约定的固定节点，不可更改，所有配置和服务治理规则都存储在此节点下。&lt;/li&gt;
&lt;li&gt;dubbo，所有服务治理规则都是全局性的，dubbo 为默认节点&lt;/li&gt;
&lt;li&gt;configurators/tag-router/condition-router/migration，不同的服务治理规则类型，node value 存储具体规则内容&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="apollo"&gt;Apollo&lt;/h4&gt;
&lt;p&gt;所有的服务治理规则都是全局性的，默认从公共命名空间 &lt;code&gt;dubbo&lt;/code&gt; 读取和订阅：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dubbo.apache.org/imgs/user/apollo-configcenter-governance.jpg" alt="apollo-configcenter-governance.jpg"&gt;&lt;/p&gt;
&lt;p&gt;不同的规则以不同的 key 后缀区分：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;configurators，&lt;a href="https://dubbo.apache.org/zh-cn/docsv2.7/user/examples/config-rule/"&gt;覆盖规则&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;tag-router，&lt;a href="https://dubbo.apache.org/zh-cn/docsv2.7/user/examples/routing-rule/"&gt;标签路由&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;condition-router，&lt;a href="https://dubbo.apache.org/zh-cn/docsv2.7/user/examples/routing-rule/#%E6%9D%A1%E4%BB%B6%E8%B7%AF%E7%94%B1"&gt;条件路由&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;migration，&lt;a href="../../migration/migration-service-discovery"&gt;迁移规则&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="nacos"&gt;Nacos&lt;/h4&gt;
&lt;p&gt;所有的服务治理规则都是全局的，默认从 namespace: &lt;code&gt;public&lt;/code&gt; 下进行读取， 通过 dataId: &lt;code&gt;interface name&lt;/code&gt; 以及 group: &lt;code&gt;dubbo&lt;/code&gt; 去读取和订阅：&lt;/p&gt;</description></item><item><title>元数据参考手册</title><link>https://dubbo.apache.org/zh-cn/docs/references/metadata/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/metadata/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;
&lt;p&gt;此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档，请参阅&lt;a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/metadata-center/"&gt;最新版本&lt;/a&gt;。&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;p&gt;dubbo provider中的服务配置项有接近&lt;a href="https://dubbo.apache.org/zh-cn/docsv2.7/user/references/xml/dubbo-provider/"&gt;30个配置项&lt;/a&gt;。 排除注册中心服务治理需要之外，很大一部分配置项是provider自己使用，不需要透传给消费者。这部分数据不需要进入注册中心，而只需要以key-value形式持久化存储。
dubbo consumer中的配置项也有&lt;a href="https://dubbo.apache.org/zh-cn/docsv2.7/user/references/xml/dubbo-consumer/"&gt;20+个配置项&lt;/a&gt;。在注册中心之中，服务消费者列表中只需要关注application，version，group，ip，dubbo版本等少量配置，其他配置也可以以key-value形式持久化存储。
这些数据是以服务为维度注册进入注册中心，导致了数据量的膨胀，进而引发注册中心(如zookeeper)的网络开销增大，性能降低。&lt;br&gt;
除了上述配置项的存储之外，dubbo服务元数据信息也需要被存储下来。元数据信息包括服务接口，及接口的方法信息。这些信息将被用于服务mock，服务测试。&lt;/p&gt;
&lt;p&gt;以上的元数据都是基于接口级别。在3.0版本中，引入了应用元数据的概念，应用元数据描述的是整个应用的信息概览。并且引入了服务自省映射，用于应用级别的服务发现。&lt;/p&gt;
&lt;h2 id="目标"&gt;目标&lt;/h2&gt;
&lt;p&gt;需要将注册中心原来的数据信息和元数据信息保存到独立的key-value的存储中，这个key-value可以是DB，redis或者其他持久化存储。核心代码中支持了zookeeper，redis, nacos(推荐)的默认支持。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;因为是基于key-value存储，key不会改变，最新的value会将原来的value进行覆盖&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Provider存储内容的格式，参见：org.apache.dubbo.metadata.definition.model.FullServiceDefinition。是该类型gson化之后的存储。
Consumer存储内容，为Map格式。从Consumer端注册到注册中心的URL中的获取参数信息。即通过URL.getParameterMap()获取到的Map，进行gson化之后进行存储。&lt;/p&gt;
&lt;p&gt;详细的内容，可以参考下面的sample输出。&lt;/p&gt;
&lt;h2 id="配置"&gt;配置&lt;/h2&gt;
&lt;p&gt;默认的元数据存储，额外支持以下几个特性：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;失败重试&lt;/li&gt;
&lt;li&gt;每天定时重刷&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="失败重试"&gt;失败重试&lt;/h4&gt;
&lt;p&gt;失败重试可以通过retrytimes （重试次数,默认100），retryperiod（重试周期，默认3000ms）进行设置。&lt;/p&gt;
&lt;h4 id="定时刷新"&gt;定时刷新&lt;/h4&gt;
&lt;p&gt;默认开启，可以通过设置cycleReport=false进行关闭。&lt;/p&gt;
&lt;h4 id="完整的配置项"&gt;完整的配置项：&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-properties" data-lang="properties"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo.metadata-report.address&lt;span style="color:#719e07"&gt;=&lt;/span&gt;&lt;span style="color:#2aa198"&gt;zookeeper://127.0.0.1:2181&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo.metadata-report.username&lt;span style="color:#719e07"&gt;=&lt;/span&gt;&lt;span style="color:#2aa198"&gt;xxx ##非必须&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo.metadata-report.password&lt;span style="color:#719e07"&gt;=&lt;/span&gt;&lt;span style="color:#2aa198"&gt;xxx ##非必须&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo.metadata-report.retry-times&lt;span style="color:#719e07"&gt;=&lt;/span&gt;&lt;span style="color:#2aa198"&gt;30 ##非必须,default值100&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo.metadata-report.retry-period&lt;span style="color:#719e07"&gt;=&lt;/span&gt;&lt;span style="color:#2aa198"&gt;5000 ##非必须,default值3000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo.metadata-report.cycle-report&lt;span style="color:#719e07"&gt;=&lt;/span&gt;&lt;span style="color:#2aa198"&gt;false ##非必须,default值true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo.metadata-report.sync.report&lt;span style="color:#719e07"&gt;=&lt;/span&gt;&lt;span style="color:#2aa198"&gt;false ##非必须,default值为false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;如果元数据地址(dubbo.metadata-report.address)也不进行配置，会判断注册中心的协议是否支持元数据中心，如果支持，会使用注册中心的地址来用作元数据中心。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;接下来看几个sample的配置。无论哪种配置方式，都需要引入maven依赖：&lt;/p&gt;
&lt;p&gt;zookeeper:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.dubbo&lt;span style="color:#268bd2"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;dubbo-metadata-report-zookeeper&lt;span style="color:#268bd2"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;redis:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.dubbo&lt;span style="color:#268bd2"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;dubbo-metadata-report-redis&lt;span style="color:#268bd2"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;nacos:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.dubbo&lt;span style="color:#268bd2"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;dubbo-metadata-report-nacos&lt;span style="color:#268bd2"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;完整的sample，查看&lt;a href="https://github.com/dubbo/dubbo-samples/tree/master"&gt;sample-2.7&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="方式一在配置中心配置"&gt;方式一：在配置中心配置&lt;/h3&gt;
&lt;p&gt;参考sample：dubbo-samples-metadata-report/dubbo-samples-metadata-report-configcenter 工程。&lt;/p&gt;
&lt;h5 id="配置中心配置"&gt;配置中心配置&lt;/h5&gt;
&lt;p&gt;配置中心的配置，可以参考configcenter的文档。配置的内容如下：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-properties" data-lang="properties"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo.registry.address&lt;span style="color:#719e07"&gt;=&lt;/span&gt;&lt;span style="color:#2aa198"&gt;zookeeper://127.0.0.1:2181&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#586e75"&gt;### 注意驼峰式风格&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo.metadata-report.address&lt;span style="color:#719e07"&gt;=&lt;/span&gt;&lt;span style="color:#2aa198"&gt;zookeeper://127.0.0.1:2181 ###元数据存储的地址&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;在sample中，使用了Zookeeper作为配置中心。启动本地zookeeper服务之后，直接运行：org.apache.dubbo.samples.metadatareport.configcenter.ZKTools 就可以完成写入。
如果配置中心使用了nacos，apollo，这些产品本身支持ops配置。&lt;/p&gt;</description></item><item><title>API 参考手册</title><link>https://dubbo.apache.org/zh-cn/docs/references/api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/api/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;
&lt;p&gt;此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档，请参阅&lt;a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/config/api/"&gt;最新版本&lt;/a&gt;。&lt;/p&gt;

&lt;/div&gt;

&lt;p&gt;Dubbo 的常规功能，都保持零侵入，但有些功能不得不用 API 侵入才能实现。&lt;/p&gt;


&lt;div class="alert alert-primary" role="alert"&gt;
&lt;h4 class="alert-heading"&gt;提示&lt;/h4&gt;

 Dubbo 中除这里声明以外的接口或类，都是内部接口或扩展接口，普通用户请不要直接依赖，否则升级版本可能出现不兼容。

&lt;/div&gt;

&lt;p&gt;API 汇总如下：&lt;/p&gt;
&lt;h2 id="配置-api"&gt;配置 API&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.config.ServiceConfig
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.config.ReferenceConfig
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.config.ProtocolConfig
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.config.RegistryConfig
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.config.MonitorConfig
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.config.ApplicationConfig
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.config.ModuleConfig
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.config.ProviderConfig
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.config.ConsumerConfig
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.config.MethodConfig
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.config.ArgumentConfig
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;详细参见：&lt;a href="../configuration/api"&gt;API配置&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="注解-api"&gt;注解 API&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.config.annotation.DubboService
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.config.annotation.DubboReference
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;详细参见：&lt;a href="../configuration/annotation"&gt;注解配置&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="模型-api"&gt;模型 API&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.common.URL
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.rpc.RpcException
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="上下文-api"&gt;上下文 API&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.rpc.RpcContext
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;详细参见：&lt;a href="../../advanced/context"&gt;上下文信息&lt;/a&gt; &amp;amp; &lt;a href="../../advanced/attachment"&gt;隐式传参&lt;/a&gt; &amp;amp; &lt;a href="../../advanced/async-call"&gt;异步调用&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="服务-api"&gt;服务 API&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.rpc.service.GenericService
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.rpc.service.GenericException
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;详细参见：&lt;a href="../../advanced/generic-reference"&gt;泛化引用&lt;/a&gt; &amp;amp; &lt;a href="../../advanced/generic-service"&gt;泛化实现&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.apache.dubbo.rpc.service.EchoService
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;详细参见：&lt;a href="../../advanced/echo-service"&gt;回声测试&lt;/a&gt;&lt;/p&gt;</description></item><item><title>在线运维命令参考手册</title><link>https://dubbo.apache.org/zh-cn/docs/references/qos/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/qos/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;
&lt;p&gt;此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档，请参阅&lt;a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/qos/"&gt;最新版本&lt;/a&gt;。&lt;/p&gt;

&lt;/div&gt;

&lt;p&gt;dubbo &lt;code&gt;2.5.8&lt;/code&gt; 新版本增加了 QOS 模块，提供了新的 telnet 命令支持。&lt;/p&gt;
&lt;h2 id="端口"&gt;端口&lt;/h2&gt;
&lt;p&gt;新版本的 telnet 端口 与 dubbo 协议的端口是不同的端口，默认为 &lt;code&gt;22222&lt;/code&gt;，可通过配置文件&lt;code&gt;dubbo.properties&lt;/code&gt; 修改:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo.application.qos-port=33333
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;或者通过设置 JVM 参数:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-Ddubbo.application.qos-port=33333
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="安全"&gt;安全&lt;/h2&gt;
&lt;p&gt;默认情况下，dubbo 接收任何主机发起的命令，可通过配置文件&lt;code&gt;dubbo.properties&lt;/code&gt; 修改:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo.application.qos-accept-foreign-ip=false
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;或者通过设置 JVM 参数:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-Ddubbo.application.qos-accept-foreign-ip=false
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;拒绝远端主机发出的命令，只允许服务本机执行&lt;/p&gt;
&lt;h2 id="telnet-与-http-协议"&gt;telnet 与 http 协议&lt;/h2&gt;
&lt;p&gt;telnet 模块现在同时支持 http 协议和 telnet 协议，方便各种情况的使用&lt;/p&gt;
&lt;p&gt;示例如下：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;➜ ~ telnet localhost 22222
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Trying ::1...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;telnet: connect to address ::1: Connection refused
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Trying 127.0.0.1...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Connected to localhost.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Escape character is &amp;#39;^]&amp;#39;.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ████████▄ ███ █▄ ▀█████████▄ ▀█████████▄ ▄██████▄
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ███ ▀███ ███ ███ ███ ███ ███ ███ ███ ███
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ███ ███ ███ ███ ▄███▄▄▄██▀ ▄███▄▄▄██▀ ███ ███
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ███ ███ ███ ███ ▀▀███▀▀▀██▄ ▀▀███▀▀▀██▄ ███ ███
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ███ ███ ███ ███ ███ ██▄ ███ ██▄ ███ ███
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ███ ▄███ ███ ███ ███ ███ ███ ███ ███ ███
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ████████▀ ████████▀ ▄█████████▀ ▄█████████▀ ▀██████▀
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo&amp;gt;ls
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;As Provider side:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+----------------------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Provider Service Name |PUB|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+----------------------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|org.apache.dubbo.demo.DemoService| N |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+----------------------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;As Consumer side:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+---------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|Consumer Service Name|NUM|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+---------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;➜ ~ curl &amp;#34;localhost:22222/ls?arg1=xxx&amp;amp;arg2=xxxx&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;As Provider side:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+----------------------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Provider Service Name |PUB|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+----------------------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|org.apache.dubbo.demo.DemoService| N |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+----------------------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;As Consumer side:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+---------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|Consumer Service Name|NUM|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+---------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="支持的命令"&gt;支持的命令&lt;/h2&gt;
&lt;h3 id="ls-列出消费者和提供者"&gt;ls 列出消费者和提供者&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dubbo&amp;gt;ls
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;As Provider side:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+----------------------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Provider Service Name |PUB|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+----------------------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|org.apache.dubbo.demo.DemoService| Y |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+----------------------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;As Consumer side:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+---------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|Consumer Service Name|NUM|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;+---------------------+---+
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;列出 dubbo 的所提供的服务和消费的服务，以及消费的服务地址数&lt;/p&gt;</description></item><item><title>Telnet 命令参考手册</title><link>https://dubbo.apache.org/zh-cn/docs/references/telnet/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/telnet/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;
&lt;p&gt;此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档，请参阅&lt;a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/qos/"&gt;最新版本&lt;/a&gt;。&lt;/p&gt;

&lt;/div&gt;

&lt;p&gt;从 &lt;code&gt;2.0.5&lt;/code&gt; 版本开始，dubbo 开始支持通过 telnet 命令来进行服务治理。&lt;/p&gt;
&lt;h2 id="使用"&gt;使用&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;telnet localhost &lt;span style="color:#2aa198"&gt;20880&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;或者：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#b58900"&gt;echo&lt;/span&gt; status | nc -i &lt;span style="color:#2aa198"&gt;1&lt;/span&gt; localhost &lt;span style="color:#2aa198"&gt;20880&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;status命令所检查的资源也可以扩展，参见：&lt;a href="../../references/spis/status-checker"&gt;扩展参考手册&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="命令"&gt;命令&lt;/h2&gt;
&lt;p&gt;以下展示了 dubbo 内建的 telnet 命令的说明和用法，此外，telnet 命令还支持用户自行扩展，参见：&lt;a href="../../references/spis/telnet-handler"&gt;Telnet 命令扩展&lt;/a&gt;。&lt;/p&gt;
&lt;h3 id="ls"&gt;&lt;code&gt;ls&lt;/code&gt;&lt;/h3&gt;
&lt;ol start="0"&gt;
&lt;li&gt;&lt;code&gt;ls&lt;/code&gt;: 显示服务列表&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ls -l&lt;/code&gt;: 显示服务详细信息列表&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ls XxxService&lt;/code&gt;: 显示服务的方法列表&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ls -l XxxService&lt;/code&gt;: 显示服务的方法详细信息列表&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="ps"&gt;&lt;code&gt;ps&lt;/code&gt;&lt;/h3&gt;
&lt;ol start="0"&gt;
&lt;li&gt;&lt;code&gt;ps&lt;/code&gt;: 显示服务端口列表&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ps -l&lt;/code&gt;: 显示服务地址列表&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ps 20880&lt;/code&gt;: 显示端口上的连接信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ps -l 20880&lt;/code&gt;: 显示端口上的连接详细信息&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="cd"&gt;&lt;code&gt;cd&lt;/code&gt;&lt;/h3&gt;
&lt;ol start="0"&gt;
&lt;li&gt;&lt;code&gt;cd XxxService&lt;/code&gt;: 改变缺省服务，当设置了缺省服务，凡是需要输入服务名作为参数的命令，都可以省略服务参数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cd /&lt;/code&gt;: 取消缺省服务&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="pwd"&gt;&lt;code&gt;pwd&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;pwd&lt;/code&gt;: 显示当前缺省服务&lt;/p&gt;
&lt;h3 id="trace"&gt;&lt;code&gt;trace&lt;/code&gt;&lt;/h3&gt;
&lt;ol start="0"&gt;
&lt;li&gt;&lt;code&gt;trace XxxService&lt;/code&gt;: 跟踪 1 次服务任意方法的调用情况&lt;/li&gt;
&lt;li&gt;&lt;code&gt;trace XxxService 10&lt;/code&gt;: 跟踪 10 次服务任意方法的调用情况&lt;/li&gt;
&lt;li&gt;&lt;code&gt;trace XxxService xxxMethod&lt;/code&gt;: 跟踪 1 次服务方法的调用情况&lt;/li&gt;
&lt;li&gt;&lt;code&gt;trace XxxService xxxMethod 10&lt;/code&gt;: 跟踪 10 次服务方法的调用情况&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="count"&gt;&lt;code&gt;count&lt;/code&gt;&lt;/h3&gt;
&lt;ol start="0"&gt;
&lt;li&gt;&lt;code&gt;count XxxService&lt;/code&gt;: 统计 1 次服务任意方法的调用情况&lt;/li&gt;
&lt;li&gt;&lt;code&gt;count XxxService 10&lt;/code&gt;: 统计 10 次服务任意方法的调用情况&lt;/li&gt;
&lt;li&gt;&lt;code&gt;count XxxService xxxMethod&lt;/code&gt;: 统计 1 次服务方法的调用情况&lt;/li&gt;
&lt;li&gt;&lt;code&gt;count XxxService xxxMethod 10&lt;/code&gt;: 统计 10 次服务方法的调用情况&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="invoke"&gt;&lt;code&gt;invoke&lt;/code&gt;&lt;/h3&gt;
&lt;ol start="0"&gt;
&lt;li&gt;&lt;code&gt;invoke XxxService.xxxMethod(1234, &amp;quot;abcd&amp;quot;, {&amp;quot;prop&amp;quot; : &amp;quot;value&amp;quot;})&lt;/code&gt;: 调用服务的方法&lt;/li&gt;
&lt;li&gt;&lt;code&gt;invoke com.xxx.XxxService.XxxService.xxxMethod(1234, &amp;quot;abcd&amp;quot;, {&amp;quot;prop&amp;quot; : &amp;quot;value&amp;quot;})&lt;/code&gt;: 调用全路径服务的方法&lt;/li&gt;
&lt;li&gt;&lt;code&gt;invoke xxxMethod(1234, &amp;quot;abcd&amp;quot;, {&amp;quot;prop&amp;quot; : &amp;quot;value&amp;quot;})&lt;/code&gt;: 调用服务的方法(自动查找包含此方法的服务)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;invoke xxxMethod({&amp;quot;name&amp;quot;:&amp;quot;zhangsan&amp;quot;,&amp;quot;age&amp;quot;:12,&amp;quot;class&amp;quot;:&amp;quot;org.apache.dubbo.qos.legacy.service.Person&amp;quot;})&lt;/code&gt; :当有参数重载，或者类型转换失败的时候，可以通过增加class属性指定需要转换类&lt;/li&gt;
&lt;li&gt;当参数为Map&amp;lt;Integer,T&amp;gt;，key的类型为Integer时，建议指定类型。例如&lt;code&gt;invoke com.xxx.xxxApiService({&amp;quot;3&amp;quot;:0.123, &amp;quot;class&amp;quot;:&amp;quot;java.util.HashMap&amp;quot;})&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="select"&gt;&lt;code&gt;select&lt;/code&gt; &lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/h3&gt;
&lt;ol start="0"&gt;
&lt;li&gt;&lt;code&gt;select 1&lt;/code&gt;: 当 invoke 命令匹配到多个方法时使用，根据提示列表选择需要调用的方法&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="status"&gt;&lt;code&gt;status&lt;/code&gt;&lt;/h3&gt;
&lt;ol start="0"&gt;
&lt;li&gt;&lt;code&gt;status&lt;/code&gt;: 显示汇总状态，该状态将汇总所有资源的状态，当全部 OK 时则显示 OK，只要有一个 ERROR 则显示 ERROR，只要有一个 WARN 则显示 WARN&lt;/li&gt;
&lt;li&gt;&lt;code&gt;status -l&lt;/code&gt;: 显示状态列表&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="log"&gt;&lt;code&gt;log&lt;/code&gt; &lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/h3&gt;
&lt;ol start="0"&gt;
&lt;li&gt;&lt;code&gt;log debug&lt;/code&gt;: 修改 dubbo logger 的日志级别&lt;/li&gt;
&lt;li&gt;&lt;code&gt;log 100&lt;/code&gt;: 查看 file logger 的最后 100 字符的日志&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="help"&gt;&lt;code&gt;help&lt;/code&gt;&lt;/h3&gt;
&lt;ol start="0"&gt;
&lt;li&gt;&lt;code&gt;help&lt;/code&gt;: 显示 telnet 命帮助信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;help xxx&lt;/code&gt;: 显示xxx命令的详细帮助信息&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="clear"&gt;&lt;code&gt;clear&lt;/code&gt;&lt;/h3&gt;
&lt;ol start="0"&gt;
&lt;li&gt;&lt;code&gt;clear&lt;/code&gt;: 清除屏幕上的内容&lt;/li&gt;
&lt;li&gt;&lt;code&gt;clear 100&lt;/code&gt;: 清除屏幕上的指定行数的内容&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="exit"&gt;&lt;code&gt;exit&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;exit&lt;/code&gt;: 退出当前 telnet 命令行&lt;/p&gt;</description></item><item><title>Maven 插件参考手册</title><link>https://dubbo.apache.org/zh-cn/docs/references/maven/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh-cn/docs/references/maven/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;
&lt;p&gt;此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档，请参阅&lt;a href="https://dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/"&gt;最新版本&lt;/a&gt;。&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id="启动一个简易注册中心"&gt;启动一个简易注册中心&lt;/h2&gt;
&lt;p&gt;以指定的 9099 端口启动一个简易注册中心 &lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mvn dubbo:registry -Dport&lt;span style="color:#719e07"&gt;=&lt;/span&gt;&lt;span style="color:#2aa198"&gt;9099&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="生成-demo-服务提供者应用"&gt;生成 demo 服务提供者应用&lt;/h2&gt;
&lt;p&gt;生成指定接口和版本的服务提供者应用：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mvn dubbo:create -Dapplication&lt;span style="color:#719e07"&gt;=&lt;/span&gt;xxx -Dpackage&lt;span style="color:#719e07"&gt;=&lt;/span&gt;com.alibaba.xxx -Dservice&lt;span style="color:#719e07"&gt;=&lt;/span&gt;XxxService,YyyService -Dversion&lt;span style="color:#719e07"&gt;=&lt;/span&gt;1.0.0 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;如果端口不指定，默认端口为 9090&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item></channel></rss>