This is an automated email from the ASF dual-hosted git repository. wangxin pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git
The following commit(s) were added to refs/heads/asf-site by this push: new 230b82a gene html 230b82a is described below commit 230b82ad01bcf0ee4dba2cc016d314fa1af6f4b3 Author: Xin Wang <xin.victorw...@gmail.com> AuthorDate: Wed Jan 30 22:22:30 2019 +0800 gene html --- zh-cn/docs/user/versions/version-270.html | 342 ++++++++++++++++++++++++++++++ zh-cn/docs/user/versions/version-270.json | 2 +- 2 files changed, 343 insertions(+), 1 deletion(-) diff --git a/zh-cn/docs/user/versions/version-270.html b/zh-cn/docs/user/versions/version-270.html new file mode 100644 index 0000000..5581eff --- /dev/null +++ b/zh-cn/docs/user/versions/version-270.html @@ -0,0 +1,342 @@ +<!DOCTYPE html> +<html lang="en"> + +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> + <meta name="keywords" content="version-270" /> + <meta name="description" content="version-270" /> + <!-- 网页标签标题 --> + <title>version-270</title> + <link rel="shortcut icon" href="/img/dubbo.ico"/> + <link rel="stylesheet" href="/build/documentation.css" /> +</head> +<body> + <div id="root"><div class="documentation-page" data-reactroot=""><header class="header-container header-container-normal"><div class="header-body"><a href="/zh-cn/index.html"><img class="logo" src="/img/dubbo_colorful.png"/></a><div class="search search-normal"><span class="icon-search"></span></div><span class="language-switch language-switch-normal">En</span><div class="header-menu"><img class="header-menu-toggle" src="/img/menu_gray.png"/><ul><li class="menu-item menu-item-normal"><a [...] +<p>环境要求:需要<strong>Java 8</strong>及以上版本。</p> +<p>2.7.0版本在改造的过程中遵循了一个原则,即<strong>保持与低版本的兼容性,因此从功能层面来说它是与2.6.x及更低版本完全兼容的</strong>。这里所说的兼容性主要是和<a href="#%E5%8C%85%E5%90%8D%E6%94%B9%E9%80%A0">包重命名</a>相关的,接下来会详细说明影响点。另外,虽然功能用法保持向后兼容,但参考本文能帮助您尽快用到2.7.0版本的新特性。</p> +<h2>升级步骤</h2> +<ol> +<li>升级pom到2.7.0(以all-in-one依赖为例)。</li> +</ol> +<pre><code class="language-xml"><span class="hljs-tag"><<span class="hljs-name">properties</span>></span> + <span class="hljs-tag"><<span class="hljs-name">dubbo.version</span>></span>2.7.0<span class="hljs-tag"></<span class="hljs-name">dubbo.version</span>></span> +<span class="hljs-tag"></<span class="hljs-name">properties</span>></span> +<span class="hljs-tag"><<span class="hljs-name">dependencyManagement</span>></span> + <span class="hljs-tag"><<span class="hljs-name">dependencies</span>></span> + <span class="hljs-tag"><<span class="hljs-name">dependency</span>></span> + <span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.apache.dubbo<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span> + <span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>dubbo-dependencies-bom<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span> + <span class="hljs-tag"><<span class="hljs-name">version</span>></span>${dubbo.version}<span class="hljs-tag"></<span class="hljs-name">version</span>></span> + <span class="hljs-tag"><<span class="hljs-name">type</span>></span>pom<span class="hljs-tag"></<span class="hljs-name">type</span>></span> + <span class="hljs-tag"><<span class="hljs-name">scope</span>></span>import<span class="hljs-tag"></<span class="hljs-name">scope</span>></span> + <span class="hljs-tag"></<span class="hljs-name">dependency</span>></span> + <span class="hljs-tag"></<span class="hljs-name">dependencies</span>></span> +<span class="hljs-tag"></<span class="hljs-name">dependencyManagement</span>></span> + +<span class="hljs-tag"><<span class="hljs-name">dependencies</span>></span> + <span class="hljs-tag"><<span class="hljs-name">dependency</span>></span> + <span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.apache.dubbo<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span> + <span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>dubbo<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span> + <span class="hljs-tag"><<span class="hljs-name">version</span>></span>${dubbo.version}<span class="hljs-tag"></<span class="hljs-name">version</span>></span> + <span class="hljs-tag"></<span class="hljs-name">dependency</span>></span> + <span class="hljs-tag"><<span class="hljs-name">dependency</span>></span> + <span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>io.netty<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span> + <span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>netty-all<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span> + <span class="hljs-tag"></<span class="hljs-name">dependency</span>></span> +<span class="hljs-tag"></<span class="hljs-name">dependencies</span>></span> +</code></pre> +<p>如果升级依赖后出现API或SPI扩展相关的编译错误,请参考<a href="#%E5%8C%85%E5%90%8D%E6%94%B9%E9%80%A0">包兼容性问题</a></p> +<p>此时重新部署应用,所有默认行为和2.6.x保持一致,如果要用到2.7的新特性,则需要继续做以下配置(可选):</p> +<ul> +<li>简化的URL</li> +<li>配置元数据中心</li> +<li>使用外部化配置</li> +<li>服务治理规则</li> +<li>使用异步API</li> +</ul> +<p>下面我们就对这几部分的配置分别做详细说明。</p> +<h4>简化的URL</h4> +<pre><code class="language-xml"><span class="hljs-comment"><!-- simplified="true"表示注册简化版的URL到Registry --></span> +<span class="hljs-tag"><<span class="hljs-name">dubbo:registry</span> <span class="hljs-attr">address</span>=<span class="hljs-string">"zookeeper://127.0.0.1:2181"</span> <span class="hljs-attr">simplified</span>=<span class="hljs-string">"true"</span>/></span> +</code></pre> +<pre><code class="language-properties"><span class="hljs-meta">dubbo.registry.simplified</span>=<span class="hljs-string">true</span> +</code></pre> +<p>建议将此配置集中管理,参考<a href="#%E4%BD%BF%E7%94%A8%E5%A4%96%E9%83%A8%E5%8C%96%E9%85%8D%E7%BD%AE">外部化配置</a>。</p> +<blockquote> +<p>URL简化只是剔除了一些纯粹的查询用的参数,并没有做大刀阔斧的服务发现模型改造,因此精简后的URL完全可以被2.6及以下版本的消费端实现服务发现与调用,同样2.7版本也可以发现和调用低版本的提供者。</p> +</blockquote> +<h4>配置元数据中心</h4> +<pre><code class="language-xml"><span class="hljs-tag"><<span class="hljs-name">dubbo:metadata-report</span> <span class="hljs-attr">address</span>=<span class="hljs-string">"redis://127.0.0.1:6379"</span>/></span> +</code></pre> +<pre><code class="language-properties"><span class="hljs-meta">dubbo.metadataReport.address</span>=<span class="hljs-string">redis://127.0.0.1:6379</span> +</code></pre> +<p>建议将此配置集中管理,参考<a href="#%E4%BD%BF%E7%94%A8%E5%A4%96%E9%83%A8%E5%8C%96%E9%85%8D%E7%BD%AE">外部化配置</a>。 +在此了解更多<a href="">元数据中心</a>设计目的与用途。</p> +<h4>使用外部化配置</h4> +<p>需要在项目启动前,使用<a href="https://github.com/apache/incubator-dubbo-ops">最新版本Dubbo-OPS</a>完成外部化配置迁移,理论上配置中心支持所有本地dubbo.properties所支持的配置项。</p> +<p>以XML开发形式为例,假设我们本地有如下配置:</p> +<pre><code class="language-xml"><span class="hljs-tag"><<span class="hljs-name">dubbo:application</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"demo-provider"</span>/></span> +<span class="hljs-tag"><<span class="hljs-name">dubbo:conig-center</span> <span class="hljs-attr">address</span>=<span class="hljs-string">"zookeeper://127.0.0.1:2181"</span>/></span> + +<span class="hljs-tag"><<span class="hljs-name">dubbo:registry</span> <span class="hljs-attr">address</span>=<span class="hljs-string">"zookeeper://127.0.0.1:2181"</span> <span class="hljs-attr">simplified</span>=<span class="hljs-string">"true"</span>/></span> +<span class="hljs-tag"><<span class="hljs-name">dubbo:metadata-report</span> <span class="hljs-attr">address</span>=<span class="hljs-string">"redis://127.0.0.1:6379"</span>/></span> +<span class="hljs-tag"><<span class="hljs-name">dubbo:protocol</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"dubbo"</span> <span class="hljs-attr">port</span>=<span class="hljs-string">"20880"</span>/></span> + +<span class="hljs-tag"><<span class="hljs-name">bean</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"demoService"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"org.apache.dubbo.samples.basic.impl.DemoServiceImpl"</span>/></span> +<span class="hljs-tag"><<span class="hljs-name">dubbo:service</span> <span class="hljs-attr">interface</span>=<span class="hljs-string">"org.apache.dubbo.samples.basic.api.DemoService"</span> <span class="hljs-attr">ref</span>=<span class="hljs-string">"demoService"</span>/></span> +</code></pre> +<p>通过<a href="http://47.91.207.147/#/management?key=global">OPS控制台</a>将以下全局配置迁移到配置中心,成为所有应用共享的配置。</p> +<pre><code class="language-properties"><span class="hljs-meta">dubbo.registry.address</span>=<span class="hljs-string">zookeeper://127.0.0.1:2181</span> +<span class="hljs-meta">dubbo.registry.simplified</span>=<span class="hljs-string">true</span> + +<span class="hljs-meta">dubbo.metadataReport.address</span>=<span class="hljs-string">redis://127.0.0.1:6379</span> + +<span class="hljs-meta">dubbo.protocol.name</span>=<span class="hljs-string">dubbo</span> +<span class="hljs-meta">dubbo.protocol.port</span>=<span class="hljs-string">20880</span> +</code></pre> +<p>这样应用开发者只需要关心配置中心的配置。</p> +<pre><code class="language-xml"><span class="hljs-tag"><<span class="hljs-name">dubbo:application</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"demo-provider"</span>/></span> +<span class="hljs-tag"><<span class="hljs-name">dubbo:conig-center</span> <span class="hljs-attr">address</span>=<span class="hljs-string">"zookeeper://127.0.0.1:2181"</span>/></span> + +<span class="hljs-tag"><<span class="hljs-name">bean</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"demoService"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"org.apache.dubbo.samples.basic.impl.DemoServiceImpl"</span>/></span> +<span class="hljs-tag"><<span class="hljs-name">dubbo:service</span> <span class="hljs-attr">interface</span>=<span class="hljs-string">"org.apache.dubbo.samples.basic.api.DemoService"</span> <span class="hljs-attr">ref</span>=<span class="hljs-string">"demoService"</span>/></span> +</code></pre> +<p>这里增加了一篇<a href="">Dubbo配置方式</a>的说明文档,详细描述了Dubbo当前支持的配置类型、不同配置之间的覆盖关系等。</p> +<h4>服务治理规则迁移</h4> +<p>2.7版本可以读取到老的治理规则,因此不用担心升级2.7的应用后老规则会失效,可以选择先升级上线,再慢慢的做增量式规则迁移。</p> +<p>请参考<a href="http://47.91.207.147/#/governance/routingRule">OPS -> 服务治理</a>了解规则配置方式,这里我们重点关注的是规则格式,以下提供几个简单示例:</p> +<ul> +<li> +<p>条件路由</p> +<pre><code class="language-yaml"><span class="hljs-meta">---</span> +<span class="hljs-attr">scope:</span> <span class="hljs-string">application</span> +<span class="hljs-attr">force:</span> <span class="hljs-literal">true</span> +<span class="hljs-attr">runtime:</span> <span class="hljs-literal">true</span> +<span class="hljs-attr">enabled:</span> <span class="hljs-literal">true</span> +<span class="hljs-attr">key:</span> <span class="hljs-string">governance-conditionrouter-consumer</span> +<span class="hljs-attr">conditions:</span> +<span class="hljs-bullet"> -</span> <span class="hljs-string">application=app1</span> <span class="hljs-string">=></span> <span class="hljs-string">address=*:20880</span> +<span class="hljs-bullet"> -</span> <span class="hljs-string">application=app2</span> <span class="hljs-string">=></span> <span class="hljs-string">address=*:20881</span> +<span class="hljs-string">...</span> +</code></pre> +</li> +<li> +<p>标签路由</p> +<pre><code class="language-yaml"><span class="hljs-meta">---</span> +<span class="hljs-attr">force:</span> <span class="hljs-literal">false</span> +<span class="hljs-attr">runtime:</span> <span class="hljs-literal">true</span> +<span class="hljs-attr">enabled:</span> <span class="hljs-literal">true</span> +<span class="hljs-attr">key:</span> <span class="hljs-string">governance-tagrouter-provider</span> +<span class="hljs-attr">tags:</span> +<span class="hljs-attr"> - name:</span> <span class="hljs-string">tag1</span> +<span class="hljs-attr"> addresses:</span> <span class="hljs-string">["127.0.0.1:20880"]</span> +<span class="hljs-attr"> - name:</span> <span class="hljs-string">tag2</span> +<span class="hljs-attr"> addresses:</span> <span class="hljs-string">["127.0.0.1:20881"]</span> +<span class="hljs-string">...</span> +</code></pre> +</li> +<li> +<p>动态配置(覆盖规则)</p> +<pre><code class="language-yaml"><span class="hljs-meta">---</span> +<span class="hljs-attr">scope:</span> <span class="hljs-string">service</span> +<span class="hljs-attr">key:</span> <span class="hljs-string">org.apache.dubbo.samples.governance.api.DemoService</span> +<span class="hljs-attr">enabled:</span> <span class="hljs-literal">true</span> +<span class="hljs-attr">configs:</span> +<span class="hljs-attr">- addresses:</span> <span class="hljs-string">[0.0.0.0]</span> +<span class="hljs-attr"> side:</span> <span class="hljs-string">consumer</span> +<span class="hljs-attr"> parameters:</span> +<span class="hljs-attr"> timeout:</span> <span class="hljs-number">6000</span> +<span class="hljs-string">...</span> +</code></pre> +</li> +</ul> +<p>关于治理规则更多详细说明,请参考<a href="/docs/zh-cn/user/demos/routing-rule.md">路由规则</a>和<a href="/docs/zh-cn/user/demos/config-rule.md">覆盖规则</a>用户文档。</p> +<p>也可继续了解<a href="https://github.com/apache/incubator-dubbo-samples/tree/samples-for-2.7.0-SNAPSHOT/dubbo-samples-governance">使用示例</a>。</p> +<h4>使用异步API</h4> +<p>这部分的接口和低版本同样是完全兼容的,你仅须在打算使用CompletableFuture<T>提供的回调或者异步组装能力时,再考虑升级这部分内容即可。</p> +<ul> +<li> +<p>定义CompletableFuture<T>类型接口</p> +</li> +<li> +<p>同步签名接口实现Provider端异步执行</p> +</li> +<li> +<p>感知异步返回值的Filter链路</p> +</li> +</ul> +<p>点击链接,了解关于异步API如何使用的更多<a href="">使用示例</a>。</p> +<h2>包名改造</h2> +<ol> +<li>Maven坐标</li> +</ol> +<p><strong>groupId 由 <code>com.alibaba</code> 改为 <code>org.apache.dubbo</code></strong></p> +<ol start="2"> +<li>package</li> +</ol> +<p><strong>package 由 <code>com.alibaba.dubbo</code> 改为 <code>org.apache.dubbo</code></strong></p> +<p>Maven坐标升级比较直观,只需要修改相应的pom文件就可以了;而package变更则可能会带来编译问题,升级过程需要用户修改代码。因此为了减少用户升级成本,让用户可以做到渐进式升级,2.7.0版本继续保留了一些常用基础API和SPI<code>com.alibaba.dubbo</code>的支持。</p> +<h4>API编程接口</h4> +<ul> +<li>注解</li> +</ul> +<table> +<thead> +<tr> +<th>注解</th> +<th>说明</th> +</tr> +</thead> +<tbody> +<tr> +<td>@Reference</td> +<td>消费端服务引用注解</td> +</tr> +<tr> +<td>@Service</td> +<td>提供端服务暴露注解</td> +</tr> +<tr> +<td>@EnableDubbo</td> +<td></td> +</tr> +<tr> +<td>其他常用Spring注解API</td> +<td></td> +</tr> +</tbody> +</table> +<ul> +<li>编程API</li> +</ul> +<table> +<thead> +<tr> +<th>API</th> +<th>说明</th> +</tr> +</thead> +<tbody> +<tr> +<td>ReferenceConfig</td> +<td>Service配置采集和引用编程接口</td> +</tr> +<tr> +<td>ServiceConfig</td> +<td>Service配置采集和暴露编程接口</td> +</tr> +<tr> +<td>ApplicationConfig</td> +<td>Application配置采集API</td> +</tr> +<tr> +<td>RegistryConfig</td> +<td>注册中心配置采集API</td> +</tr> +<tr> +<td>ConsumerConfig</td> +<td>提供端默认配置采集API</td> +</tr> +<tr> +<td>ProviderConfig</td> +<td>消费端默认配置采集API</td> +</tr> +<tr> +<td>ProtocolConfig</td> +<td>RPC协议配置采集API</td> +</tr> +<tr> +<td>ArcumentConfig</td> +<td>服务参数级配置采集API</td> +</tr> +<tr> +<td>MethodConfig</td> +<td>服务方法级配置采集API</td> +</tr> +<tr> +<td>ModuleConfig</td> +<td>服务治理Module配置采集API</td> +</tr> +<tr> +<td>MonitorConfig</td> +<td>监控配置采集API</td> +</tr> +<tr> +<td>RpcContext</td> +<td>编程上下文API</td> +</tr> +</tbody> +</table> +<h4>SPI扩展</h4> +<blockquote> +<p>如果公司内部有维护的自定义SPI扩展库,在业务工程升级到2.7.0之前,请务必先确保扩展库与2.7.0的兼容性。如果发现有兼容性问题,请通过修改包名引用的方式完成升级,并重新打包。</p> +</blockquote> +<table> +<thead> +<tr> +<th>SPI扩展点</th> +<th>说明</th> +</tr> +</thead> +<tbody> +<tr> +<td>Registry</td> +<td>包括<code>RegistryFactory</code>, <code>Registry</code> ,<code>RegistryService</code>等扩展点</td> +</tr> +<tr> +<td>Protocol</td> +<td>RPC协议扩展</td> +</tr> +<tr> +<td>Serialization</td> +<td>序列化协议扩展</td> +</tr> +<tr> +<td>Cluster</td> +<td>集群容错策略扩展,如Failover, Failfast等</td> +</tr> +<tr> +<td>Loadbalance</td> +<td>负载均衡策略扩展</td> +</tr> +<tr> +<td>Transporter</td> +<td>传输框架扩展,如Netty等</td> +</tr> +<tr> +<td>Monitor</td> +<td>监控中心扩展,包括MonitorFactory, Monitor, MonitorService等</td> +</tr> +<tr> +<td>Router</td> +<td>路由规则扩展</td> +</tr> +<tr> +<td>Filter</td> +<td>拦截器扩展</td> +</tr> +</tbody> +</table> +<h2>FAQ</h2> +<ol> +<li>升级后启动出现curator依赖报错</li> +</ol> +</div></section><footer class="footer-container"><div class="footer-body"><img src="/img/dubbo_gray.png"/><img class="apache" src="/img/apache_logo.png"/><div class="cols-container"><div class="col col-12"><h3>Disclaimer</h3><p>Apache Dubbo is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making [...] + <script src="https://f.alicdn.com/react/15.4.1/react-with-addons.min.js"></script> + <script src="https://f.alicdn.com/react/15.4.1/react-dom.min.js"></script> + <script> + window.rootPath = ''; + </script> + <script src="/build/documentation.js"></script> + <!-- Global site tag (gtag.js) - Google Analytics --> + <script async src="https://www.googletagmanager.com/gtag/js?id=UA-112489517-1"></script> + <script> + window.dataLayer = window.dataLayer || []; + function gtag(){dataLayer.push(arguments);} + gtag('js', new Date()); + + gtag('config', 'UA-112489517-1'); + </script> +</body> +</html> \ No newline at end of file diff --git a/zh-cn/docs/user/versions/version-270.json b/zh-cn/docs/user/versions/version-270.json index f3ee978..e1c2664 100644 --- a/zh-cn/docs/user/versions/version-270.json +++ b/zh-cn/docs/user/versions/version-270.json @@ -1,6 +1,6 @@ { "filename": "version-270.md", - "__html": "<h1>升级与可能的兼容性问题总结</h1>\n<p>环境要求:需要<strong>Java 8</strong>及以上版本。</p>\n<p>2.7.0版本在改造的过程中遵循了一个原则,即<strong>保持与低版本的兼容性,因此从功能层面来说它是与2.6.x及更低版本完全兼容的</strong>。这里所说的兼容性主要是和<a href=\"#%E5%8C%85%E5%90%8D%E6%94%B9%E9%80%A0\">包重命名</a>相关的,接下来会详细说明影响点。另外,虽然功能用法保持向后兼容,但参考本文能帮助您尽快用到2.7.0版本的新特性。</p>\n<h2>升级步骤</h2>\n<ol>\n<li>升级pom到2.7.0(以all-in-one依赖为例)。</li>\n</ol>\n<pre><code class=\"language-xml\"><span class=\"hljs-tag\"><<span class=\"hljs-name\">properties</span>></span>\n <spa [...] + "__html": "<h1>升级与可能的兼容性问题总结</h1>\n<p>环境要求:需要<strong>Java 8</strong>及以上版本。</p>\n<p>2.7.0版本在改造的过程中遵循了一个原则,即<strong>保持与低版本的兼容性,因此从功能层面来说它是与2.6.x及更低版本完全兼容的</strong>。这里所说的兼容性主要是和<a href=\"#%E5%8C%85%E5%90%8D%E6%94%B9%E9%80%A0\">包重命名</a>相关的,接下来会详细说明影响点。另外,虽然功能用法保持向后兼容,但参考本文能帮助您尽快用到2.7.0版本的新特性。</p>\n<h2>升级步骤</h2>\n<ol>\n<li>升级pom到2.7.0(以all-in-one依赖为例)。</li>\n</ol>\n<pre><code class=\"language-xml\"><span class=\"hljs-tag\"><<span class=\"hljs-name\">properties</span>></span>\n <spa [...] "link": "/zh-cn/docs/user/versions/version-270.html", "meta": {} } \ No newline at end of file