blob: bfdf93e75e383930eec7c4d9d27022eadc2705c0 [file] [log] [blame]
<!doctype html><html lang=zh-cn class=no-js><head class=live-site><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://cn.dubbo.apache.org/zh-cn/tags/java/><script>var _hmt=_hmt||[];(function(){var e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta http-equiv=Content-Security-Policy content="frame-src *"><meta name=generator content="Hugo 0.122.0"><link rel=alternate type=application/rss+xml href=https://cn.dubbo.apache.org/zh-cn/tags/java/index.xml><link rel="shortcut icon" type=image/png href=/imgs/favicon.png><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=manifest href=/manifest.webmanifest><title>Java | Apache Dubbo</title><meta property="og:title" content="Java">
<meta property="og:description" content="Apache Dubbo 官方网站"><meta property="og:type" content="website"><meta property="og:url" content="https://cn.dubbo.apache.org/zh-cn/tags/java/"><meta itemprop=name content="Java"><meta itemprop=description content="Apache Dubbo 官方网站"><meta name=twitter:card content="summary"><meta name=twitter:title content="Java"><meta name=twitter:description content="Apache Dubbo 官方网站"><script async src="https://www.googletagmanager.com/gtag/js?id=G-NM6FFMT51J"></script><script>var doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","G-NM6FFMT51J",{anonymize_ip:!1})}</script><link rel=preload href=/scss/main.min.f77e221bcdbe0cadb996060fe82063c747b60c229a1f8bbf0ee529adbadd84fa.css as=style><link href=/scss/main.min.f77e221bcdbe0cadb996060fe82063c747b60c229a1f8bbf0ee529adbadd84fa.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script><meta name=theme-color content="#326ce5"><link rel=stylesheet href=/css/feature-states.css><meta name=description content><meta property="og:description" content><meta name=twitter:description content><meta property="og:url" content="https://cn.dubbo.apache.org/zh-cn/tags/java/"><meta property="og:title" content="Java"><meta name=twitter:title content="Java"><meta name=twitter:image:alt content="Apache Dubbo"><meta property="og:type" content="article"><meta name=viewport content="width=device-width"><script async defer src=/js/github-buttons.js></script><link href=/css/community.css rel=stylesheet><link href=/css/contactus.css rel=stylesheet><link href=/css/language.css rel=stylesheet><script src=/js/script.js></script></head><body class=td-term><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar" data-auto-burger=primary><a class=navbar-brand href=/zh-cn/><span class=navbar-logo></span><span class="text-uppercase font-weight-bold">Apache Dubbo</span></a><div class="td-navbar-nav-scroll ml-md-auto" id=main_navbar><ul class="navbar-nav mt-2 mt-lg-0"><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/overview/home/><span>文档</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/blog/><span>博客</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/download/><span>版本发布</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/contact/><span>联系社区</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=https://start.dubbo.apache.org/bootstrap.html target=_blank><span>Initializer</span><i class='fas fa-external-link-alt'></i></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/github/><span>Github</span><i class='fa-brands fa-github'></i></a></li><li class="nav-item dropdown d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdownMenuLink role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class="dropdown-menu dropdown-menu-right" aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li><li class="nav-item dropdown d-lg-block"><div class="nav-item d-none d-lg-block"></div></li></ul></div></nav></header><div class=td-outer><main role=main class=td-main><div class=td-content><main class=taxonomy-taxonomy-page><h1>Tag: <span>Java</span></h1><div></div><div><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2023/06/28/%E8%B5%B0%E5%90%91-native-%E5%8C%96springdubbo-aot-%E6%8A%80%E6%9C%AF%E7%A4%BA%E4%BE%8B%E4%B8%8E%E5%8E%9F%E7%90%86%E8%AE%B2%E8%A7%A3/>走向 Native 化:Spring&amp;Dubbo AOT 技术示例与原理讲解</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/integration/>生态集成</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2023/06/28/%E8%B5%B0%E5%90%91-native-%E5%8C%96springdubbo-aot-%E6%8A%80%E6%9C%AF%E7%A4%BA%E4%BE%8B%E4%B8%8E%E5%8E%9F%E7%90%86%E8%AE%B2%E8%A7%A3/>走向 Native 化:Dubbo AOT 正式发布</a></li></ol></nav><p>本文讲解了 GraavlVM 的基本工作原理,Native Image 的构建方式,如何使用 Dubbo AOT 构建打包静态化的 Dubbo 应用,解决应用“冷启动”慢、内存占用高、预热时间长等问题。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/native-image/ data-taxonomy-term=native-image><span class=taxonomy-label>Native Image</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/graalvm/ data-taxonomy-term=graalvm><span class=taxonomy-label>GraalVM</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2023/04/28/%E5%BC%95%E8%A8%80/>引言</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/metrics/>dubbo-metrics 指标模块源码浅析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2023/04/28/%E5%BC%95%E8%A8%80/>0-引言</a></li></ol></nav><p>Dubbo 指标模块源码分析-引言</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2023/04/28/1-%E6%8C%87%E6%A0%87%E6%A0%B7%E6%9C%AC%E7%9A%84%E6%94%B6%E9%9B%86%E4%B8%8E%E5%AD%98%E5%82%A8/>1-指标样本的收集与存储</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/metrics/>dubbo-metrics 指标模块源码浅析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2023/04/28/1-%E6%8C%87%E6%A0%87%E6%A0%B7%E6%9C%AC%E7%9A%84%E6%94%B6%E9%9B%86%E4%B8%8E%E5%AD%98%E5%82%A8/>1-指标样本的收集与存储</a></li></ol></nav><p>Dubbo 指标模块源码分析-指标样本的收集与存储</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2023/04/28/2-%E6%8C%87%E6%A0%87%E6%94%B6%E9%9B%86%E5%99%A8%E7%9A%84%E6%8C%87%E6%A0%87%E9%87%87%E9%9B%86%E6%B5%81%E7%A8%8B/>2-指标收集器的指标采集流程</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/metrics/>dubbo-metrics 指标模块源码浅析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2023/04/28/2-%E6%8C%87%E6%A0%87%E6%94%B6%E9%9B%86%E5%99%A8%E7%9A%84%E6%8C%87%E6%A0%87%E9%87%87%E9%9B%86%E6%B5%81%E7%A8%8B/>2-指标收集器的指标采集流程</a></li></ol></nav><p>Dubbo 指标模块源码分析-指标收集器的指标采集流程</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2023/04/28/3-%E6%8C%87%E6%A0%87%E7%9B%91%E5%90%AC%E6%B3%A8%E5%86%8C%E6%A2%B3%E7%90%86/>3-指标监听注册梳理</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/metrics/>dubbo-metrics 指标模块源码浅析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2023/04/28/3-%E6%8C%87%E6%A0%87%E7%9B%91%E5%90%AC%E6%B3%A8%E5%86%8C%E6%A2%B3%E7%90%86/>3-指标监听注册梳理</a></li></ol></nav><p>Dubbo 指标模块源码分析-指标监听注册梳理</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2023/04/28/4-%E6%8C%87%E6%A0%87%E8%BD%AC%E6%8D%A2%E4%B8%8E%E5%AF%BC%E5%87%BA/>4-指标转换与导出</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/metrics/>dubbo-metrics 指标模块源码浅析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2023/04/28/4-%E6%8C%87%E6%A0%87%E8%BD%AC%E6%8D%A2%E4%B8%8E%E5%AF%BC%E5%87%BA/>4-指标转换与导出</a></li></ol></nav><p>Dubbo 指标模块源码分析-指标转换与导出</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2023/01/05/dubbo-%E8%BF%9E%E6%8E%A5%E5%BC%82%E6%9E%84%E5%BE%AE%E6%9C%8D%E5%8A%A1%E4%BD%93%E7%B3%BB-%E5%A4%9A%E5%8D%8F%E8%AE%AE%E5%A4%9A%E6%B3%A8%E5%86%8C%E4%B8%AD%E5%BF%83/>Dubbo 连接异构微服务体系 - 多协议&多注册中心</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2023/01/05/dubbo-%E8%BF%9E%E6%8E%A5%E5%BC%82%E6%9E%84%E5%BE%AE%E6%9C%8D%E5%8A%A1%E4%BD%93%E7%B3%BB-%E5%A4%9A%E5%8D%8F%E8%AE%AE%E5%A4%9A%E6%B3%A8%E5%86%8C%E4%B8%AD%E5%BF%83/>Dubbo 连接异构微服务体系 - 多协议&多注册中心</a></li></ol></nav><p>本文介绍了 Dubbo 的多协议、多注册中心支持方案,以及如何用它们实现多协议共存、多协议互通、多协议迁移等能力。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/12/28/dubbo-3-%E4%B9%8B-triple-%E6%B5%81%E6%8E%A7%E5%8F%8D%E5%8E%8B%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90/>Dubbo 3 之 Triple 流控反压原理解析</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/12/28/dubbo-3-%E4%B9%8B-triple-%E6%B5%81%E6%8E%A7%E5%8F%8D%E5%8E%8B%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90/>Dubbo 3 之 Triple 流控反压原理解析</a></li></ol></nav><p>一文了解 Dubbo 3 中基于Triple 协议实现的流控反压原理。。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/12/19/triple-%E5%8D%8F%E8%AE%AE%E6%94%AF%E6%8C%81-java-%E5%BC%82%E5%B8%B8%E5%9B%9E%E4%BC%A0%E7%9A%84%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0/>Triple 协议支持 Java 异常回传的设计与实现</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/12/19/triple-%E5%8D%8F%E8%AE%AE%E6%94%AF%E6%8C%81-java-%E5%BC%82%E5%B8%B8%E5%9B%9E%E4%BC%A0%E7%9A%84%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0/>Triple 协议支持 Java 异常回传的设计与实现</a></li></ol></nav><p>一文了解 Dubbo 3 中 Triple 协议支持 Java 异常回传的设计与实现</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/09/05/proxyless-mesh%E5%9C%A8dubbo%E4%B8%AD%E7%9A%84%E5%AE%9E%E8%B7%B5/>Proxyless Mesh在Dubbo中的实践</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/09/05/proxyless-mesh%E5%9C%A8dubbo%E4%B8%AD%E7%9A%84%E5%AE%9E%E8%B7%B5/>Proxyless Mesh在Dubbo中的实践</a></li></ol></nav><p>Proxyless 模式是指 Dubbo 直接与 Istiod 通信,通过 xDS 协议实现服务发现和服务治理等能力。本文将带领大家熟悉 Dubbo Proxyless Mesh。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/22/22-dubbo3%E6%B6%88%E8%B4%B9%E8%80%85%E8%87%AA%E5%8A%A8%E6%84%9F%E5%BA%94%E5%86%B3%E7%AD%96%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E5%8E%9F%E7%90%86/>22-Dubbo3消费者自动感应决策应用级服务发现原理</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/22/22-dubbo3%E6%B6%88%E8%B4%B9%E8%80%85%E8%87%AA%E5%8A%A8%E6%84%9F%E5%BA%94%E5%86%B3%E7%AD%96%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E5%8E%9F%E7%90%86/>22-Dubbo3消费者自动感应决策应用级服务发现原理</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] Dubbo3消费者自动感应决策应用级服务发现原理 。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/21/21-dubbo3%E6%B6%88%E8%B4%B9%E8%80%85%E5%BC%95%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%85%A5%E5%8F%A3/>21-Dubbo3消费者引用服务入口</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/21/21-dubbo3%E6%B6%88%E8%B4%B9%E8%80%85%E5%BC%95%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%85%A5%E5%8F%A3/>21-Dubbo3消费者引用服务入口</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] Dubbo3消费者引用服务入口 。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/20/20-dubbo3%E6%9C%8D%E5%8A%A1%E5%BC%95%E7%94%A8%E9%85%8D%E7%BD%AEreferenceconfig/>20-Dubbo3服务引用配置ReferenceConfig</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/20/20-dubbo3%E6%9C%8D%E5%8A%A1%E5%BC%95%E7%94%A8%E9%85%8D%E7%BD%AEreferenceconfig/>20-Dubbo3服务引用配置ReferenceConfig</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] 消费者创建的第一步就是先进行消费者信息的配置对应类型为ReferenceConfig,这里详细来看ReferenceConfig包含哪些信息?。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/19/19-%E9%87%8D%E6%96%B0%E6%9D%A5%E8%BF%87%E4%BB%8E%E4%B8%80%E4%B8%AA%E6%9C%8D%E5%8A%A1%E6%B6%88%E8%B4%B9%E8%80%85%E7%9A%84demo%E8%AF%B4%E8%B5%B7/>19 重新来过从一个服务消费者的Demo说起</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/19/19-%E9%87%8D%E6%96%B0%E6%9D%A5%E8%BF%87%E4%BB%8E%E4%B8%80%E4%B8%AA%E6%9C%8D%E5%8A%A1%E6%B6%88%E8%B4%B9%E8%80%85%E7%9A%84demo%E8%AF%B4%E8%B5%B7/>19 重新来过从一个服务消费者的Demo说起</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] 重新来过从一个服务消费者的Demo说起。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/18/18-dubbo3%E5%85%83%E6%95%B0%E6%8D%AE%E6%9C%8D%E5%8A%A1metadataservice%E7%9A%84%E5%AF%BC%E5%87%BA/>18-Dubbo3元数据服务MetadataService的导出</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/18/18-dubbo3%E5%85%83%E6%95%B0%E6%8D%AE%E6%9C%8D%E5%8A%A1metadataservice%E7%9A%84%E5%AF%BC%E5%87%BA/>18-Dubbo3元数据服务MetadataService的导出</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] 使用者查询提供者的元数据信息,以列出接口和每个接口的配置,控制台(dubbo admin)查询特定进程的元数据,或聚合所有进程的数据。在Dubbo2.x的时候,所有的服务数据都是以接口的形式注册在注册中心。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/17/17-dubbo%E6%9C%8D%E5%8A%A1%E6%8F%90%E4%BE%9B%E8%80%85%E7%9A%84%E5%8F%8C%E6%B3%A8%E5%86%8C%E5%8E%9F%E7%90%86/>17-Dubbo服务提供者的双注册原理</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/17/17-dubbo%E6%9C%8D%E5%8A%A1%E6%8F%90%E4%BE%9B%E8%80%85%E7%9A%84%E5%8F%8C%E6%B3%A8%E5%86%8C%E5%8E%9F%E7%90%86/>17-Dubbo服务提供者的双注册原理</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] 对于直接使用Dubbo3的用户还好,可以仅仅开启应用级注册,但是对于Dubbo2.x的用户升级到Dubbo3的用户来说前期都是要开启双注册来慢慢迁移的,既注册传统的接口信息到注册中心,又注册应用信息到注册中心,同时注册应用与接口关系的元数据信息。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/16/16-%E6%A8%A1%E5%9D%97%E5%8F%91%E5%B8%83%E5%99%A8%E5%8F%91%E5%B8%83%E6%9C%8D%E5%8A%A1%E5%85%A8%E8%BF%87%E7%A8%8B/>16-模块发布器发布服务全过程</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/16/16-%E6%A8%A1%E5%9D%97%E5%8F%91%E5%B8%83%E5%99%A8%E5%8F%91%E5%B8%83%E6%9C%8D%E5%8A%A1%E5%85%A8%E8%BF%87%E7%A8%8B/>16-模块发布器发布服务全过程</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] DefaultModuleDeployer模块器启动的流程,其中在start代码的模版方法中开始了导出服务的功能,。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/15/15-dubbo%E7%9A%84%E4%B8%89%E5%A4%A7%E4%B8%AD%E5%BF%83%E4%B9%8B%E5%85%83%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/>15-Dubbo的三大中心之元数据中心源码解析</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/15/15-dubbo%E7%9A%84%E4%B8%89%E5%A4%A7%E4%B8%AD%E5%BF%83%E4%B9%8B%E5%85%83%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/>15-Dubbo的三大中心之元数据中心源码解析</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] Dubbo 3 会需要一个元数据中心来维护RPC服务与应用的映射关系(即接口与应用的映射关系),因为如果采用了应用级别的服务发现和服务注册,在注册中心中将采用“应用 —— 实例列表”结构的数据组织形式,不再是以往的“接口 —— 实例列表”结构的数据组织形式,而以往用接口级别的服务注册和服务发现的应用服务在迁移到应用级别时,得不到接口与应用之间的对应关系,从而无法从注册中心得到实例列表信息,所以Dubbo为了兼容这种场景,在Provider端启动时,会往元数据中心存储接口与应用的映射关系。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/14/14-dubbo%E9%85%8D%E7%BD%AE%E5%8A%A0%E8%BD%BD%E5%85%A8%E8%A7%A3%E6%9E%90/>14-Dubbo配置加载全解析</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/14/14-dubbo%E9%85%8D%E7%BD%AE%E5%8A%A0%E8%BD%BD%E5%85%A8%E8%A7%A3%E6%9E%90/>14-Dubbo配置加载全解析</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] Dubbo框架的配置项比较繁多,为了更好地管理各种配置,将其按照用途划分为不同的组件,最终所有配置项都会汇聚到URL中,传递给后续处理模块。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/13/13-dubbo%E7%9A%84%E4%B8%89%E5%A4%A7%E4%B8%AD%E5%BF%83%E4%B9%8B%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83/>13-Dubbo的三大中心之配置中心</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/13/13-dubbo%E7%9A%84%E4%B8%89%E5%A4%A7%E4%B8%AD%E5%BF%83%E4%B9%8B%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83/>13-Dubbo的三大中心之配置中心</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] 一套统一的,通用的管理配置机制是不可缺少的主要组成部分。常见的做法就是通过配置服务器进行管理。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/12/12-%E5%85%A8%E5%B1%80%E8%A7%86%E9%87%8E%E6%9D%A5%E7%9C%8Bdubbo3%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%90%AF%E5%8A%A8%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/>12 全局视野来看Dubbo3的服务启动生命周期</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/12/12-%E5%85%A8%E5%B1%80%E8%A7%86%E9%87%8E%E6%9D%A5%E7%9C%8Bdubbo3%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%90%AF%E5%8A%A8%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/>12 全局视野来看Dubbo3的服务启动生命周期</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] 全局视野来看Dubbo3的服务启动生命周期,了解了Dubbo3的启动生命周期,可以有效的了解整个Dubbo应用的启动阶段。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/11/11-dubbo%E5%90%AF%E5%8A%A8%E5%99%A8dubbobootstrap%E6%B7%BB%E5%8A%A0%E5%8D%8F%E8%AE%AE%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AFprotocolconfig/>11-Dubbo启动器DubboBootstrap添加协议配置信息ProtocolConfig</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/11/11-dubbo%E5%90%AF%E5%8A%A8%E5%99%A8dubbobootstrap%E6%B7%BB%E5%8A%A0%E5%8D%8F%E8%AE%AE%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AFprotocolconfig/>11-Dubbo启动器DubboBootstrap添加协议配置信息ProtocolConfig</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] ProtocolConfig协议配置是RPC调用过程中一些必要信息的基础。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/10/10-dubbo%E5%90%AF%E5%8A%A8%E5%99%A8dubbobootstrap%E6%B7%BB%E5%8A%A0%E6%B3%A8%E5%86%8C%E4%B8%AD%E5%BF%83%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AFregistryconfig/>10-Dubbo启动器DubboBootstrap添加注册中心配置信息RegistryConfig</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/10/10-dubbo%E5%90%AF%E5%8A%A8%E5%99%A8dubbobootstrap%E6%B7%BB%E5%8A%A0%E6%B3%A8%E5%86%8C%E4%B8%AD%E5%BF%83%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AFregistryconfig/>10-Dubbo启动器DubboBootstrap添加注册中心配置信息RegistryConfig</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] RegistryConfig注册中心配置包含了一些比较基础的注册信息相关的配置信息,注册中心是服务在分布式场景下的基础服务。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/09/9-dubbo%E5%90%AF%E5%8A%A8%E5%99%A8dubbobootstrap%E6%B7%BB%E5%8A%A0%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AFapplicationconfig/>9-Dubbo启动器DubboBootstrap添加应用程序的配置信息ApplicationConfig</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/09/9-dubbo%E5%90%AF%E5%8A%A8%E5%99%A8dubbobootstrap%E6%B7%BB%E5%8A%A0%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AFapplicationconfig/>9-Dubbo启动器DubboBootstrap添加应用程序的配置信息ApplicationConfig</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] ApplicationConfig应用配置包含了一些比较基础的配置信息。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/08/8-dubbo%E5%90%AF%E5%8A%A8%E5%99%A8dubbobootstrap%E5%80%9F%E5%8A%A9%E5%8F%8C%E9%87%8D%E6%A0%A1%E9%AA%8C%E9%94%81%E7%9A%84%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F%E8%BF%9B%E8%A1%8C%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%88%9D%E5%A7%8B%E5%8C%96/>8-Dubbo启动器DubboBootstrap借助双重校验锁的单例模式进行对象的初始化</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/08/8-dubbo%E5%90%AF%E5%8A%A8%E5%99%A8dubbobootstrap%E5%80%9F%E5%8A%A9%E5%8F%8C%E9%87%8D%E6%A0%A1%E9%AA%8C%E9%94%81%E7%9A%84%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F%E8%BF%9B%E8%A1%8C%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%88%9D%E5%A7%8B%E5%8C%96/>8-Dubbo启动器DubboBootstrap借助双重校验锁的单例模式进行对象的初始化</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] 启动器是为使用者提供简化的API功能来进行Dubbo应用的启动,手写Dubbo服务的启动使用启动器是必要的。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/07/7-dubbo%E7%9A%84spi%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E4%B9%8B%E8%87%AA%E5%8A%A8%E6%BF%80%E6%B4%BB%E6%89%A9%E5%B1%95activate%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/>7-Dubbo的SPI扩展机制之自动激活扩展Activate源码解析</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/07/7-dubbo%E7%9A%84spi%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E4%B9%8B%E8%87%AA%E5%8A%A8%E6%BF%80%E6%B4%BB%E6%89%A9%E5%B1%95activate%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/>7-Dubbo的SPI扩展机制之自动激活扩展Activate源码解析</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] @Activate可用于在有多个实现时加载某些筛选器扩展,一般带有同种类型多个扩展都要执行的情况,比如过滤器。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/06/06-dubbo%E7%9A%84spi%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E4%B9%8B%E6%99%AE%E9%80%9A%E6%89%A9%E5%B1%95%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%88%9B%E5%BB%BA%E4%B8%8Ewrapper%E6%9C%BA%E5%88%B6%E7%9A%84%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/>06-Dubbo的SPI扩展机制之普通扩展对象的创建与Wrapper机制的源码解析</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/06/06-dubbo%E7%9A%84spi%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E4%B9%8B%E6%99%AE%E9%80%9A%E6%89%A9%E5%B1%95%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%88%9B%E5%BB%BA%E4%B8%8Ewrapper%E6%9C%BA%E5%88%B6%E7%9A%84%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/>6-Dubbo的SPI扩展机制之普通扩展对象的创建与Wrapper机制的源码解析</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] 了解Spring的同学可能比较熟悉AOP机制的逻辑,Dubbo Wrapper机制就是类似AOP这样的切面机制用来增强扩展方法,Wrapper机制,即扩展点自动包装。Wrapper 类同样实现了扩展点接口,但是 Wrapper 不是扩展点的真正实现。它的用途主要是用于从 ExtensionLoader 返回扩展点时,包装在真正的扩展点实现外</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/05/05-%E8%87%AA%E9%80%82%E5%BA%94%E6%89%A9%E5%B1%95%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%88%9B%E5%BB%BAgetadaptiveextension%E6%96%B9%E6%B3%95/>05-自适应扩展对象的创建getAdaptiveExtension方法</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/05/05-%E8%87%AA%E9%80%82%E5%BA%94%E6%89%A9%E5%B1%95%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%88%9B%E5%BB%BAgetadaptiveextension%E6%96%B9%E6%B3%95/>5-自适应扩展对象的创建getAdaptiveExtension方法</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] Dubbo是一个微内核框架,所有的实现都是通过扩展机制来实现的,了解扩展加载机制可以有效的逻辑代码的抽象与具体逻辑</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/04/04-dubbo%E7%9A%84%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6/>04-Dubbo的扩展机制</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/04/04-dubbo%E7%9A%84%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6/>4-Dubbo的扩展机制</a></li></ol></nav><p>[Dubbo 3.0.8源码解析] Dubbo是一个微内核框架,所有的实现都是通过扩展机制来实现的,了解扩展加载机制可以有效的逻辑代码的抽象与具体逻辑</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/03/03-%E6%A1%86%E6%9E%B6%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%A8%A1%E5%9D%97%E9%A2%86%E5%9F%9F%E6%A8%A1%E5%9E%8Bmodel%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%88%9D%E5%A7%8B%E5%8C%96/>03-框架,应用程序,模块领域模型Model对象的初始化</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/03/03-%E6%A1%86%E6%9E%B6%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%A8%A1%E5%9D%97%E9%A2%86%E5%9F%9F%E6%A8%A1%E5%9E%8Bmodel%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%88%9D%E5%A7%8B%E5%8C%96/>3-框架,应用程序,模块领域模型Model对象的初始化</a></li></ol></nav><p>Dubbo 源码解析之框架,应用程序,模块领域模型 Model 对象的初始化</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/02/02-%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E5%89%8D%E6%9C%8D%E5%8A%A1%E9%85%8D%E7%BD%AEserviceconfig%E7%B1%BB%E5%9E%8B%E6%98%AF%E5%A6%82%E4%BD%95%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84/>02-启动服务前服务配置ServiceConfig类型是如何初始化的?</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/02/02-%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E5%89%8D%E6%9C%8D%E5%8A%A1%E9%85%8D%E7%BD%AEserviceconfig%E7%B1%BB%E5%9E%8B%E6%98%AF%E5%A6%82%E4%BD%95%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84/>2-ServiceConfig类型是如何初始化的?</a></li></ol></nav><p>Dubbo 源码解析之 ServiceConfig 类型是如何初始化的?</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/08/01/01-%E4%BB%8E%E4%B8%80%E4%B8%AA%E6%9C%8D%E5%8A%A1%E6%8F%90%E4%BE%9B%E8%80%85%E7%9A%84demo%E8%AF%B4%E8%B5%B7/>01 从一个服务提供者的Demo说起</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/3.0.8/>Dubbo3 [v3.0.8] 源码解析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/08/01/01-%E4%BB%8E%E4%B8%80%E4%B8%AA%E6%9C%8D%E5%8A%A1%E6%8F%90%E4%BE%9B%E8%80%85%E7%9A%84demo%E8%AF%B4%E8%B5%B7/>1-从一个服务提供者的Demo说起</a></li></ol></nav><p>Dubbo 源码解析之从一个服务提供者的Demo说起</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/07/26/rest-%E5%8D%8F%E8%AE%AE/>Rest 协议</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/07/26/rest-%E5%8D%8F%E8%AE%AE/>2.7 版本 Rest 协议实现重构设想</a></li></ol></nav><p>本文将介绍 Dubbo 2.x 版本中的 Rest 协议及其未来的重构方向。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/06/23/%E6%B5%85%E6%9E%90-dubbo-3.0-%E4%B8%AD%E6%8E%A5%E5%8F%A3%E7%BA%A7%E5%9C%B0%E5%9D%80%E6%8E%A8%E9%80%81%E6%80%A7%E8%83%BD%E7%9A%84%E4%BC%98%E5%8C%96/>浅析 Dubbo 3.0 中接口级地址推送性能的优化</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/06/23/%E6%B5%85%E6%9E%90-dubbo-3.0-%E4%B8%AD%E6%8E%A5%E5%8F%A3%E7%BA%A7%E5%9C%B0%E5%9D%80%E6%8E%A8%E9%80%81%E6%80%A7%E8%83%BD%E7%9A%84%E4%BC%98%E5%8C%96/>浅析 Dubbo 3.0 中接口级地址推送性能的优化</a></li></ol></nav><p>Dubbo URL 的基本工作原理以及在地址推送链路的优化过程。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/05/04/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87-apache-shenyu-%E7%BD%91%E5%85%B3%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1/>如何通过 Apache ShenYu 网关代理 Dubbo 服务</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/integration/>生态集成</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/05/04/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87-apache-shenyu-%E7%BD%91%E5%85%B3%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1/>如何通过 Apache ShenYu 网关代理 Dubbo 服务</a></li></ol></nav><p>本文介绍了如何通过<code>Apache ShenYu</code>网关访问<code>Dubbo</code>服务,主要内容包括从简单示例到核心调用流程分析,并对设计原理进行了总结。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%BD%91%E5%85%B3/ data-taxonomy-term=%E7%BD%91%E5%85%B3><span class=taxonomy-label>网关</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%94%9F%E6%80%81/ data-taxonomy-term=%E7%94%9F%E6%80%81><span class=taxonomy-label>生态</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2022/01/18/%E4%BB%8E%E5%8E%9F%E7%90%86%E5%88%B0%E6%93%8D%E4%BD%9C%E8%AE%A9%E4%BD%A0%E5%9C%A8-apache-apisix-%E4%B8%AD%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1%E6%9B%B4%E4%BE%BF%E6%8D%B7/>从原理到操作,让你在 Apache APISIX 中代理 Dubbo 服务更便捷</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/integration/>生态集成</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2022/01/18/%E4%BB%8E%E5%8E%9F%E7%90%86%E5%88%B0%E6%93%8D%E4%BD%9C%E8%AE%A9%E4%BD%A0%E5%9C%A8-apache-apisix-%E4%B8%AD%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1%E6%9B%B4%E4%BE%BF%E6%8D%B7/>从原理到操作,让你在 Apache APISIX 中代理 Dubbo 服务更便捷</a></li></ol></nav><p>本文为大家介绍了如何借助 Apache APISIX 实现 Dubbo Service 的代理,通过引入 dubbo-proxy 插件便可为 Dubbo 框架的后端系统构建更简单更高效的流量链路</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%BD%91%E5%85%B3/ data-taxonomy-term=%E7%BD%91%E5%85%B3><span class=taxonomy-label>网关</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%94%9F%E6%80%81/ data-taxonomy-term=%E7%94%9F%E6%80%81><span class=taxonomy-label>生态</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2021/06/02/dubbo3-%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/>Dubbo3 应用级服务发现</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2021/06/02/dubbo3-%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/>应用级服务发现</a></li></ol></nav><p>本文介绍了 Dubbo3 应用级服务发现的实现原理</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2020/12/22/dubbo-api-docs--apache-dubbo%E6%96%87%E6%A1%A3%E5%B1%95%E7%A4%BA%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/>Dubbo-Api-Docs -- Apache Dubbo文档展示&测试工具</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2020/12/22/dubbo-api-docs--apache-dubbo%E6%96%87%E6%A1%A3%E5%B1%95%E7%A4%BA%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/>Dubbo-Api-Docs -- Apache Dubbo文档展示&测试工具</a></li></ol></nav><p>本文将向你介绍Dubbo-Api-Docs</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/12/02/dubbo%E6%B5%8B%E8%AF%95%E9%AA%8C%E8%AF%81/>Dubbo测试验证</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/12/02/dubbo%E6%B5%8B%E8%AF%95%E9%AA%8C%E8%AF%81/>Dubbo测试验证</a></li></ol></nav><p>对正在开发的功能进行验证测试,或者单独调用某台机器的服务</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/11/30/dubbo-%E5%9C%A8-service-mesh-%E4%B8%8B%E7%9A%84%E6%80%9D%E8%80%83%E5%92%8C%E6%96%B9%E6%A1%88/>Dubbo 在 Service Mesh 下的思考和方案</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/11/30/dubbo-%E5%9C%A8-service-mesh-%E4%B8%8B%E7%9A%84%E6%80%9D%E8%80%83%E5%92%8C%E6%96%B9%E6%A1%88/>Dubbo 在 Service Mesh 下的思考和方案</a></li></ol></nav><p>Dubbo 是实现框架,融入 service mesh 理念就是我们今天分享的</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/11/02/dubbo%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%BC%82%E6%AD%A5%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%AE%9E%E7%8E%B0%E8%83%8C%E6%99%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/>Dubbo服务端异步接口的实现背景和实践</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/11/02/dubbo%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%BC%82%E6%AD%A5%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%AE%9E%E7%8E%B0%E8%83%8C%E6%99%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/>Dubbo服务端异步接口的实现背景和实践</a></li></ol></nav><p>本文介绍了 Dubbo 服务端异步接口的实现背景和实践</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/11/01/dubbo%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%BC%82%E6%AD%A5%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%AE%9E%E7%8E%B0%E8%83%8C%E6%99%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/>Dubbo客户端异步接口的实现背景和实践</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/11/01/dubbo%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%BC%82%E6%AD%A5%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%AE%9E%E7%8E%B0%E8%83%8C%E6%99%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/>Dubbo客户端异步接口的实现背景和实践</a></li></ol></nav><p>本文介绍了 Dubbo 客户端异步接口的实现背景和实践</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/10/28/dubbo-%E5%9C%A8%E8%B7%A8%E8%AF%AD%E8%A8%80%E5%92%8C%E5%8D%8F%E8%AE%AE%E7%A9%BF%E9%80%8F%E6%80%A7%E6%96%B9%E5%90%91%E4%B8%8A%E7%9A%84%E6%8E%A2%E7%B4%A2%E6%94%AF%E6%8C%81-http/2-grpc-%E5%92%8C-protobuf/>Dubbo 在跨语言和协议穿透性方向上的探索:支持 HTTP/2 gRPC 和 Protobuf</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/10/28/dubbo-%E5%9C%A8%E8%B7%A8%E8%AF%AD%E8%A8%80%E5%92%8C%E5%8D%8F%E8%AE%AE%E7%A9%BF%E9%80%8F%E6%80%A7%E6%96%B9%E5%90%91%E4%B8%8A%E7%9A%84%E6%8E%A2%E7%B4%A2%E6%94%AF%E6%8C%81-http/2-grpc-%E5%92%8C-protobuf/>支持 HTTP/2 gRPC 和 Protobuf</a></li></ol></nav><p>本文整理自刘军在 Dubbo 成都 meetup 上分享的《Dubbo 在多语言和协议穿透性方向上的探索》。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/10/22/%E6%9C%AC%E5%9C%B0%E5%AD%98%E6%A0%B9%E5%92%8C%E6%9C%AC%E5%9C%B0%E4%BC%AA%E8%A3%85/>本地存根和本地伪装</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/10/22/%E6%9C%AC%E5%9C%B0%E5%AD%98%E6%A0%B9%E5%92%8C%E6%9C%AC%E5%9C%B0%E4%BC%AA%E8%A3%85/>本地存根和本地伪装</a></li></ol></nav><p>本文介绍了 Dubbo 中本地存根和本地伪装的用法</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/10/17/dubbo-%E4%B8%AD%E7%9A%84-url-%E7%BB%9F%E4%B8%80%E6%A8%A1%E5%9E%8B/>Dubbo 中的 URL 统一模型</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/codeanalysis/>源码分析</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/10/17/dubbo-%E4%B8%AD%E7%9A%84-url-%E7%BB%9F%E4%B8%80%E6%A8%A1%E5%9E%8B/>Dubbo 中的 URL 统一模型</a></li></ol></nav><p>URL 是 Dubbo 中一个重要的领域模型,了解它可以更加轻松的理解 Dubbo 的设计理念。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/ data-taxonomy-term=%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90><span class=taxonomy-label>源码解析</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/10/01/%E7%A0%94%E7%A9%B6-dubbo-%E7%BD%91%E5%8D%A1%E5%9C%B0%E5%9D%80%E6%B3%A8%E5%86%8C%E6%97%B6%E7%9A%84%E4%B8%80%E7%82%B9%E6%80%9D%E8%80%83/>研究 Dubbo 网卡地址注册时的一点思考</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/10/01/%E7%A0%94%E7%A9%B6-dubbo-%E7%BD%91%E5%8D%A1%E5%9C%B0%E5%9D%80%E6%B3%A8%E5%86%8C%E6%97%B6%E7%9A%84%E4%B8%80%E7%82%B9%E6%80%9D%E8%80%83/>研究 Dubbo 网卡地址注册时的一点思考</a></li></ol></nav><p>研究 Dubbo 网卡地址注册时的一点思考</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/08/26/service-test/>Dubbo Admin服务测试功能</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/08/26/service-test/>Dubbo Admin服务测试功能</a></li></ol></nav><p>可以通过泛化调用,在控制台上调用真实的服务提供者</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/08/11/%E6%9C%AC%E5%9C%B0%E8%B0%83%E7%94%A8/>本地调用</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/08/11/%E6%9C%AC%E5%9C%B0%E8%B0%83%E7%94%A8/>本地调用</a></li></ol></nav><p>当一个应用既是一个服务的提供者,同时也是这个服务的消费者的时候,可以直接对本机提供的服务发起本地调用</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/08/11/%E4%BD%BF%E7%94%A8apache-skywalking-incubator-%E5%81%9A%E5%88%86%E5%B8%83%E5%BC%8F%E8%B7%9F%E8%B8%AA/>使用Apache Skywalking (Incubator) 做分布式跟踪</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/integration/>生态集成</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/08/11/%E4%BD%BF%E7%94%A8apache-skywalking-incubator-%E5%81%9A%E5%88%86%E5%B8%83%E5%BC%8F%E8%B7%9F%E8%B8%AA/>使用Apache Skywalking (Incubator) 做分布式跟踪</a></li></ol></nav><p>本文介绍如何使用 Apache Skywalking 对 Dubbo 应用做分布式链路追踪。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%94%9F%E6%80%81/ data-taxonomy-term=%E7%94%9F%E6%80%81><span class=taxonomy-label>生态</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/07/26/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8-rest/>在 Dubbo 中使用 REST</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/07/26/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8-rest/>在 Dubbo 中使用 REST</a></li></ol></nav><p>本文介绍了如何在 Dubbo 中发布 RESTful 服务</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/06/22/%E4%BD%BF%E7%94%A8-dubbo-%E8%BF%9E%E6%8E%A5%E5%BC%82%E6%9E%84%E5%BE%AE%E6%9C%8D%E5%8A%A1%E4%BD%93%E7%B3%BB/>使用 Dubbo 连接异构微服务体系</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/06/22/%E4%BD%BF%E7%94%A8-dubbo-%E8%BF%9E%E6%8E%A5%E5%BC%82%E6%9E%84%E5%BE%AE%E6%9C%8D%E5%8A%A1%E4%BD%93%E7%B3%BB/>使用 Dubbo 连接异构微服务体系</a></li></ol></nav><p>在这篇文章中,我们将探索如何利用 Dubbo 对多协议、多服务发现模型的支持,来实现异构微服务体系间的互联互通</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/05/02/dubbo%E5%8F%AF%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/>Dubbo可扩展机制源码解析</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/05/02/dubbo%E5%8F%AF%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/>Dubbo可扩展机制源码解析</a></li></ol></nav><p>本文介绍了SPI扩展机制的实现原理与细节。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/05/01/dubbo-%E4%B8%80%E8%87%B4%E6%80%A7hash%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%AE%9E%E7%8E%B0%E5%89%96%E6%9E%90/>Dubbo 一致性Hash负载均衡实现剖析</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/05/01/dubbo-%E4%B8%80%E8%87%B4%E6%80%A7hash%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%AE%9E%E7%8E%B0%E5%89%96%E6%9E%90/>Dubbo 一致性Hash负载均衡实现剖析</a></li></ol></nav><p>本文以一般的一致性Hash实现作为引子,详细剖析了Dubbo一致性Hash负载均衡算法的实现</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/04/25/dubbo%E5%8F%AF%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E5%AE%9E%E6%88%98/>Dubbo可扩展机制实战</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/04/25/dubbo%E5%8F%AF%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E5%AE%9E%E6%88%98/>Dubbo可扩展机制实战</a></li></ol></nav><p>description: 本文介绍了Dubbo框架的核心,SPI扩展机制。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/02/03/%E6%8F%90%E5%89%8Dif%E5%88%A4%E6%96%AD%E5%B8%AE%E5%8A%A9cpu%E5%88%86%E6%94%AF%E9%A2%84%E6%B5%8B/>提前if判断帮助CPU分支预测</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/02/03/%E6%8F%90%E5%89%8Dif%E5%88%A4%E6%96%AD%E5%B8%AE%E5%8A%A9cpu%E5%88%86%E6%94%AF%E9%A2%84%E6%B5%8B/>提前if判断帮助CPU分支预测</a></li></ol></nav><p>本文介绍了通过提前if判断帮助CPU分支预测的优化技巧</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/02/02/%E5%BD%93dubbo%E9%81%87%E4%B8%8Aarthas%E6%8E%92%E6%9F%A5%E9%97%AE%E9%A2%98%E7%9A%84%E5%AE%9E%E8%B7%B5/>当Dubbo遇上Arthas:排查问题的实践</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/integration/>生态集成</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/02/02/%E5%BD%93dubbo%E9%81%87%E4%B8%8Aarthas%E6%8E%92%E6%9F%A5%E9%97%AE%E9%A2%98%E7%9A%84%E5%AE%9E%E8%B7%B5/>当Dubbo遇上Arthas:排查问题的实践</a></li></ol></nav><p>使用Alibaba开源的应用诊断利器Arthas来排查Dubbo应用的问题。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%94%9F%E6%80%81/ data-taxonomy-term=%E7%94%9F%E6%80%81><span class=taxonomy-label>生态</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/01/17/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8seata%E4%BF%9D%E8%AF%81dubbo%E5%BE%AE%E6%9C%8D%E5%8A%A1%E9%97%B4%E7%9A%84%E4%B8%80%E8%87%B4%E6%80%A7/>如何使用Seata保证Dubbo微服务间的一致性</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/integration/>生态集成</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/01/17/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8seata%E4%BF%9D%E8%AF%81dubbo%E5%BE%AE%E6%9C%8D%E5%8A%A1%E9%97%B4%E7%9A%84%E4%B8%80%E8%87%B4%E6%80%A7/>如何使用Seata保证Dubbo微服务间的一致性</a></li></ol></nav><p>本文主要介绍如何使用Seata保证Dubbo微服务间的一致性</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%94%9F%E6%80%81/ data-taxonomy-term=%E7%94%9F%E6%80%81><span class=taxonomy-label>生态</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/01/07/%E6%B5%85%E8%B0%88-rpc/>浅谈 RPC</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/01/07/%E6%B5%85%E8%B0%88-rpc/>浅谈 RPC</a></li></ol></nav><p>RPC-远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2019/01/07/%E6%96%B0%E7%89%88-dubbo-admin-%E4%BB%8B%E7%BB%8D/>新版 Dubbo Admin 介绍</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/integration/>生态集成</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2019/01/07/%E6%96%B0%E7%89%88-dubbo-admin-%E4%BB%8B%E7%BB%8D/>新版 Dubbo Admin 介绍</a></li></ol></nav><p>当前版本的Dubbo Admin包含了之前版本中的绝大部分功能,包括服务治理,服务查询等,同时支持了Dubbo2.7中服务治理的新特性</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%94%9F%E6%80%81/ data-taxonomy-term=%E7%94%9F%E6%80%81><span class=taxonomy-label>生态</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/11/07/dubbo-%E8%9E%8D%E5%90%88-nacos-%E6%88%90%E4%B8%BA%E6%B3%A8%E5%86%8C%E4%B8%AD%E5%BF%83/>Dubbo 融合 Nacos 成为注册中心</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/integration/>生态集成</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/11/07/dubbo-%E8%9E%8D%E5%90%88-nacos-%E6%88%90%E4%B8%BA%E6%B3%A8%E5%86%8C%E4%B8%AD%E5%BF%83/>Dubbo 融合 Nacos 成为注册中心</a></li></ol></nav><p>本文介绍了如何在 Dubbo 中使用 Nacos 作为服务注册中心</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%94%9F%E6%80%81/ data-taxonomy-term=%E7%94%9F%E6%80%81><span class=taxonomy-label>生态</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/10/27/dubbo%E6%9C%8D%E5%8A%A1%E5%88%86%E7%BB%84%E5%92%8C%E7%89%88%E6%9C%AC%E8%81%9A%E5%90%88/>Dubbo服务分组和版本聚合</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/10/27/dubbo%E6%9C%8D%E5%8A%A1%E5%88%86%E7%BB%84%E5%92%8C%E7%89%88%E6%9C%AC%E8%81%9A%E5%90%88/>Dubbo服务分组和版本聚合</a></li></ol></nav><p>本文主要介绍了 Dubbo 中服务分组和版本聚合的概念和用法</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/10/05/dubbo-%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3/>Dubbo 协议详解</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/10/05/dubbo-%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3/>Dubbo 协议详解</a></li></ol></nav><p>本文介绍了 Dubbo 协议的设计</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/09/30/dubbo%E4%B8%8Ekubernetes%E9%9B%86%E6%88%90/>Dubbo与Kubernetes集成</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/09/30/dubbo%E4%B8%8Ekubernetes%E9%9B%86%E6%88%90/>Dubbo与Kubernetes集成</a></li></ol></nav><p>本文主要尝试将Dubbo服务注册到Kubernetes,同时无缝融入Kubernetes的多租户安全体系。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/09/20/dubbo-mesh-service-mesh%E7%9A%84%E5%AE%9E%E8%B7%B5%E4%B8%8E%E6%8E%A2%E7%B4%A2/>Dubbo Mesh | Service Mesh的实践与探索</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/09/20/dubbo-mesh-service-mesh%E7%9A%84%E5%AE%9E%E8%B7%B5%E4%B8%8E%E6%8E%A2%E7%B4%A2/>Dubbo Mesh | Service Mesh的实践与探索</a></li></ol></nav><p>本文介绍了Dubbo在Service Mesh方向的实践与探索</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/09/02/%E5%A6%82%E4%BD%95%E5%9F%BA%E4%BA%8Edubbo%E5%AE%9E%E7%8E%B0%E5%85%A8%E5%BC%82%E6%AD%A5%E8%B0%83%E7%94%A8%E9%93%BE/>如何基于Dubbo实现全异步调用链</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/09/02/%E5%A6%82%E4%BD%95%E5%9F%BA%E4%BA%8Edubbo%E5%AE%9E%E7%8E%B0%E5%85%A8%E5%BC%82%E6%AD%A5%E8%B0%83%E7%94%A8%E9%93%BE/>如何基于Dubbo实现全异步调用链</a></li></ol></nav><p>本文回顾了 2.6.x 版本的异步实现,然后引出了 2.7.0 版本基于 CompletableFuture 的异步编程方式。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/22/dubbo-%E9%9B%86%E7%BE%A4%E5%AE%B9%E9%94%99/>Dubbo 集群容错</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/22/dubbo-%E9%9B%86%E7%BE%A4%E5%AE%B9%E9%94%99/>Dubbo 集群容错</a></li></ol></nav><p>在分布式系统中,集群某个某些节点出现问题是大概率事件,因此在设计分布式RPC框架的过程中,必须要把失败作为设计的一等公民来对待。一次调用失败之后,应该如何选择对失败的选择策略,这是一个见仁见智的问题,每种策略可能都有自己独特的应用场景。因此,作为框架来说,应当针对不同场景提供多种策略,供用户进行选择。本文介绍了Dubbo框架提供的多种错误处理策略,并通过实例说明如何进行配置。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/22/spring%E5%BA%94%E7%94%A8%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90dubbo--hystrix/>Spring应用快速集成Dubbo + Hystrix</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/integration/>生态集成</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/22/spring%E5%BA%94%E7%94%A8%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90dubbo--hystrix/>Spring应用快速集成Dubbo + Hystrix</a></li></ol></nav><p>本文介绍在spring应用里,怎么把Dubbo和Hystrix结合起来使用。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%94%9F%E6%80%81/ data-taxonomy-term=%E7%94%9F%E6%80%81><span class=taxonomy-label>生态</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/19/dubbo-%E7%8E%B0%E6%9C%89%E5%BF%83%E8%B7%B3%E6%96%B9%E6%A1%88%E6%80%BB%E7%BB%93%E4%BB%A5%E5%8F%8A%E6%94%B9%E8%BF%9B%E5%BB%BA%E8%AE%AE/>Dubbo 现有心跳方案总结以及改进建议</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/19/dubbo-%E7%8E%B0%E6%9C%89%E5%BF%83%E8%B7%B3%E6%96%B9%E6%A1%88%E6%80%BB%E7%BB%93%E4%BB%A5%E5%8F%8A%E6%94%B9%E8%BF%9B%E5%BB%BA%E8%AE%AE/>Dubbo 现有心跳方案总结以及改进建议</a></li></ol></nav><p>本文介绍了一种心跳,两种设计</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/15/dubbo2.7-%E4%B8%89%E5%A4%A7%E6%96%B0%E7%89%B9%E6%80%A7%E8%AF%A6%E8%A7%A3/>Dubbo2.7 三大新特性详解</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/15/dubbo2.7-%E4%B8%89%E5%A4%A7%E6%96%B0%E7%89%B9%E6%80%A7%E8%AF%A6%E8%A7%A3/>Dubbo2.7 三大新特性详解</a></li></ol></nav><p>异步化改造,三大中心改造,服务治理增强</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/14/dubbo-%E5%85%B3%E4%BA%8E%E5%90%8C%E6%AD%A5/%E5%BC%82%E6%AD%A5%E8%B0%83%E7%94%A8%E7%9A%84%E5%87%A0%E7%A7%8D%E6%96%B9%E5%BC%8F/>Dubbo 关于同步/异步调用的几种方式</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/14/dubbo-%E5%85%B3%E4%BA%8E%E5%90%8C%E6%AD%A5/%E5%BC%82%E6%AD%A5%E8%B0%83%E7%94%A8%E7%9A%84%E5%87%A0%E7%A7%8D%E6%96%B9%E5%BC%8F/>Dubbo 关于同步/异步调用的几种方式</a></li></ol></nav><p>本文介绍了Dubbo基于异步通讯机制实现的几种同步和异步调用方式。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/14/dubbo-%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95-dubbo-consumer-%E9%85%8D%E7%BD%AE/>Dubbo 基本用法 - Dubbo Consumer 配置</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/14/dubbo-%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95-dubbo-consumer-%E9%85%8D%E7%BD%AE/>Dubbo 基本用法 - Dubbo Consumer 配置</a></li></ol></nav><p>XML配置,API调用方式配置,注解方式配置</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/14/dubbo-%E5%9F%BA%E7%A1%80%E7%94%A8%E6%B3%95-provider-%E9%85%8D%E7%BD%AE/>Dubbo 基础用法 - Provider 配置</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/14/dubbo-%E5%9F%BA%E7%A1%80%E7%94%A8%E6%B3%95-provider-%E9%85%8D%E7%BD%AE/>Dubbo 基础用法 - Provider 配置</a></li></ol></nav><p>主要讲述如何配置dubbo,按照配置方式上可以分为:XML配置,properties方式配置,注解方式配置,API调用方式配置。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/14/dubbo-%E4%BC%98%E9%9B%85%E5%81%9C%E6%9C%BA/>Dubbo 优雅停机</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/14/dubbo-%E4%BC%98%E9%9B%85%E5%81%9C%E6%9C%BA/>Dubbo 优雅停机</a></li></ol></nav><p>本文介绍了Dubbo优雅停机的原理和使用方式</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/14/dubbo%E7%9A%84%E6%B3%9B%E5%8C%96%E8%B0%83%E7%94%A8/>Dubbo的泛化调用</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/14/dubbo%E7%9A%84%E6%B3%9B%E5%8C%96%E8%B0%83%E7%94%A8/>Dubbo的泛化调用</a></li></ol></nav><p>本文介绍了 Dubbo 泛化调用的使用场景及相关示例</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/14/spring-boot-dubbo%E5%BA%94%E7%94%A8%E5%90%AF%E5%81%9C%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/>Spring Boot Dubbo应用启停源码分析</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/14/spring-boot-dubbo%E5%BA%94%E7%94%A8%E5%90%AF%E5%81%9C%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/>Spring Boot Dubbo应用启停源码分析</a></li></ol></nav><p>本文分析 <code>dubbo-spring-boot-project</code> 中 Dubbo 启停源码的实现原理。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/14/%E9%80%9A%E8%BF%87qos%E5%AF%B9%E6%9C%8D%E5%8A%A1%E8%BF%9B%E8%A1%8C%E5%8A%A8%E6%80%81%E6%8E%A7%E5%88%B6/>通过QoS对服务进行动态控制</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/14/%E9%80%9A%E8%BF%87qos%E5%AF%B9%E6%9C%8D%E5%8A%A1%E8%BF%9B%E8%A1%8C%E5%8A%A8%E6%80%81%E6%8E%A7%E5%88%B6/>通过QoS对服务进行动态控制</a></li></ol></nav><p>本文介绍了如何使用Dubbo的QoS功能对服务进行动态配置,以及相关的参数及配置方式。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/10/dubbo%E7%9A%84%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/>Dubbo的负载均衡</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/10/dubbo%E7%9A%84%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/>Dubbo的负载均衡</a></li></ol></nav><p>本文介绍了负载均衡的相关概念以及 Dubbo 中的负载均衡策略实现。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/07/dubbo-%E6%B3%A8%E8%A7%A3%E9%A9%B1%E5%8A%A8/>Dubbo 注解驱动</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/07/dubbo-%E6%B3%A8%E8%A7%A3%E9%A9%B1%E5%8A%A8/>Dubbo 注解驱动</a></li></ol></nav><p>介绍了 Dubbo 中新引入的注解驱动支持</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/07/dubbo-101/>第一个 Dubbo 应用</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/07/dubbo-101/>第一个 Dubbo 应用</a></li></ol></nav><p>现代的分布式服务框架的基本概念与 RMI 是类似的,同样是使用 Java 的 Interface 作为服务契约,通过注册中心来完成服务的注册和发现,远程通讯的细节也是通过代理类来屏蔽。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/07/%E4%BD%BF%E7%94%A8jdk17%E7%BC%96%E8%AF%91%E8%BF%90%E8%A1%8Cdubbo-2.7.14%E9%A1%B9%E7%9B%AE/>使用jdk17编译运行dubbo 2.7.14项目</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/07/%E4%BD%BF%E7%94%A8jdk17%E7%BC%96%E8%AF%91%E8%BF%90%E8%A1%8Cdubbo-2.7.14%E9%A1%B9%E7%9B%AE/>使用jdk17编译运行dubbo 2.7.14项目</a></li></ol></nav><p>本文介绍了如何在jdk17环境下编译运行dubbo 2.7.14项目。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/07/%E5%9C%A8-dubbo-%E5%BA%94%E7%94%A8%E4%B8%AD%E4%BD%BF%E7%94%A8-zookeeper/>在 Dubbo 应用中使用 Zookeeper</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/integration/>生态集成</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/07/%E5%9C%A8-dubbo-%E5%BA%94%E7%94%A8%E4%B8%AD%E4%BD%BF%E7%94%A8-zookeeper/>在 Dubbo 应用中使用 Zookeeper</a></li></ol></nav><p>本文介绍了 Zookeeper 的基本概念、用法,以及如何在 Dubbo 应用中使用 Zookeeper 作为注册中心。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%94%9F%E6%80%81/ data-taxonomy-term=%E7%94%9F%E6%80%81><span class=taxonomy-label>生态</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/08/07/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%B3%A8%E8%A7%A3/>在 Dubbo 中使用注解</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/08/07/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%B3%A8%E8%A7%A3/>在 Dubbo 中使用注解</a></li></ol></nav><p>介绍了如何使用注解方式而非 XML 方式来开发 Dubbo 应用,可以学习到如何使用 @EnableDubbo、@Service、@Reference 的用法。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/07/27/sentinel-%E4%B8%BA-dubbo-%E6%9C%8D%E5%8A%A1%E4%BF%9D%E9%A9%BE%E6%8A%A4%E8%88%AA/>Sentinel 为 Dubbo 服务保驾护航</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/integration/>生态集成</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/07/27/sentinel-%E4%B8%BA-dubbo-%E6%9C%8D%E5%8A%A1%E4%BF%9D%E9%A9%BE%E6%8A%A4%E8%88%AA/>Sentinel 为 Dubbo 服务保驾护航</a></li></ol></nav><p>本文主要介绍了面向分布式服务架构的轻量级流量控制组件 Sentinel 以及在 Dubbo 中整合使用 Sentinel 的最佳实践。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%94%9F%E6%80%81/ data-taxonomy-term=%E7%94%9F%E6%80%81><span class=taxonomy-label>生态</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/07/22/dubbo-2.7.x-repackage-%E5%90%8E%E7%9A%84%E5%85%BC%E5%AE%B9%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%A1%88/>Dubbo 2.7.x repackage 后的兼容实现方案</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/07/22/dubbo-2.7.x-repackage-%E5%90%8E%E7%9A%84%E5%85%BC%E5%AE%B9%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%A1%88/>Dubbo 2.7.x repackage 后的兼容实现方案</a></li></ol></nav><p>本文简单描述了2.7.x repackage后对老版本的兼容性实现方案。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/07/12/dubbo-%E4%B8%8A%E4%B8%8B%E6%96%87%E4%BF%A1%E6%81%AF/>Dubbo 上下文信息</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/07/12/dubbo-%E4%B8%8A%E4%B8%8B%E6%96%87%E4%BF%A1%E6%81%AF/>Dubbo 上下文信息</a></li></ol></nav><p>介绍Dubbo上下文信息的作用、应用场景、使用方式以及注意事项</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/07/12/%E4%BD%BF%E7%94%A8pinpoint%E5%81%9A%E5%88%86%E5%B8%83%E5%BC%8F%E8%B7%9F%E8%B8%AA/>使用Pinpoint做分布式跟踪</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/integration/>生态集成</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/07/12/%E4%BD%BF%E7%94%A8pinpoint%E5%81%9A%E5%88%86%E5%B8%83%E5%BC%8F%E8%B7%9F%E8%B8%AA/>使用Pinpoint做分布式跟踪</a></li></ol></nav><p>本文介绍了利用Pinpoint对Dubbo分布式应用进行调用链跟踪与性能监控。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%94%9F%E6%80%81/ data-taxonomy-term=%E7%94%9F%E6%80%81><span class=taxonomy-label>生态</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/07/01/%E7%AC%AC%E4%B8%80%E4%B8%AA-dubbo-filter/>第一个 Dubbo Filter</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/07/01/%E7%AC%AC%E4%B8%80%E4%B8%AA-dubbo-filter/>第一个 Dubbo Filter</a></li></ol></nav><p>本文介绍了如何开发一个 Dubbo 的 Filter</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/06/26/%E5%9B%9E%E5%A3%B0%E6%B5%8B%E8%AF%95/>回声测试</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/06/26/%E5%9B%9E%E5%A3%B0%E6%B5%8B%E8%AF%95/>回声测试</a></li></ol></nav><p>回声测试用于检测服务是否可用</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/06/17/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8-zipkin/>在 Dubbo 中使用 Zipkin</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/integration/>生态集成</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/06/17/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8-zipkin/>在 Dubbo 中使用 Zipkin</a></li></ol></nav><p>本文介绍如何在 Dubbo 中使用 Zipkin 进行全链路追踪</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/%E7%94%9F%E6%80%81/ data-taxonomy-term=%E7%94%9F%E6%80%81><span class=taxonomy-label>生态</span></a></li><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/06/03/%E4%BB%A5-dubbo-%E4%B8%BA%E4%BE%8B%E8%81%8A%E8%81%8A%E5%A6%82%E4%BD%95%E5%90%91%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%E5%81%9A%E8%B4%A1%E7%8C%AE/>以 Dubbo 为例,聊聊如何向开源项目做贡献</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/06/03/%E4%BB%A5-dubbo-%E4%B8%BA%E4%BE%8B%E8%81%8A%E8%81%8A%E5%A6%82%E4%BD%95%E5%90%91%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%E5%81%9A%E8%B4%A1%E7%8C%AE/>以 Dubbo 为例,聊聊如何向开源项目做贡献</a></li></ol></nav><p>本文将会以 dubbo 项目为例向你阐释,给开源项目做贡献并不是一件难事</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/05/21/dubbo-%E5%A4%96%E9%83%A8%E5%8C%96%E9%85%8D%E7%BD%AE/>Dubbo 外部化配置</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/05/21/dubbo-%E5%A4%96%E9%83%A8%E5%8C%96%E9%85%8D%E7%BD%AE/>Dubbo 外部化配置</a></li></ol></nav><p></p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article><article class="card article-teaser article-type-blog"><h3><a href=/zh-cn/blog/2018/01/01/dubbo-%E5%8D%9A%E5%AE%A2%E6%96%87%E6%A1%A3%E4%B8%AD%E6%96%87%E6%8E%92%E7%89%88%E6%8C%87%E5%8D%97/>Dubbo 博客文档中文排版指南</a></h3><nav class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/>博客</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/>Java</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/java/demos/>功能演示</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/blog/2018/01/01/dubbo-%E5%8D%9A%E5%AE%A2%E6%96%87%E6%A1%A3%E4%B8%AD%E6%96%87%E6%8E%92%E7%89%88%E6%8C%87%E5%8D%97/>Dubbo 博客文档中文排版指南</a></li></ol></nav><p>统一中文文案、排版的相关用法,降低团队成员之间的沟通成本,增强网站气质。</p><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://cn.dubbo.apache.org/zh-cn/tags/java/ data-taxonomy-term=java><span class=taxonomy-label>Java</span></a></li></ul></div></header></article></div><a href=https://cn.dubbo.apache.org/zh-cn/tags/ class=all-taxonomy-terms>所有 Tags</a></main></div></main></div><footer class="bg-dark py-5 row d-print-none footer-margin-0"><div class="container-fluid mx-sm-5"><div class=row><div class="col-6 col-sm-4 text-xs-center order-sm-2"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Dubbo mailing list archive" aria-label="Dubbo mailing list archive"><a class=text-white target=_blank rel="noopener noreferrer" href=https://lists.apache.org/list.html?dev@dubbo.apache.org><i class="fa fa-envelope"></i></a></li></ul></div><div class="col-6 col-sm-4 text-right text-xs-center order-sm-3"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=GitHub aria-label=GitHub><a class=text-white target=_blank rel="noopener noreferrer" href=https://github.com/apache/dubbo><i class="fab fa-github"></i></a></li><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Subscribe to mailing list" aria-label="Subscribe to mailing list"><a class=text-white target=_blank rel="noopener noreferrer" href=mailto:dev-subscribe@dubbo.apache.org><i class="fa fa-envelope"></i></a></li></ul></div><div class="col-12 col-sm-4 text-center py-2 order-sm-2"><small class=text-white>&copy; 2024 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation. 保留所有权利</small></div></div></div></footer><div class="row pt-2 pb-2 footer-margin-0"><div class="container-fluid mx-sm-5"><div class=text-center id=my-footer><img alt=apache_logo src=/imgs/apache_logo.png><ul><li><a href=https://www.apache.org>Foundation</a></li><li><a href=https://www.apache.org/licenses/>License</a></li><li><a href=https://dubbo.apache.org/en/overview/notices/>Security</a></li><li><a href=https://www.apache.org/events/current-event>Events</a></li><li><a href=https://www.apache.org/foundation/sponsorship.html>Sponsorship</a></li><li><a href=https://privacy.apache.org/policies/privacy-policy-public.html>Privacy</a></li><li><a href=https://www.apache.org/foundation/thanks.html>Thanks</a></li></ul></div></div></div><script src=/js/popper.min.js integrity=sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49 crossorigin=anonymous></script><script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script><script src=/js/main.min.b075178d232d3b0039b3cb6af2fc2e9d90071820167a60f4eea3a79169975ee8.js integrity="sha256-sHUXjSMtOwA5s8tq8vwunZAHGCAWemD07qOnkWmXXug=" crossorigin=anonymous></script><script async src=https://widget.kapa.ai/kapa-widget.bundle.js data-website-id=d763c4f2-f871-400b-aeca-d986c4af73c2 data-project-name="Apache Dubbo" data-project-color=#E8442E data-button-text="Ask AI" data-search-mode-enabled=true data-modal-open-on-command-k=true data-modal-disclaimer="The AI supports multiple languages, but it may not be accessible in China due to recaptcha, a proxy is required." data-project-logo=https://pbs.twimg.com/profile_images/1011849068283191302/FJbH5vbF_400x400.jpg data-modal-example-questions="What is Apache Dubbo?,How to run Apache Dubbo?" data-button-position-top data-button-position-right=20px data-button-position-bottom=200px data-button-position-left></script><script>(function(e,t,n,s){e[s]=e[s]||[];var a=t.getElementsByTagName(n)[0],i=t.createElement(n);i.async=!0,i.id="beacon-aplus",i.setAttribute("exparams","userid=&aplus&sidx=aplusSidex&ckx=aplusCkx"),i.src="//g.alicdn.com/alilog/mlog/aplus_v2.js",i.crossorigin="anonymous",a.parentNode.insertBefore(i,a)})(window,document,"script","aplus_queue"),function(e){var t=e.createElement("script");t.type="text/javascript",t.async=!0,t.src="//g.alicdn.com/aes/??tracker/3.3.4/index.js,tracker-plugin-pv/3.0.5/index.js,tracker-plugin-event/3.0.0/index.js,tracker-plugin-autolog/3.0.3/index.js,tracker-plugin-survey/3.0.3/index.js,tracker-plugin-jserror/3.0.3/index.js,tracker-plugin-resourceError/3.0.3/index.js",t.onload=function(){window.AES_CONFIG=window.AES_CONFIG||{env:"prod"},window.aes=new AES({pid:"zN245h",user_type:6}),window.AESPluginAutologConfig={exposure:"auto"},window.AEMPluginInstances=[aes.use(AESPluginPV,window.AESPluginPVConfig||{enableHistory:!0}),aes.use(AESPluginEvent,window.AESPluginEventConfig||{}),aes.use(AESPluginSurvey,window.AESPluginEventConfig||{}),aes.use(AESPluginAutolog,window.AESPluginAutologConfig||{}),aes.use(AESPluginJSError,window.AESPluginJSError||{}),aes.use(AESPluginResourceError,window.AESPluginResourceError||{})]},setTimeout(function(){e.getElementsByTagName("body")[0].appendChild(t)},800)}(document)</script></body></html>