This is an automated email from the ASF dual-hosted git repository.

jerrick 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 9d6de5e  build
9d6de5e is described below

commit 9d6de5e08f17f3200c70b2f694c1eb5b208b2e53
Author: zhuyong <yong.z...@alibaba-inc.com>
AuthorDate: Fri Aug 10 16:17:52 2018 +0800

    build
---
 build/0d69326d69fd47b9d99a.js |  6 ++++++
 build/197de76506a1ddd84a4b.js |  6 ------
 build/364a8f548578cb3c9f5b.js |  6 ++++++
 build/74188657de05e5b92cf4.js |  6 ------
 build/7533f0a0e44a4367de8b.js |  6 ++++++
 build/87c67c0d7caf73d7e493.js |  6 ------
 build/8b66bddd9274404f5cad.js |  6 ------
 build/c3e013b93dbf5fac1c23.js |  6 ++++++
 build/c5ce7257df274bc595ec.js |  6 ------
 build/e52128c6c5682a86685a.js |  6 ++++++
 build/page.js                 |  2 +-
 md_json/blog.json             | 14 +++++++++++++-
 12 files changed, 44 insertions(+), 32 deletions(-)

diff --git a/build/0d69326d69fd47b9d99a.js b/build/0d69326d69fd47b9d99a.js
new file mode 100644
index 0000000..30ab02d
--- /dev/null
+++ b/build/0d69326d69fd47b9d99a.js
@@ -0,0 +1,6 @@
+webpackJsonp([1],[,,,,,,,,function(s,n,e){"use strict";function a(s){return 
s&&s.__esModule?s:{default:s}}function t(s,n){if(!(s instanceof n))throw new 
TypeError("Cannot call a class as a function")}function o(s,n){if(!s)throw new 
ReferenceError("this hasn't been initialised - super() hasn't been 
called");return!n||"object"!=typeof n&&"function"!=typeof n?s:n}function 
l(s,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression 
must either be null or a function, not "+ [...]
+  Copyright (c) 2017 Jed Watson.
+  Licensed under the MIT License (MIT), see
+  http://jedwatson.github.io/classnames
+*/
+!function(){"use strict";function e(){for(var 
s=[],n=0;n<arguments.length;n++){var a=arguments[n];if(a){var t=typeof 
a;if("string"===t||"number"===t)s.push(a);else 
if(Array.isArray(a)&&a.length){var l=e.apply(null,a);l&&s.push(l)}else 
if("object"===t)for(var p in a)o.call(a,p)&&a[p]&&s.push(p)}}return s.join(" 
")}var o={}.hasOwnProperty;void 
0!==s&&s.exports?(e.default=e,s.exports=e):(a=[],void 0!==(t=function(){return 
e}.apply(n,a))&&(s.exports=t))}()},function(s,n,e){"use strict";funct [...]
\ No newline at end of file
diff --git a/build/197de76506a1ddd84a4b.js b/build/197de76506a1ddd84a4b.js
deleted file mode 100644
index ef1c157..0000000
--- a/build/197de76506a1ddd84a4b.js
+++ /dev/null
@@ -1,6 +0,0 @@
-webpackJsonp([3],[,,,,,,,,,function(e,t,n){"use strict";function r(e){return 
e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new 
TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new 
ReferenceError("this hasn't been initialised - super() hasn't been 
called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function 
a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression 
must either be null or a function, not " [...]
-  Copyright (c) 2016 Jed Watson.
-  Licensed under the MIT License (MIT), see
-  http://jedwatson.github.io/classnames
-*/
-!function(){"use strict";function n(){for(var 
e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof 
r;if("string"===o||"number"===o)e.push(r);else 
if(Array.isArray(r))e.push(n.apply(null,r));else if("object"===o)for(var a in 
r)i.call(r,a)&&r[a]&&e.push(a)}}return e.join(" ")}var i={}.hasOwnProperty;void 
0!==e&&e.exports?e.exports=n:(r=[],void 0!==(o=function(){return 
n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";function 
r(e,t,r){var o=r.configurable,l= [...]
\ No newline at end of file
diff --git a/build/364a8f548578cb3c9f5b.js b/build/364a8f548578cb3c9f5b.js
new file mode 100644
index 0000000..e518342
--- /dev/null
+++ b/build/364a8f548578cb3c9f5b.js
@@ -0,0 +1,6 @@
+webpackJsonp([4],[,,,,,,,function(e,t,n){"use strict";function r(e){return 
e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new 
TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new 
ReferenceError("this hasn't been initialised - super() hasn't been 
called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function 
a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression 
must either be null or a function, not "+t [...]
+  Copyright (c) 2017 Jed Watson.
+  Licensed under the MIT License (MIT), see
+  http://jedwatson.github.io/classnames
+*/
+!function(){"use strict";function n(){for(var 
e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof 
r;if("string"===o||"number"===o)e.push(r);else 
if(Array.isArray(r)&&r.length){var a=n.apply(null,r);a&&e.push(a)}else 
if("object"===o)for(var l in r)i.call(r,l)&&r[l]&&e.push(l)}}return e.join(" 
")}var i={}.hasOwnProperty;void 
0!==e&&e.exports?(n.default=n,e.exports=n):(r=[],void 0!==(o=function(){return 
n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";funct [...]
\ No newline at end of file
diff --git a/build/74188657de05e5b92cf4.js b/build/74188657de05e5b92cf4.js
deleted file mode 100644
index d452d6a..0000000
--- a/build/74188657de05e5b92cf4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-webpackJsonp([1],[,,,,,,,,function(s,n,e){"use strict";function a(s){return 
s&&s.__esModule?s:{default:s}}function t(s,n){if(!(s instanceof n))throw new 
TypeError("Cannot call a class as a function")}function o(s,n){if(!s)throw new 
ReferenceError("this hasn't been initialised - super() hasn't been 
called");return!n||"object"!=typeof n&&"function"!=typeof n?s:n}function 
l(s,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression 
must either be null or a function, not "+ [...]
-  Copyright (c) 2016 Jed Watson.
-  Licensed under the MIT License (MIT), see
-  http://jedwatson.github.io/classnames
-*/
-!function(){"use strict";function e(){for(var 
s=[],n=0;n<arguments.length;n++){var a=arguments[n];if(a){var t=typeof 
a;if("string"===t||"number"===t)s.push(a);else 
if(Array.isArray(a))s.push(e.apply(null,a));else if("object"===t)for(var l in 
a)o.call(a,l)&&a[l]&&s.push(l)}}return s.join(" ")}var o={}.hasOwnProperty;void 
0!==s&&s.exports?s.exports=e:(a=[],void 0!==(t=function(){return 
e}.apply(n,a))&&(s.exports=t))}()},function(s,n,e){"use strict";function 
a(s,n,a){var t=a.configurable,p= [...]
\ No newline at end of file
diff --git a/build/7533f0a0e44a4367de8b.js b/build/7533f0a0e44a4367de8b.js
new file mode 100644
index 0000000..75d5966
--- /dev/null
+++ b/build/7533f0a0e44a4367de8b.js
@@ -0,0 +1,6 @@
+webpackJsonp([3],[,,,,,,,,,function(e,t,n){"use strict";function r(e){return 
e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new 
TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new 
ReferenceError("this hasn't been initialised - super() hasn't been 
called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function 
a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression 
must either be null or a function, not " [...]
+  Copyright (c) 2017 Jed Watson.
+  Licensed under the MIT License (MIT), see
+  http://jedwatson.github.io/classnames
+*/
+!function(){"use strict";function n(){for(var 
e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof 
r;if("string"===o||"number"===o)e.push(r);else 
if(Array.isArray(r)&&r.length){var a=n.apply(null,r);a&&e.push(a)}else 
if("object"===o)for(var l in r)i.call(r,l)&&r[l]&&e.push(l)}}return e.join(" 
")}var i={}.hasOwnProperty;void 
0!==e&&e.exports?(n.default=n,e.exports=n):(r=[],void 0!==(o=function(){return 
n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";funct [...]
\ No newline at end of file
diff --git a/build/87c67c0d7caf73d7e493.js b/build/87c67c0d7caf73d7e493.js
deleted file mode 100644
index 66a18ef..0000000
--- a/build/87c67c0d7caf73d7e493.js
+++ /dev/null
@@ -1,6 +0,0 @@
-webpackJsonp([2],[,,,,,,,,,,,function(e,t,n){"use strict";function r(e){return 
e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new 
TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new 
ReferenceError("this hasn't been initialised - super() hasn't been 
called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function 
a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression 
must either be null or a function, not [...]
-  Copyright (c) 2016 Jed Watson.
-  Licensed under the MIT License (MIT), see
-  http://jedwatson.github.io/classnames
-*/
-!function(){"use strict";function n(){for(var 
e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof 
r;if("string"===o||"number"===o)e.push(r);else 
if(Array.isArray(r))e.push(n.apply(null,r));else if("object"===o)for(var a in 
r)i.call(r,a)&&r[a]&&e.push(a)}}return e.join(" ")}var i={}.hasOwnProperty;void 
0!==e&&e.exports?e.exports=n:(r=[],void 0!==(o=function(){return 
n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";function 
r(e,t,r){var o=r.configurable,c= [...]
\ No newline at end of file
diff --git a/build/8b66bddd9274404f5cad.js b/build/8b66bddd9274404f5cad.js
deleted file mode 100644
index d347ef7..0000000
--- a/build/8b66bddd9274404f5cad.js
+++ /dev/null
@@ -1,6 +0,0 @@
-webpackJsonp([4],[,,,,,,,function(e,t,n){"use strict";function r(e){return 
e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new 
TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new 
ReferenceError("this hasn't been initialised - super() hasn't been 
called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function 
a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression 
must either be null or a function, not "+t [...]
-  Copyright (c) 2016 Jed Watson.
-  Licensed under the MIT License (MIT), see
-  http://jedwatson.github.io/classnames
-*/
-!function(){"use strict";function n(){for(var 
e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof 
r;if("string"===o||"number"===o)e.push(r);else 
if(Array.isArray(r))e.push(n.apply(null,r));else if("object"===o)for(var a in 
r)i.call(r,a)&&r[a]&&e.push(a)}}return e.join(" ")}var i={}.hasOwnProperty;void 
0!==e&&e.exports?e.exports=n:(r=[],void 0!==(o=function(){return 
n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";function 
r(e,t,r){var o=r.configurable,l= [...]
\ No newline at end of file
diff --git a/build/c3e013b93dbf5fac1c23.js b/build/c3e013b93dbf5fac1c23.js
new file mode 100644
index 0000000..7e41b89
--- /dev/null
+++ b/build/c3e013b93dbf5fac1c23.js
@@ -0,0 +1,6 @@
+webpackJsonp([0],[,,,,,,,,,,function(s,n,a){"use strict";function e(s){return 
s&&s.__esModule?s:{default:s}}function t(s,n){if(!(s instanceof n))throw new 
TypeError("Cannot call a class as a function")}function l(s,n){if(!s)throw new 
ReferenceError("this hasn't been initialised - super() hasn't been 
called");return!n||"object"!=typeof n&&"function"!=typeof n?s:n}function 
o(s,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression 
must either be null or a function, not  [...]
+  Copyright (c) 2017 Jed Watson.
+  Licensed under the MIT License (MIT), see
+  http://jedwatson.github.io/classnames
+*/
+!function(){"use strict";function a(){for(var 
s=[],n=0;n<arguments.length;n++){var e=arguments[n];if(e){var t=typeof 
e;if("string"===t||"number"===t)s.push(e);else 
if(Array.isArray(e)&&e.length){var o=a.apply(null,e);o&&s.push(o)}else 
if("object"===t)for(var r in e)l.call(e,r)&&e[r]&&s.push(r)}}return s.join(" 
")}var l={}.hasOwnProperty;void 
0!==s&&s.exports?(a.default=a,s.exports=a):(e=[],void 0!==(t=function(){return 
a}.apply(n,e))&&(s.exports=t))}()},function(s,n,a){"use strict";funct [...]
\ No newline at end of file
diff --git a/build/c5ce7257df274bc595ec.js b/build/c5ce7257df274bc595ec.js
deleted file mode 100644
index cff5452..0000000
--- a/build/c5ce7257df274bc595ec.js
+++ /dev/null
@@ -1,6 +0,0 @@
-webpackJsonp([0],[,,,,,,,,,,function(s,n,a){"use strict";function e(s){return 
s&&s.__esModule?s:{default:s}}function t(s,n){if(!(s instanceof n))throw new 
TypeError("Cannot call a class as a function")}function l(s,n){if(!s)throw new 
ReferenceError("this hasn't been initialised - super() hasn't been 
called");return!n||"object"!=typeof n&&"function"!=typeof n?s:n}function 
o(s,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression 
must either be null or a function, not  [...]
-  Copyright (c) 2016 Jed Watson.
-  Licensed under the MIT License (MIT), see
-  http://jedwatson.github.io/classnames
-*/
-!function(){"use strict";function a(){for(var 
s=[],n=0;n<arguments.length;n++){var e=arguments[n];if(e){var t=typeof 
e;if("string"===t||"number"===t)s.push(e);else 
if(Array.isArray(e))s.push(a.apply(null,e));else if("object"===t)for(var o in 
e)l.call(e,o)&&e[o]&&s.push(o)}}return s.join(" ")}var l={}.hasOwnProperty;void 
0!==s&&s.exports?s.exports=a:(e=[],void 0!==(t=function(){return 
a}.apply(n,e))&&(s.exports=t))}()},function(s,n,a){"use strict";function 
e(s,n,e){var t=e.configurable,r= [...]
\ No newline at end of file
diff --git a/build/e52128c6c5682a86685a.js b/build/e52128c6c5682a86685a.js
new file mode 100644
index 0000000..4228d84
--- /dev/null
+++ b/build/e52128c6c5682a86685a.js
@@ -0,0 +1,6 @@
+webpackJsonp([2],[,,,,,,,,,,,function(e,t,n){"use strict";function r(e){return 
e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new 
TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new 
ReferenceError("this hasn't been initialised - super() hasn't been 
called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function 
a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression 
must either be null or a function, not [...]
+  Copyright (c) 2017 Jed Watson.
+  Licensed under the MIT License (MIT), see
+  http://jedwatson.github.io/classnames
+*/
+!function(){"use strict";function n(){for(var 
e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof 
r;if("string"===o||"number"===o)e.push(r);else 
if(Array.isArray(r)&&r.length){var a=n.apply(null,r);a&&e.push(a)}else 
if("object"===o)for(var c in r)i.call(r,c)&&r[c]&&e.push(c)}}return e.join(" 
")}var i={}.hasOwnProperty;void 
0!==e&&e.exports?(n.default=n,e.exports=n):(r=[],void 0!==(o=function(){return 
n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";funct [...]
\ No newline at end of file
diff --git a/build/page.js b/build/page.js
index 5ca2cde..ddef2f1 100644
--- a/build/page.js
+++ b/build/page.js
@@ -1 +1 @@
-!function(n){function o(t){if(e[t])return e[t].exports;var 
r=e[t]={i:t,l:!1,exports:{}};return 
n[t].call(r.exports,r,r.exports,o),r.l=!0,r.exports}var 
t=window.webpackJsonp;window.webpackJsonp=function(o,e,a){for(var 
i,d,l=0,c=[];l<o.length;l++)d=o[l],r[d]&&c.push(r[d][0]),r[d]=0;for(i in 
e)Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i]);for(t&&t(o,e,a);c.length;)c.shift()()};var
 e={},r={5:0};o.e=function(n){function 
t(){d.onerror=d.onload=null,clearTimeout(l);var o=r[n];0!==o&&(o [...]
\ No newline at end of file
+!function(n){function o(t){if(e[t])return e[t].exports;var 
r=e[t]={i:t,l:!1,exports:{}};return 
n[t].call(r.exports,r,r.exports,o),r.l=!0,r.exports}var 
t=window.webpackJsonp;window.webpackJsonp=function(o,e,a){for(var 
i,d,l=0,c=[];l<o.length;l++)d=o[l],r[d]&&c.push(r[d][0]),r[d]=0;for(i in 
e)Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i]);for(t&&t(o,e,a);c.length;)c.shift()()};var
 e={},r={5:0};o.e=function(n){function 
t(){d.onerror=d.onload=null,clearTimeout(l);var o=r[n];0!==o&&(o [...]
\ No newline at end of file
diff --git a/md_json/blog.json b/md_json/blog.json
index 4daa03e..330222f 100644
--- a/md_json/blog.json
+++ b/md_json/blog.json
@@ -2,7 +2,7 @@
   "zh-cn": [
     {
       "filename": "Prepare-an-Apache-release.md",
-      "__html": "<h2>理解Apache发布的内容和流程</h2>\n<p>总的来说,Source 
Release是Apache关注的重点,也是发布的必须内容;而Binary 
Release是可选项,Dubbo可以选择是否发布二进制包到Apache仓库或者发布到Maven中央仓库。</p>\n<p>请参考以下链接,找到更多关于ASF的发布指南:</p>\n<ul>\n<li><a
 href=\"http://www.apache.org/dev/release-publishing\";>Apache Release 
Guide</a></li>\n<li><a href=\"http://www.apache.org/dev/release.html\";>Apache 
Release Policy</a></li>\n<li><a 
href=\"http://www.apache.org/dev/publishing-maven-artifacts.html\";>Maven 
Release Info</a></li>\n</ul>\n<h2>本地构建环 [...]
+      "__html": "<h2>理解Apache发布的内容和流程</h2>\n<p>总的来说,Source 
Release是Apache关注的重点,也是发布的必须内容;而Binary 
Release是可选项,Dubbo可以选择是否发布二进制包到Apache仓库或者发布到Maven中央仓库。</p>\n<p>请参考以下链接,找到更多关于ASF的发布指南:</p>\n<ul>\n<li><a
 href=\"http://www.apache.org/dev/release-publishing\";>Apache Release 
Guide</a></li>\n<li><a href=\"http://www.apache.org/dev/release.html\";>Apache 
Release Policy</a></li>\n<li><a 
href=\"http://www.apache.org/dev/publishing-maven-artifacts.html\";>Maven 
Release Info</a></li>\n</ul>\n<h2>本地构建环 [...]
     },
     {
       "filename": "dubbo-101.md",
@@ -17,14 +17,26 @@
       "__html": "<h2>Dubbo基本用法-Dubbo 
Provider配置</h2>\n<h1>Dubbo基本用法</h1>\n<p>本章节主要讲述如何配置dubbo,按照配置方式上分,可以分为:XML配置,properties方式配置,注解方式配置,API调用方式配置。\n按照功能角度进行划分,可以分为Dubbo
 Provider和Dubbo Consumer。接下来章节中,分别对dubbo provider和Dubbo 
consumer进行讲解。</p>\n<h2>Dubbo Provider配置</h2>\n<h3>Provider 
配置详解</h3>\n<p>配置Dubbo 
Provider有4种方式:XML配置,properties方式配置,API调用方式配置,注解方式配置。</p>\n<h4>XML配置</h4>\n<h6>最简单的配置的样例:</h6>\n<pre><code>&lt;?xml
 version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\n&lt;beans xmlns [...]
     },
     {
+      "filename": "dubbo-generic-invoke.md",
+      "__html": 
"<h1>Dubbo的泛化调用</h1>\n<p>以下几种场景可以考虑使用泛化调用:</p>\n<ul>\n<li>服务测试平台</li>\n<li>API 
服务网关</li>\n</ul>\n<p>泛化调用主要用于消费端没有 API 接口的情况;不需要引入接口 jar 包,而是直接通过 
GenericService 接口来发起服务调用,参数及返回值中的所有 POJO 均用 <code>Map</code> 
表示。泛化调用对于服务端无需关注,按正常服务进行暴露即可。</p>\n<p>下面来看看消费端如何使用泛化调用进行服务调用。</p>\n<h4>通过 
Spring XML 配置进行泛化调用</h4>\n<p>在 Spring 配置申明 
<code>generic=&quot;true&quot;</code>,如:</p>\n<pre><code 
class=\"language-xml\"><span class=\"hljs-tag\">&lt;<span 
class=\"hljs-name\">dubbo:reference</s [...]
+    },
+    {
       "filename": "dubbo-invoke.md",
       "__html": "<h1>Dubbo 关于同步/异步调用的几种方式</h1>\n<p>我们知道,Dubbo 
缺省协议采用单一长连接,底层实现是 Netty 的 NIO 异步通讯机制;基于这种机制,Dubbo 
实现了以下几种调用方式:</p>\n<ul>\n<li>同步调用</li>\n<li>异步调用</li>\n<li>参数回调</li>\n<li>事件通知</li>\n</ul>\n<h3>同步调用</h3>\n<p>同步调用是一种阻塞式的调用方式,即
 Consumer 端代码一直阻塞等待,直到 Provider 
端返回为止;</p>\n<p>通常,一个典型的同步调用过程如下:</p>\n<ol>\n<li>Consumer 业务线程调用远程接口,向 Provider 
发送请求,同时当前线程处于<code>阻塞</code>状态;</li>\n<li>Provider 接到 Consumer 
的请求后,开始处理请求,将结果返回给 Consumer;</li>\n<li>Consumer 
收到结果后,当前线程继续往后执行。</li>\n</ol>\n< [...]
     },
     {
+      "filename": "dubbo-loadbalance.md",
+      "__html": ""
+    },
+    {
       "filename": "dubbo-meetup-shanghai-jun-23rd-2018.md",
       "__html": 
"<h2>第二届Dubbo开发者沙龙在上海成功举办</h2>\n<p>第二届Dubbo开发者沙龙在上海成功举办,超过700位开发者报名,现场参与人数300+,通过阿里云天池、云栖社区、大咖说引导线上直播观看次数10000+</p>\n<p>分享嘉宾及PPT:</p>\n<ul>\n<li>朱勇:
 Dubbo开源现状与未来规划 (中文) <a 
href=\"https://github.com/dubbo/awesome-dubbo/blob/master/slides/meetup/201806%40Shanghai/dubbo-status-and-roadmap.pdf\";>slides</a></li>\n<li>小马哥:
 Dubbo Cloud Native 之路的实践与思考 (中文) <a 
href=\"https://github.com/dubbo/awesome-dubbo/blob/master/slides/meetup/201806%40Shanghai/dubbo-cloud-native-practices-an
 [...]
     },
     {
+      "filename": "dubbo-new-async.md",
+      "__html": ""
+    },
+    {
       "filename": "dubbo-zk.md",
       "__html": "<h1>在 Dubbo 应用中使用 Zookeeper</h1>\n<h2>Zookeeper 
介绍</h2>\n<h3>基本概念</h3>\n<p>在现代的分布式应用中,往往会出现节点和节点之间的协调问题,其中就包括了:选主、集群管理、分布式锁、分布式配置管理、统一命名服务、状态同步等诉求。<a
 href=\"https://zookeeper.apache.org\";>Apache 
Zookeeper</a>,正如它的名字所暗示的那样,<em>动物园管理员</em>,就是为了解决这些诉求的一个分布式协调服务框架。</p>\n<p>为了保证高可用,ZooKeeper
 本身也可以部署成集群模式,称之为 <em>ZooKeeper ensemble</em>。ZooKeeper 集群中始终确保其中的一台为 leader 
的角色,并通过 <em>ZAB (Zookeeper Atomic Broadcast Protocol) <sup 
class=\"footnote-ref\"><a href=\"#fn1\" id=\"fnref1\ [...]
     },

Reply via email to