<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Community Updates on Apache Dubbo</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/news/</link><description>Recent content in Community Updates on Apache Dubbo</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-3199--dubbo.netlify.app/en/blog/news/index.xml" rel="self" type="application/rss+xml"/><item><title>Dubbo Java 3.1.4 Official Release</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/12/01/dubbo-java-3.1.4-official-release/</link><pubDate>Thu, 01 Dec 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/12/01/dubbo-java-3.1.4-official-release/</guid><description>&lt;p>Dubbo 3.1.4 is the latest stable version of Dubbo 3, and we recommend all users upgrade to the latest stable version.&lt;/p>
&lt;h1 id="dubbo-314">Dubbo 3.1.4&lt;/h1>
&lt;p>&lt;img alt="image.png" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/release/3-1-4.png">&lt;/p>
&lt;h3 id="new-features">New Features&lt;/h3>
&lt;ul>
&lt;li>Dubbo QoS supports a specified whitelist IP list to access all commands&lt;/li>
&lt;/ul>
&lt;h3 id="bugfix">Bugfix&lt;/h3>
&lt;ul>
&lt;li>Fix incorrect collection of method names in Dubbo Metrics during generic calls&lt;/li>
&lt;li>Fix potential overlap issues in interface mapping when using Zookeeper as a metadata center&lt;/li>
&lt;li>Fix support for timeout countdown in Triple protocol&lt;/li>
&lt;li>Fix transparency issue with timeout countdown&lt;/li>
&lt;li>Fix NPE issues caused by no available addresses during multi-registry requests&lt;/li>
&lt;li>Fix null remoteApplicationName issue in Triple under Mesh mode&lt;/li>
&lt;li>Fix support for GraalVM Native Image&lt;/li>
&lt;li>Fix NPE exception caused by SSL connection when port reuse occurs&lt;/li>
&lt;li>Improve output format of JDK compiler error logs&lt;/li>
&lt;li>Fix application startup issues when MetadataReportConfig is partially configured&lt;/li>
&lt;li>Fix ineffectiveness of dubbo.reference as a default parameter in 3.x versions&lt;/li>
&lt;li>Improve logs for Zookeeper connection failures&lt;/li>
&lt;li>Fix potential overwriting of ClassLoader configured in ReferenceConfig&lt;/li>
&lt;li>Fix issues where certain properties were cached in instance-level addresses leading to method-level configuration failures&lt;/li>
&lt;li>Fix onError exception issue in Triple protocol&lt;/li>
&lt;/ul>
&lt;h3 id="faq">FAQ&lt;/h3>
&lt;p>This release includes 3 commits addressing the improvement of exception log FAQ. Refer to the official error code mechanism introduction document for more details. (&lt;a href="https://cn.dubbo.apache.org/zh-cn/overview/java-sdk/reference-manual/faq/intro/">https://cn.dubbo.apache.org/zh-cn/overview/java-sdk/reference-manual/faq/intro/&lt;/a>)&lt;/p></description></item><item><title>Focusing on Stability, Dubbo Java Release Plan Announced</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/10/22/focusing-on-stability-dubbo-java-release-plan-announced/</link><pubDate>Sat, 22 Oct 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/10/22/focusing-on-stability-dubbo-java-release-plan-announced/</guid><description>&lt;h2 id="introduction-to-dubbo">Introduction to Dubbo&lt;/h2>
&lt;p>Apache Dubbo is an RPC service development framework designed to address service governance and communication issues in microservice architectures. Official SDK implementations are available in multiple languages, including Java and Golang. Microservices developed with Dubbo possess built-in capabilities for remote address discovery and communication, leveraging Dubbo&amp;rsquo;s rich service governance features to achieve needs such as service discovery, load balancing, and traffic scheduling. Dubbo is designed for high extensibility, allowing users to easily implement various customized logic for traffic interception and service selection.&lt;/p></description></item><item><title>Dubbo Java 3.0.2 Release Announcement</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/07/18/dubbo-java-3.0.2-release-announcement/</link><pubDate>Sun, 18 Jul 2021 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/07/18/dubbo-java-3.0.2-release-announcement/</guid><description>&lt;h2 id="new-features">New Features&lt;/h2>
&lt;ul>
&lt;li>Support for exposing generalized services via the @DubboService annotation&lt;/li>
&lt;li>XML configuration support for the metadata center with protocol and port attributes&lt;/li>
&lt;li>Compatibility with versions above curator5&lt;/li>
&lt;li>Point-to-point calls support wildcard matching, allowing one provider address to correspond to multiple interfaces&lt;/li>
&lt;li>Dynamic configuration added for application-level service discovery to override rules&lt;/li>
&lt;li>Provides a switch for dynamic configuration override rules for providers, allowing them to ignore dynamic configuration and not re-expose&lt;/li>
&lt;li>Supports native image&lt;/li>
&lt;li>Provides a switch to cancel the execution of the shutdown hook&lt;/li>
&lt;li>Supports service governance rules for Kubernetes Mesh&lt;/li>
&lt;li>Netty connection supports SSL configuration&lt;/li>
&lt;/ul>
&lt;h2 id="bug-fixes">Bug Fixes&lt;/h2>
&lt;ul>
&lt;li>DubboBootStrap start duplication causes dynamic configuration to be overridden&lt;/li>
&lt;li>Dynamic configuration rules remain effective after deletion&lt;/li>
&lt;li>NullPointerException thrown when exposing triple protocol&lt;/li>
&lt;li>ConfigCenterConfig.setAddress method overwrites the username attribute&lt;/li>
&lt;li>DefaultFuture.closeChannel destroys consumer-side thread pool&lt;/li>
&lt;li>TripleClientHandler.writeRequest throws NullPointerException&lt;/li>
&lt;li>NullPointerException thrown when parsing 3.0 migration rules exception&lt;/li>
&lt;li>Order issue with Activated Extensions&lt;/li>
&lt;li>URLAddress.parse method has issues parsing ipv6 addresses&lt;/li>
&lt;li>User-defined parameters in properties configuration are ineffective&lt;/li>
&lt;li>Configuration overlap issue when using API model and Spring model simultaneously&lt;/li>
&lt;li>Application-level service discovery ineffective at startup&lt;/li>
&lt;li>Nacos registry fails to dynamically detect changes in the number of providers&lt;/li>
&lt;li>${dubbo.application} cannot be resolved by the Spring placeholder rules in XML files&lt;/li>
&lt;li>Issue obtaining the order of instance parameters, first obtaining instance-level parameters, then interface-level parameters&lt;/li>
&lt;li>Exception thrown when registering application startup listener if DubboConfigBeanInitializer does not exist&lt;/li>
&lt;li>Mock parameters containing &amp;lsquo;:&amp;rsquo; or &amp;lsquo;=&amp;rsquo; characters are ineffective&lt;/li>
&lt;li>NullPointerException when deleting Mesh rules&lt;/li>
&lt;/ul>
&lt;h2 id="optimization">Optimization&lt;/h2>
&lt;ul>
&lt;li>Catch exceptions in RemovalTask to ensure semaphore can be released&lt;/li>
&lt;li>Check for duplicate ReferenceConfig/ServiceConfig using unique service names&lt;/li>
&lt;li>Optimize random number generation performance&lt;/li>
&lt;li>If users use interface-level service discovery, do not publish application-interface mapping data to the metadata center&lt;/li>
&lt;li>Use StringBuilder#append(Char) to improve performance&lt;/li>
&lt;li>Ensure the order of interfaces in GRPC compiled class files&lt;/li>
&lt;li>Optimize reference bean placeholder resolution&lt;/li>
&lt;li>Utilize CompletableFuture#get(long, TimeUnit) in MergeableClusterInvoker for performance improvement&lt;/li>
&lt;li>Built-in service MetadataService does not delay exposure&lt;/li>
&lt;li>Optimize the startup logic of ConfigBean and Bootstrap&lt;/li>
&lt;li>Optimize logic for checking duplicate Configs&lt;/li>
&lt;li>Use ring data structures for registration notifications&lt;/li>
&lt;li>Optimize initialization logic for dynamic configurations&lt;/li>
&lt;li>ConfigManager uses ConcurrentHashMap to remove locking logic, improving equals and toString performance&lt;/li>
&lt;li>Optimize MetadataInfo equals method and Instance Listener&lt;/li>
&lt;li>Optimize asynchronous export/refer logic&lt;/li>
&lt;li>Use TreeSet data structure to ensure the order of application names during application-level service discovery&lt;/li>
&lt;li>First ten notifications from RegistryNotifier are not delayed&lt;/li>
&lt;li>dubbo-compile compiles using a new format to generate stubs&lt;/li>
&lt;li>Mesh service governance rules unify grouping and other rule groupings in the dynamic configuration center, changing DEFAULT_GROUP to dubbo&lt;/li>
&lt;li>When using nacos as a registration center, parameters can be used in the registration center address to change the grouping in nacos&lt;/li>
&lt;li>When calculating ServiceInfo reversion, remove runtime parameters to avoid generating multiple revisions&lt;/li>
&lt;li>Nacos registry wraps exceptions as RpcException on throw&lt;/li>
&lt;li>Prevent dynamic configuration center from dynamically modifying some permission parameters&lt;/li>
&lt;li>Optimize initialization process of Config Bean and ensure compatibility with spring 3.x/4.1.x&lt;/li>
&lt;li>Bootstrap.start method is reentrant, exposing or referencing new services&lt;/li>
&lt;li>Add classes in the org.apache.dubbo package to the whitelist by default&lt;/li>
&lt;li>Ensure the uniqueness of generated Config Id and check for previous existence&lt;/li>
&lt;li>Javaassist compatible with changing override declaration fields&lt;/li>
&lt;li>Refactor check logic during decoding, throwing exceptions when providers corresponding to path and version are not found&lt;/li>
&lt;li>When ApplicationModel is null, compatible with adaptive extensions&lt;/li>
&lt;/ul>
&lt;h2 id="code-quality-improvements">Code Quality Improvements&lt;/h2>
&lt;p>Thanks for the contributions that enhance the stability of Apache Dubbo.&lt;/p></description></item><item><title>Dubbo Java 3.1.3 Official Release</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/07/18/dubbo-java-3.1.3-official-release/</link><pubDate>Mon, 18 Jul 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/07/18/dubbo-java-3.1.3-official-release/</guid><description>&lt;h2 id="dubbo-313">Dubbo 3.1.3&lt;/h2>
&lt;p>&lt;img alt="image.png" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/release/3-1-3.png">&lt;/p>
&lt;h3 id="changes">Changes&lt;/h3>
&lt;ul>
&lt;li>Fixed the issue of abnormal Filter order during local calls&lt;/li>
&lt;li>Supported importing protocol configuration items into MetadataService&lt;/li>
&lt;li>Supported automatically selecting available ports when publishing MetadataService&lt;/li>
&lt;li>Improved error code content&lt;/li>
&lt;li>Supported consistent hashing load balancing in generic calls&lt;/li>
&lt;li>Fixed deserialization exception issue during generic calls&lt;/li>
&lt;li>Fixed application-level metadata reuse issue caused by inconsistent JVM Methods order&lt;/li>
&lt;li>Defaulted to disabling port reuse capability and fixed the remoting component&amp;rsquo;s inability to find SPI&lt;/li>
&lt;li>Fixed safe guard issues caused by abnormal reference counting&lt;/li>
&lt;li>Removed guava dependency used in Nacos registry component&lt;/li>
&lt;li>Fixed offline issue due to address aggregation when using Nacos registry at the interface level&lt;/li>
&lt;li>Multiple code quality optimization commits&lt;/li>
&lt;/ul>
&lt;h3 id="new-contributors">New Contributors&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://github.com/zhangzq7">@zhangzq7&lt;/a> made the first contribution in &lt;a href="https://github.com/apache/dubbo/pull/10847">#10847&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/akaakking">@akaakking&lt;/a> made the first contribution in &lt;a href="https://github.com/apache/dubbo/pull/10799">#10799&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/wxbty">@wxbty&lt;/a> made the first contribution in &lt;a href="https://github.com/apache/dubbo/pull/10921">#10921&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/haoxz11">@haoxz11&lt;/a> made the first contribution in &lt;a href="https://github.com/apache/dubbo/pull/10937">#10937&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="new-contributor">New Contributor&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://github.com/weixsun">@weixsun&lt;/a> made the first contribution in &lt;a href="https://github.com/apache/dubbo/pull/10941">#10941&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="future-version-planning">Future Version Planning&lt;/h2>
&lt;p>What are the differences between 3.0, 3.1, and 3.2? How will it develop in the future? What is the release cycle? More version iteration plans will be released soon; please follow the official Apache Dubbo WeChat account for the latest information.&lt;/p></description></item><item><title>Dubbo Java 3.2.0-beta.3 Official Release</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/12/18/dubbo-java-3.2.0-beta.3-official-release/</link><pubDate>Sun, 18 Dec 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/12/18/dubbo-java-3.2.0-beta.3-official-release/</guid><description>&lt;p>Dubbo version 3.2.0-beta.3 is the latest feature version of Dubbo 3, supporting new features such as Spring Boot 3, JDK 17, service-level thread pool isolation, and more. Everyone is welcome to try it out.&lt;/p>
&lt;h1 id="dubbo-320-beta3">Dubbo 3.2.0-beta.3&lt;/h1>
&lt;p>&lt;img alt="image.png" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/release/3-2-0-beta-3.png">&lt;/p>
&lt;p>&lt;strong>Note: The codebase of Dubbo 3.2.0-beta.3 is identical to Dubbo 3.1.4, so all modifications included in Dubbo 3.1.4 are also present in Dubbo 3.2.0-beta.3. Duplicate content will not be repeated in the following description.&lt;/strong>&lt;/p></description></item><item><title>Dubbo 3.2.0-beta.2 Official Release</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/11/18/dubbo-3.2.0-beta.2-official-release/</link><pubDate>Fri, 18 Nov 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/11/18/dubbo-3.2.0-beta.2-official-release/</guid><description>&lt;h2 id="dubbo-320-beta2">Dubbo 3.2.0-beta.2&lt;/h2>
&lt;p>&lt;img alt="image.png" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/release/3-2-0-beta-2.png">&lt;/p>
&lt;h3 id="changes">Changes&lt;/h3>
&lt;ul>
&lt;li>Switched to user thread serialization to enhance protocol performance&lt;/li>
&lt;li>Supported port reuse for Netty3&lt;/li>
&lt;li>Fixed the issue where providedBy does not work with multiple user configurations&lt;/li>
&lt;li>Supported istio&amp;rsquo;s first-party-jwt capability&lt;/li>
&lt;li>Removed transitive dependencies of fastjson and gson&lt;/li>
&lt;li>Supported optional appResponse non-transmission capability&lt;/li>
&lt;li>Switched to Fastjson2 as the default serialization dependency&lt;/li>
&lt;li>Improved the logs pushed by the registration center&lt;/li>
&lt;li>Fixed the issue where the routing refresh timing is earlier than the service directory refresh timing&lt;/li>
&lt;li>Disabled address null protection&lt;/li>
&lt;li>Updated SPI code generation to support GraalVM Native&lt;/li>
&lt;li>Supported transmitting xds channels in plain text mode&lt;/li>
&lt;li>Supported Nacos batch registration and fixed multi-registration overlay issues&lt;/li>
&lt;li>Supported Spring Framework 6 and Spring Boot 3&lt;/li>
&lt;li>Multiple code quality optimization commits&lt;/li>
&lt;li>All changes from the aforementioned Dubbo 3.1.3&lt;/li>
&lt;/ul>
&lt;h3 id="new-contributors">New Contributors&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://github.com/weixsun">@weixsun&lt;/a> made their first contribution in &lt;a href="https://github.com/apache/dubbo/pull/10941">#10941&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="future-release-planning">Future Release Planning&lt;/h2>
&lt;p>What are the differences between 3.0, 3.1, and 3.2? How will it develop in the future? What is the release cycle like? More version iteration plans will be announced soon, and you are welcome to follow the official Apache Dubbo WeChat account for the latest information.&lt;/p></description></item><item><title>Dubbo Java 2.7.14 Release Announcement</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2020/05/18/dubbo-java-2.7.14-release-announcement/</link><pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2020/05/18/dubbo-java-2.7.14-release-announcement/</guid><description>&lt;h2 id="changes">Changes&lt;/h2>
&lt;ul>
&lt;li>Added coverage rules for dynamic configuration center in ServiceDiscovery. (#8389)&lt;/li>
&lt;li>Fixed the issue where mock parameters containing &amp;lsquo;:&amp;rsquo; or &amp;lsquo;=&amp;rsquo; could not be used properly. (#8379)&lt;/li>
&lt;li>Fixed the issue where the zone parameter could not take effect for ZoneAwareClusterInvoker configuration. (#8521)&lt;/li>
&lt;li>Added a switch for serialization whitelist checks, default is true. (#8537)&lt;/li>
&lt;li>Fixed the null pointer exception during serialization checks when the request times out. (#8587)&lt;/li>
&lt;li>Fixed the issue where NetUtils.ignoreNetworkInterface could not handle network cards containing &amp;lsquo;(&amp;rsquo; symbol. (#8629)&lt;/li>
&lt;li>Unified the method for obtaining local addresses. (#8679)&lt;/li>
&lt;li>Fixed the issue where a retry count of 0 would still retry once. (#8743)&lt;/li>
&lt;li>Immediately close the client when clearing unused invokers. (#8756)&lt;/li>
&lt;li>Fixed exceptions in the destroy method and doOverrideIfNecessary. (#8683)&lt;/li>
&lt;li>DefaultFuture.closeChannel chooses whether to print detailed request data based on log level. (#8778)&lt;/li>
&lt;li>Replaced AttachmentsAdapter with MapUtils. (#8772)&lt;/li>
&lt;/ul>
&lt;h2 id="maven-dependency-changes">Maven Dependency Changes&lt;/h2>
&lt;ul>
&lt;li>netty4: 4.1.51.Final -&amp;gt; 4.1.66.Final&lt;/li>
&lt;li>netty4_ssl: 2.0.39.Final -&amp;gt; 2.0.40.Final&lt;/li>
&lt;li>http_client: 4.5.3 -&amp;gt; 4.5.13&lt;/li>
&lt;li>jetty: 9.4.11.v20180605 -&amp;gt; 9.4.43.v20210629&lt;/li>
&lt;li>apollo_client: 1.1.1 -&amp;gt; 1.8.0&lt;/li>
&lt;li>tomcat_embed: 8.5.31-&amp;gt; 9.0.48&lt;/li>
&lt;li>commons_io: 2.6 -&amp;gt; 2.7&lt;/li>
&lt;li>curator: 5.0.0 -&amp;gt; 5.1.0&lt;/li>
&lt;li>hessian_lite: 3.2.8 -&amp;gt; 3.2.11&lt;/li>
&lt;/ul></description></item><item><title>Apache Dubbo 3.3 Released: Triple X Leads a New Era of Microservices Communication</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2024/09/11/apache-dubbo-3.3-released-triple-x-leads-a-new-era-of-microservices-communication/</link><pubDate>Wed, 11 Sep 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2024/09/11/apache-dubbo-3.3-released-triple-x-leads-a-new-era-of-microservices-communication/</guid><description>&lt;p>Apache Dubbo has surpassed 40,000 stars, and the team is proud to announce the official release of Dubbo 3.3! As a leading open-source microservices framework, Dubbo has always been committed to providing developers with high-performance, scalable, and flexible solutions for distributed services. The release of Dubbo 3.3, featuring the &lt;strong>Triple X&lt;/strong> upgrade, breaks previous limitations, achieving comprehensive support for both north-south and east-west traffic, and enhancing compatibility with cloud-native architectures.&lt;/p></description></item><item><title>Tracing Dubbo With OpenTelemetry</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2024/01/31/tracing-dubbo-with-opentelemetry/</link><pubDate>Wed, 31 Jan 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2024/01/31/tracing-dubbo-with-opentelemetry/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>This case shows using OpenTelemetry(otlp) as the Tracer in the Dubbo project to report the Trace information to the Otlp Collector, which then forwards it to Zipkin and Jagger. &lt;a href="https://github.com/conghuhu/dubbo-samples/tree/master/4-governance/dubbo-samples-tracing/dubbo-samples-spring-boot-tracing-otel-otlp">Code address&lt;/a>&lt;/p>
&lt;p>It consists of three parts：&lt;/p>
&lt;ul>
&lt;li>dubbo-samples-spring-boot-tracing-otel-oltp-interface&lt;/li>
&lt;li>dubbo-samples-spring-boot-tracing-otel-oltp-provider&lt;/li>
&lt;li>dubbo-samples-spring-boot-tracing-otel-oltp-consumer&lt;/li>
&lt;/ul>
&lt;h2 id="architecture">Architecture&lt;/h2>
&lt;p>&lt;img alt="architecture architecture" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/v3/tasks/observability/tracing/otlp/demo_arch.png">&lt;/p>
&lt;h2 id="quick-start">Quick Start&lt;/h2>
&lt;h3 id="install--start-otlp-collector">Install &amp;amp; start Otlp Collector&lt;/h3>
&lt;p>Follow &lt;a href="https://OpenTelemetry.io/docs/collector/getting-started/">OpenTelemetry Collector Quick Start&lt;/a> to start the otlp collector.&lt;/p>
&lt;h3 id="start-provider">Start Provider&lt;/h3>
&lt;p>Run &lt;code>org.apache.dubbo.springboot.demo.provider.ProviderApplication&lt;/code> directly from IDE.&lt;/p>
&lt;h3 id="start-consumer">Start Consumer&lt;/h3>
&lt;p>Start &lt;code>org.apache.dubbo.springboot.demo.consumer.ConsumerApplication&lt;/code> directly from IDE.&lt;/p></description></item><item><title>Apache Dubbo Next Generation Cloud Native Microservices Challenge Registration Open! Five Major Topics with a 500,000 RMB Prize Pool Await You</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2024/01/18/apache-dubbo-next-generation-cloud-native-microservices-challenge-registration-open-five-major-topics-with-a-500000-rmb-prize-pool-await-you/</link><pubDate>Thu, 18 Jan 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2024/01/18/apache-dubbo-next-generation-cloud-native-microservices-challenge-registration-open-five-major-topics-with-a-500000-rmb-prize-pool-await-you/</guid><description>&lt;p>This article provides a detailed interpretation of the competition topics. For the official registration channel of the OpenAtom Open Source Foundation, please refer to the link and QR code at the end of the article.&lt;/p>
&lt;h2 id="topic-interpretation">Topic Interpretation&lt;/h2>
&lt;p>We look forward to participating teams to continuously explore high-performance Triple (HTTP/3) protocol design, a robust Benchmark acceptance system, zero-trust solutions, and Service Mesh architecture, jointly defining the next generation cloud-native microservice system, bringing benefits in performance and security to the open-source community and enterprise users.&lt;/p></description></item><item><title>Generate Project Scaffolding via Template</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/12/31/generate-project-scaffolding-via-template/</link><pubDate>Sun, 31 Dec 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/12/31/generate-project-scaffolding-via-template/</guid><description>&lt;p>&lt;a href="https://start.dubbo.apache.org/bootstrap.html" target="_blank">Dubbo Initializer&lt;/a> can be used to quickly generate Java project scaffolding, helping to simplify the setup, basic configuration, and component dependency management of microservice projects.&lt;/p>
&lt;blockquote>
&lt;p>The Initializer is still being updated, and more support for Dubbo Features will be released gradually.&lt;/p>
&lt;/blockquote>
&lt;h2 id="choose-dubbo-version">Choose Dubbo Version&lt;/h2>
&lt;p>The Initializer will use &lt;code>dubbo-spring-boot-starter&lt;/code> to create Spring Boot projects, so we need to first choose the versions of Dubbo and Spring Boot.&lt;/p>
&lt;p>&lt;img alt="initializer-choose-version" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/v3/tasks/develop/initializer-choose-version.png">&lt;/p>
&lt;h2 id="enter-basic-project-information">Enter Basic Project Information&lt;/h2>
&lt;p>Next, fill in the basic project information, including project coordinates, project name, package name, JDK version, etc.&lt;/p></description></item><item><title>IntelliJ IDEA❤️Apache Dubbo, Official IDEA Plugin Released!</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/10/23/intellij-idea%EF%B8%8Fapache-dubbo-official-idea-plugin-released/</link><pubDate>Mon, 23 Oct 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/10/23/intellij-idea%EF%B8%8Fapache-dubbo-official-idea-plugin-released/</guid><description>&lt;p>The most popular Java Integrated Development Environment, IntelliJ IDEA, has teamed up with the open-source microservices framework Apache Dubbo community, bringing great news to microservices developers. Alongside IntelliJ IDEA version 2023.2, &lt;strong>Jetbrains officially released a new plugin - Apache Dubbo in Spring Framework&lt;/strong>.&lt;/p>
&lt;p>&lt;img alt="IntelliJ IDEA loves️ Apache Dubbo" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/2023/10/plugin/img_6.png">&lt;/p>
&lt;p>This plugin helps developers address Dubbo project initialization issues and facilitates the identification of Dubbo services and their dependencies during the project development process, making microservice development based on Apache Dubbo very simple.&lt;/p></description></item><item><title>CoC Asia 2023 Conference Highlights</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/08/25/coc-asia-2023-conference-highlights/</link><pubDate>Fri, 25 Aug 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/08/25/coc-asia-2023-conference-highlights/</guid><description>&lt;p>This includes the complete transcripts of the speeches and highlights from the event. For more PPTs and video recordings, please follow the &amp;ldquo;apachedubbo&amp;rdquo; WeChat official account.&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://deploy-preview-3199--dubbo.netlify.app/zh-cn/blog/2023/10/07/%E5%9F%BA%E4%BA%8E-triple-%E5%AE%9E%E7%8E%B0-web-%E7%A7%BB%E5%8A%A8%E7%AB%AF%E5%90%8E%E7%AB%AF%E5%85%A8%E9%9D%A2%E6%89%93%E9%80%9A/">Realizing Full Connectivity of Web, Mobile, and Backend Microservices Based on Triple Protocol&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-3199--dubbo.netlify.app/zh-cn/blog/2023/10/07/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E4%BD%A0%E9%83%A8%E7%BD%B2dubbo%E5%BA%94%E7%94%A8%E5%88%B0kubernetes-apache-dubbo-kubernetes-%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/">Step-by-Step Guide to Deploying Dubbo Applications on Kubernetes - Best Practices for Apache Dubbo &amp;amp; Kubernetes&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-3199--dubbo.netlify.app/zh-cn/blog/2023/10/07/apache-dubbo-%E4%BA%91%E5%8E%9F%E7%94%9F%E5%8F%AF%E8%A7%82%E6%B5%8B%E6%80%A7%E7%9A%84%E6%8E%A2%E7%B4%A2%E4%B8%8E%E5%AE%9E%E8%B7%B5/">Exploration and Practice of Cloud-Native Observability in Apache Dubbo&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-3199--dubbo.netlify.app/zh-cn/blog/2023/10/07/opensergo-dubbo-%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%B2%BB%E7%90%86%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/">Best Practices for Opensergo &amp;amp; Dubbo Microservices Governance&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-3199--dubbo.netlify.app/zh-cn/blog/2023/10/07/seata-%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84%E4%B8%8B%E7%9A%84%E4%B8%80%E7%AB%99%E5%BC%8F%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/">One-Stop Distributed Transaction Solution under Seata Microservices Architecture&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-3199--dubbo.netlify.app/zh-cn/blog/2023/10/07/%E5%90%AF%E5%8A%A8%E9%80%9F%E5%BA%A6%E6%8F%90%E5%8D%8710%E5%80%8Dapache-dubbo-%E9%9D%99%E6%80%81%E5%8C%96-graalvm-native-image-%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90/">10x Startup Speed Improvement: Deep Dive into Apache Dubbo - Static GraalVM Native Image&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-3199--dubbo.netlify.app/zh-cn/blog/2023/10/07/%E6%94%BF%E9%87%87%E4%BA%91%E5%9F%BA%E4%BA%8Edubbo%E7%9A%84%E6%B7%B7%E5%90%88%E4%BA%91%E6%95%B0%E6%8D%AE%E8%B7%A8%E7%BD%91%E5%AE%9E%E8%B7%B5/">Hybrid Cloud Data Cross-Network Practice Based on Dubbo by Government Procurement Cloud&lt;/a>&lt;/li>
&lt;li>Distributed Construction and Transformation Practice of Industrial and Commercial Bank of China&lt;/li>
&lt;/ul>
&lt;p>&lt;img alt="dubbo-members-justin" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/2023/8/apachecon-summary/dubbo-members-justin.jpg">&lt;/p></description></item><item><title>Dubbo Microservices Forum - See You at the ApacheCon Conference in Beijing on August 19</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/08/07/dubbo-microservices-forum-see-you-at-the-apachecon-conference-in-beijing-on-august-19/</link><pubDate>Mon, 07 Aug 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/08/07/dubbo-microservices-forum-see-you-at-the-apachecon-conference-in-beijing-on-august-19/</guid><description>&lt;p>The Dubbo Microservices Forum will be held on the afternoon of August 19 at the Lihong Huayuan Hotel in Beijing. As a key topic of the CommunityOverCode Asia 2023 (formerly ApacheCon Asia), we will focus on Apache Dubbo and bring you exciting content on the development direction of open-source microservices technology, cloud-native microservices selection, and enterprise practice sharing!&lt;/p>
&lt;p>Open the &lt;a href="https://www.bagevent.com/event/cocasia-2023">official ticket purchase link&lt;/a>, enter the cocasia discount code for a 20% discount!&lt;/p></description></item><item><title>GLCC x Apache Dubbo Programming Summer Camp Registration Starts</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/07/05/glcc-x-apache-dubbo-programming-summer-camp-registration-starts/</link><pubDate>Wed, 05 Jul 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/07/05/glcc-x-apache-dubbo-programming-summer-camp-registration-starts/</guid><description>&lt;h2 id="background-introduction">Background Introduction&lt;/h2>
&lt;p>The GitLink Programming Summer Camp (GLCC) is a summer programming activity for university students across the country, organized by the CCF Open Source Development Committee (CCF ODC) under the guidance of the CCF China Computer Federation. The activity will cover nearly a thousand universities and will collaborate with major open-source foundations, open-source companies, open-source communities, and open-source experts. The aim is to encourage young students to improve their technical abilities by participating in real open source software development and to nurture outstanding talents for the open source community. It provides a friendly and open communication platform for young students and hopes to further promote the prosperity and development of the domestic open source community.&lt;/p></description></item><item><title>Apache Dubbo Open Source Summer 2023, Contributing to the Community to Win 12,000 in Bonuses</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/05/15/apache-dubbo-open-source-summer-2023-contributing-to-the-community-to-win-12000-in-bonuses/</link><pubDate>Mon, 15 May 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/05/15/apache-dubbo-open-source-summer-2023-contributing-to-the-community-to-win-12000-in-bonuses/</guid><description>&lt;p>Welcome students to participate in Apache Dubbo Open Source Summer. Community mentors will guide you to &lt;strong>make your code widely reused in society and earn up to 12,000 in bonuses. You can&lt;/strong> also get a job/internship recommendation at your desired company, &lt;strong>gaining money, growth, and value&lt;/strong>. What are you waiting for? Registration is closing soon, join the Apache Dubbo Open Source Summer.&lt;/p>
&lt;h2 id="what-is-ospp-open-source-summer">What is OSPP Open Source Summer?&lt;/h2>
&lt;p>The Open Source Summer is a summer open-source program initiated and supported by the &amp;ldquo;Open Source Software Supply Chain Lighting Project,&amp;rdquo; aimed at encouraging &lt;strong>students&lt;/strong> to actively participate in the development and maintenance of open-source software, promoting the vigorous development of excellent open-source communities, and nurturing more outstanding developers.&lt;/p></description></item><item><title>Advancing Cloud Native - Dubbo 3.2 Official Release</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/04/15/advancing-cloud-native-dubbo-3.2-official-release/</link><pubDate>Sat, 15 Apr 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/04/15/advancing-cloud-native-dubbo-3.2-official-release/</guid><description>&lt;h2 id="background-introduction">Background Introduction&lt;/h2>
&lt;p>Apache Dubbo is an RPC service development framework designed to solve service governance and communication issues in microservice architectures, with official SDK implementations in Java, Golang, and other languages. Microservices developed with Dubbo possess inherent capabilities for remote address discovery and communication, leveraging Dubbo&amp;rsquo;s rich service governance features to fulfill service governance needs such as service discovery, load balancing, and traffic management. Dubbo is designed to be highly extensible, allowing users to easily implement various custom logic for traffic interception and location selection.&lt;/p></description></item><item><title>2022 Annual Summary and 2023 New Year Plan</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/02/23/2022-annual-summary-and-2023-new-year-plan/</link><pubDate>Thu, 23 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/02/23/2022-annual-summary-and-2023-new-year-plan/</guid><description>&lt;p>&lt;img alt="dubbo-introduction" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/2023/2/roadmap/2023-roadmap.jpg">&lt;/p>
&lt;h2 id="2022-annual-summary">2022 Annual Summary&lt;/h2>
&lt;h3 id="1-dubbo-open-source-12th-anniversary">1 Dubbo Open Source 12th Anniversary&lt;/h3>
&lt;p>50k+ stars, 30k forks, 1000+ contributors&lt;/p>
&lt;h3 id="2-dubbo3-milestones">2 Dubbo3 Milestones&lt;/h3>
&lt;h3 id="achieved-large-scale-production-verification">Achieved Large-Scale Production Verification&lt;/h3>
&lt;p>Alibaba&amp;rsquo;s core microservice cluster achieved a comprehensive upgrade from HSF to Dubbo3, successfully supporting trillion-level service calls during Double Eleven and Double Twelve.&lt;/p>
&lt;h3 id="focus-on-multi-language-ecosystem">Focus on Multi-Language Ecosystem&lt;/h3>
&lt;h4 id="production-ready-conditions">Production-Ready Conditions&lt;/h4>
&lt;p>Java, Go&lt;/p>
&lt;h4 id="from-incubation-to-maturity">From Incubation to Maturity&lt;/h4>
&lt;p>Rust, Node.js, Python&lt;/p>
&lt;h3 id="3-core-technologies">3 Core Technologies&lt;/h3>
&lt;p>Application-Level Service Discovery
HTTP/2 Protocol
Traffic Control Upgrade
Observability
Adaptive Load Balancing
Proxyless Mesh
Spring Boot 3 &amp;amp; Spring 6&lt;/p></description></item><item><title>A Quick Guide to Understanding the Core Capabilities of Dubbo</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/02/23/a-quick-guide-to-understanding-the-core-capabilities-of-dubbo/</link><pubDate>Thu, 23 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/02/23/a-quick-guide-to-understanding-the-core-capabilities-of-dubbo/</guid><description>&lt;h2 id="introduction-to-dubbo">Introduction to Dubbo&lt;/h2>
&lt;h3 id="one-sentence-definition">One-Sentence Definition&lt;/h3>
&lt;p>Apache Dubbo is a microservices development framework that helps solve communication problems in microservices development while providing service governance capabilities for building enterprise-level microservices. Dubbo is not tied to a specific programming language; our goal is to provide a peer-to-peer microservices development experience for all mainstream languages.
&lt;img alt="overview" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/2023/2/introduction/1-overview.jpg">&lt;/p>
&lt;h3 id="basic-architecture">Basic Architecture&lt;/h3>
&lt;p>&lt;img alt="overview" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/2023/2/introduction/2-arc.jpg">&lt;/p>
&lt;p>Dubbo&amp;rsquo;s architecture is divided into the data plane and control plane. In the data plane, microservices developed with Dubbo communicate via the RPC protocol. The DubboAdmin control plane serves as an abstract entry point for service governance, composed of a series of optional service governance components responsible for service discovery, traffic control policies, and visual monitoring of Dubbo clusters.&lt;/p></description></item><item><title>Exploration and Improvement of Dubbo in Proxyless Mesh Mode</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/02/02/exploration-and-improvement-of-dubbo-in-proxyless-mesh-mode/</link><pubDate>Thu, 02 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/02/02/exploration-and-improvement-of-dubbo-in-proxyless-mesh-mode/</guid><description>&lt;h2 id="i-background">I. Background&lt;/h2>
&lt;p>With the emergence of Docker and Kubernetes, a large monolithic application can be split into multiple independently deployed microservices, packaged, and run in corresponding containers. Different applications communicate with each other to jointly complete a function module. The benefits of microservices architecture and containerized deployment are evident as they reduce the coupling between services, facilitate development and maintenance, and make better use of computing resources. However, microservices architecture also has corresponding drawbacks:&lt;/p></description></item><item><title>Dubbo 3.1.5 and 3.2.0-beta.4 Official Release</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/01/30/dubbo-3.1.5-and-3.2.0-beta.4-official-release/</link><pubDate>Mon, 30 Jan 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2023/01/30/dubbo-3.1.5-and-3.2.0-beta.4-official-release/</guid><description>&lt;p>Dubbo 3.1.5 is the latest stable version of Dubbo 3, and we recommend all users upgrade to the latest stable version. Dubbo 3.2.0-beta.4 is the latest feature version of Dubbo 3, supporting new features such as Spring Boot 3, JDK 17, and service-grained thread pool isolation. We welcome everyone to try it out.&lt;/p>
&lt;h1 id="dubbo-315">Dubbo 3.1.5&lt;/h1>
&lt;p>&lt;img alt="image.png" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/release/3-1-5.png">&lt;/p>
&lt;h3 id="new-features">New Features&lt;/h3>
&lt;ul>
&lt;li>Dubbo QoS supports request logging for auditing&lt;/li>
&lt;li>Supports timed retries after service mapping failures to reduce the impact of metadata center fluctuations&lt;/li>
&lt;li>Supports health checks when initializing the Nacos Client, with retries allowed under certain limits if it fails, reducing stability issues due to Nacos performance&lt;/li>
&lt;li>Supports a serialization class check mechanism, with log alert mode enabled by default&lt;/li>
&lt;/ul>
&lt;h3 id="bugfix">Bugfix&lt;/h3>
&lt;ul>
&lt;li>Fix the log level of the resource loader&lt;/li>
&lt;li>Fix lazy loading of the Scope Model in the Dubbo configuration class to avoid triggering unintended default module initialization&lt;/li>
&lt;li>Fix logic for obtaining ClassLoader in ReferenceConfig&lt;/li>
&lt;li>Fix NPE issue when the Metadata Service retrieves the subscription service list&lt;/li>
&lt;li>Fix issue with Metadata configuration override when integrating with Spring Cloud Rest mode&lt;/li>
&lt;li>Fix potential deadlock issue during Spring lazy loading&lt;/li>
&lt;li>Fix invalid logs for duplicated ports&lt;/li>
&lt;li>Fix issue where Active Limit Filter is ineffective&lt;/li>
&lt;li>Fix issue of invalid writing during Nacos CAS checks on service mapping&lt;/li>
&lt;li>Fix single-node service not found issue during service publishing in Zookeeper registry for application-level service discovery&lt;/li>
&lt;li>Fix high conflict rate issue due to unawaited conflicts after service mapping&lt;/li>
&lt;li>Fix node update failure issue in application-level service discovery&lt;/li>
&lt;li>Fix ineffective application-level configuration overrides&lt;/li>
&lt;li>Fix issue with original Revision metadata being inaccessible after application-level address refresh&lt;/li>
&lt;li>Fix issue where Zookeeper registry unsubscribes application-level service discovery and cannot resubscribe&lt;/li>
&lt;li>Compatibility fix for Nacos consistency errors during frequent refreshes&lt;/li>
&lt;li>Disable local cache switch for Nacos&lt;/li>
&lt;li>Fix issue of ineffective uppercase Attachment transmission in Triple&lt;/li>
&lt;li>Fix deserialization errors for specific classes in Triple processing&lt;/li>
&lt;li>Fix unexpected exceptions thrown when Protobuf dependencies do not exist&lt;/li>
&lt;li>Fix ineffective CountDown feature&lt;/li>
&lt;li>Fix ClassLoader not switching during Triple deserialization&lt;/li>
&lt;/ul>
&lt;h3 id="faq">FAQ&lt;/h3>
&lt;p>This release includes 5 commits related to the improvement of exception log FAQs. For more information on error code mechanisms, please refer to the official website &lt;a href="https://deploy-preview-3199--dubbo.netlify.app/en/overview/java-sdk/reference-manual/faq/intro/">Error Code Mechanism Introduction&lt;/a>.&lt;/p></description></item><item><title>How to proxy Dubbo service in Apache ShenYu Gateway</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/05/04/how-to-proxy-dubbo-service-in-apache-shenyu-gateway/</link><pubDate>Wed, 04 May 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/05/04/how-to-proxy-dubbo-service-in-apache-shenyu-gateway/</guid><description>&lt;p>&lt;img alt="img" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/shenyu-dubbo/ApacheShenYu-Dubbo-en.png">&lt;/p>
&lt;h2 id="1-introduction">1. Introduction&lt;/h2>
&lt;ul>
&lt;li>Apache ShenYu&lt;/li>
&lt;/ul>
&lt;p>&lt;img alt="img" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/shenyu-dubbo/shenyu.png">&lt;/p>
&lt;p>&lt;a href="https://shenyu.apache.org/docs/index">Apache ShenYu(Incubating)&lt;/a> is an asynchronous, high-performance, cross-language, responsive &lt;code>API&lt;/code> gateway. Compatible with a variety of mainstream framework systems, support for hot-plugging, users can customize the development to meet the current and future needs of users in a variety of scenarios, experienced large-scale scenarios hammered.&lt;/p>
&lt;p>In May 2021, &lt;code>ShenYu&lt;/code> was donated to the &lt;code>Apache&lt;/code> Software Foundation, and the Apache Foundation voted unanimously to enter the incubator.&lt;/p></description></item><item><title>Makes it More Convenient for You to Proxy Dubbo Services in Apache APISIX</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/01/18/makes-it-more-convenient-for-you-to-proxy-dubbo-services-in-apache-apisix/</link><pubDate>Tue, 18 Jan 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2022/01/18/makes-it-more-convenient-for-you-to-proxy-dubbo-services-in-apache-apisix/</guid><description>&lt;h2 id="background">Background&lt;/h2>
&lt;p>&lt;a href="https://deploy-preview-3199--dubbo.netlify.app/en/">Apache Dubbo&lt;/a> is a MicroService development framework open sourced by Alibaba and donated to Apache, which provides two key capabilities of RPC communication and microservice governance. It has not only been validated by Ali&amp;rsquo;s massive traffic in e-commerce scenario, but also been widely implemented in domestic technology companies.&lt;/p>
&lt;p>In practical application scenarios, Apache Dubbo is generally used as the implementation framework for RPC calls between back-end systems, and when HTTP interfaces need to be provided to the front-end, the Dubbo Service is packaged as an HTTP interface through a &amp;ldquo;glue layer&amp;rdquo; and then delivered to the front-end system.&lt;/p></description></item><item><title>Dubbo Java 3.0.2.1 Release Announcement</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/08/23/dubbo-java-3.0.2.1-release-announcement/</link><pubDate>Mon, 23 Aug 2021 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/08/23/dubbo-java-3.0.2.1-release-announcement/</guid><description>&lt;p>This is a bug fix version of 3.0.2.&lt;br>
It is identical to version 3.0.2 except for the following changes.&lt;/p>
&lt;h2 id="bug-fixes">Bug Fixes&lt;/h2>
&lt;ul>
&lt;li>Fixed the issue where nacos group did not take effect on the consumer side (#8533)&lt;/li>
&lt;li>Fixed NPE in request timeout serialization check (#8547)&lt;/li>
&lt;li>Compatible with the issue of not importing the fabric-io package when using dubbo-all (#8546)&lt;/li>
&lt;/ul></description></item><item><title>Dubbo Java 3.0.1 Release Announcement</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/07/02/dubbo-java-3.0.1-release-announcement/</link><pubDate>Fri, 02 Jul 2021 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/07/02/dubbo-java-3.0.1-release-announcement/</guid><description>&lt;h2 id="optimization">Optimization&lt;/h2>
&lt;ul>
&lt;li>Refactored service introspection mapping relationship, supporting direct configuration of upstream application name during address migration&lt;/li>
&lt;li>Added caching for Spring scanning&lt;/li>
&lt;li>Optimized configuration overriding logic&lt;/li>
&lt;li>Supported controlling Dubbo lifecycle in Servlet environment&lt;/li>
&lt;li>Added ServiceListener for listening to ServiceConfig&lt;/li>
&lt;li>Optimized method callback parameter settings&lt;/li>
&lt;/ul>
&lt;h2 id="bug-fixes">Bug Fixes&lt;/h2>
&lt;ul>
&lt;li>Enabled strict validation&lt;/li>
&lt;li>Corrected logic where one registry center would destroy when started without addresses under multiple registry centers&lt;/li>
&lt;li>Removed redundant log outputs&lt;/li>
&lt;li>Ignored invalid MetadataReportConfig&lt;/li>
&lt;li>Fixed NPE situation during consumer startup&lt;/li>
&lt;li>Fixed several compatibility issues with lower versions&lt;/li>
&lt;li>Fixed several issues in application-level service discovery logic&lt;/li>
&lt;li>Optimized address migration rules, supporting application-level address re-subscription&lt;/li>
&lt;li>Fixed NPE situations existing in MetadataInfo&lt;/li>
&lt;li>Fixed the issue where instance information registered to the registry center at the application level was incorrectly overwritten&lt;/li>
&lt;/ul>
&lt;h2 id="code-quality-improvement">Code Quality Improvement&lt;/h2>
&lt;p>Thanks to the following contributions that enhanced the stability of Apache Dubbo.&lt;/p></description></item><item><title>Can Apache Dubbo, Now a Decade Old, Ride the Waves Again?</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/01/14/can-apache-dubbo-now-a-decade-old-ride-the-waves-again/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/01/14/can-apache-dubbo-now-a-decade-old-ride-the-waves-again/</guid><description>&lt;p>&lt;img alt="img" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/dubbo-go/10years/dubbo-home.png">&lt;/p>
&lt;p>Throughout the history of open source in China, it is hard to find a second project as controversial and discussed as Dubbo.&lt;/p>
&lt;p>On one hand, its open source in 2011 filled the gap of RPC frameworks used in production environments, and it was widely adopted upon release; on the other hand, it experienced a halt in maintenance, a restart, donation to the Apache Foundation, and then graduated as a top-level project.&lt;/p></description></item><item><title>Dubbo Go 1.5.0</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/01/14/dubbo-go-1.5.0/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/01/14/dubbo-go-1.5.0/</guid><description>&lt;h2 id="quote">Quote&lt;/h2>
&lt;p>The wave of computer technology brings disruptive changes every decade, and related knowledge systems innovate at least every five years, approximately halving in value every two years. This also applies to the field of application service communication frameworks. For any communication framework with long-term viability, there is usually a five-year growth phase and a five-year stable maturity phase. Each era has its matching application communication framework; for example, in the 2G era twenty years ago, the cross-language and cross-platform gRPC, while strong, would not have been adopted due to its weak performance.&lt;/p></description></item><item><title>Dubbo Go Hessian2 v1.6.0</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/01/14/dubbo-go-hessian2-v1.6.0/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/01/14/dubbo-go-hessian2-v1.6.0/</guid><description>&lt;h2 id="1-cache-optimization">1. Cache Optimization&lt;/h2>
&lt;p>dubbo-go-hessian2 extensively uses struct type information for data parsing, and this information can be cached and reused, resulting in a twofold performance improvement. For detailed optimization process records, refer to &lt;a href="https://mp.weixin.qq.com/s/ouVxldQAt0_4BET7srjJ6Q">“Performance Optimization of dubbo-go-hessian2”&lt;/a>.&lt;/p>
&lt;p>Corresponding PR &lt;a href="https://github.com/apache/dubbo-go-hessian2/pull/179">#179&lt;/a>, author &lt;a href="https://github.com/micln">micln&lt;/a>.&lt;/p>
&lt;h2 id="2-string-parsing-performance-optimization">2. String Parsing Performance Optimization&lt;/h2>
&lt;p>Due to the definition of string in Hessian (Dubbo serialization protocol referred to as Hessian), which represents it as a 16-bit Unicode UTF-8 format, the character length is represented as a 16-bit character count. This specification was established only for Java, where a character is 16 bits corresponding to UTF-16. The Hessian library also serializes each character. However, in Go, characters correspond to UTF-8, and the rune in dubbo-go-hessian2 is 32 bits, mapping one-to-one with Unicode. For character ranges U+10000 to U+10FFFF, they need to be converted to two-byte surrogate pairs to align with Java&amp;rsquo;s serialization method.&lt;/p></description></item><item><title>Dubbo Go 1.4.0</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/01/12/dubbo-go-1.4.0/</link><pubDate>Tue, 12 Jan 2021 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/01/12/dubbo-go-1.4.0/</guid><description>&lt;p>Thanks to the active support of the community, we released an exciting version on March 25, 2020—dubbo-go v1.4.0. In addition to continuing to support some existing Dubbo features, dubbo-go has begun some of its own innovative attempts.&lt;/p>
&lt;p>The most significant aspect of this version is the groundwork laid for cloud-native support. For instance, after long discussions within the community, we finally introduced a solution that uses K8s as the registration center.&lt;/p></description></item><item><title>Dubbo Go Review and Outlook</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/01/11/dubbo-go-review-and-outlook/</link><pubDate>Mon, 11 Jan 2021 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2021/01/11/dubbo-go-review-and-outlook/</guid><description>&lt;p>Dubbo is a high-performance RPC framework open-sourced by Alibaba in 2011, which has significant influence in the Java ecosystem. On May 21, 2019, Dubbo graduated from the Apache Software Foundation and became an Apache Top-Level Project. Currently, the graduated Dubbo project&amp;rsquo;s ecosystem has officially announced the introduction of the Go language, releasing the Dubbogo project. This article is a complete review and genuine outlook of the Dubbogo project, collaboratively completed by Yu Yu from Ant Financial and Fang Yincheng from the Ctrip R&amp;amp;D Department.&lt;/p></description></item><item><title>Analysis of Features in Dubbo Java 2.7.5</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2020/05/18/analysis-of-features-in-dubbo-java-2.7.5/</link><pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2020/05/18/analysis-of-features-in-dubbo-java-2.7.5/</guid><description>&lt;p>Recently, the highly anticipated Dubbo 2.7.5 version was officially released. This version introduces many new features, enhances many existing functionalities, and achieves significant performance improvements. It will be a milestone version for both the Dubbo community and developers alike.&lt;/p>
&lt;ul>
&lt;li>Application-level service registration【beta】&lt;/li>
&lt;li>HTTP/2 (gRPC) protocol support&lt;/li>
&lt;li>Protobuf support&lt;/li>
&lt;li>Performance optimization, with a 30% improvement in call chain performance&lt;/li>
&lt;li>Support for TLS secure transport&lt;/li>
&lt;li>Optimized consumer-side thread model&lt;/li>
&lt;li>New load balancing strategies better suited for multi-cluster deployment scenarios&lt;/li>
&lt;li>A brand new application development API (compatible with older versions)【beta】&lt;/li>
&lt;li>Additional feature enhancements and bug fixes&lt;/li>
&lt;/ul>
&lt;p>First, from the perspective of service discovery, the new version breaks through the previous interface-level model and introduces an application-level service discovery mechanism - service introspection. Although this mechanism is still in beta, it lays a solid foundation for Dubbo&amp;rsquo;s alignment with the entire microservices cloud-native system. Thanks to compact protocol design and optimization in code implementation, Dubbo has always performed well in terms of performance, with a further improvement in version 2.7.5. According to stress tests from the official maintenance team, performance in the call chain has improved by 30%. In the cloud-native microservices era, multilingual demand is becoming increasingly common. The universality and penetration of protocols are crucial for building a complete microservice system that connects front-end and back-end services. Dubbo supports HTTP/2 protocol by implementing gRPC protocol while also adding compatibility with Protobuf.&lt;/p></description></item><item><title>Annual Review and Summary of Apache Dubbo from 2019 to 2020</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2020/05/11/annual-review-and-summary-of-apache-dubbo-from-2019-to-2020/</link><pubDate>Mon, 11 May 2020 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2020/05/11/annual-review-and-summary-of-apache-dubbo-from-2019-to-2020/</guid><description>&lt;p>Thank you all for your attention to the Dubbo community. In this article, we will summarize the achievements made by the Dubbo community over the past year, covering both community and framework evolution, and look forward to future plans (roadmap) for the Dubbo community and framework. Community building is a very important aspect of promoting Dubbo&amp;rsquo;s healthy and sustainable development. We need to maintain positive interactions within the community, have active contributors, and engage in constructive discussions. Over the past year, the entire Dubbo community has made significant progress in this regard. In terms of framework evolution, we primarily released 6 feature versions from 2.7.0 to 2.7.5, covering various aspects including programming models, protocols, service governance, and performance optimization. In addition to released features, we also explored deeply into areas such as Dubbo 3.0 protocol, service introspection, and cloud-native directions. Support for these areas will be crucial for Dubbo&amp;rsquo;s future work, and we hope to share more detailed thoughts and plans through this article.&lt;/p></description></item><item><title>Dubbo Admin service test</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/08/26/service-test/</link><pubDate>Mon, 26 Aug 2019 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/08/26/service-test/</guid><description>&lt;p>Based on the metadata of Dubbo2.7, Dubbo Admin implements the service test function, which can call the real service provider on the console through generalized call.&lt;/p>
&lt;h2 id="usage">Usage&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>Deploy the provider: You can download the demo &lt;a href="https://github.com/nzomkxia/dubbo-demo">here&lt;/a>. This project is based on Spring Boot, which is convenient to start in the IDE or command line. For service testing, you only need to start &lt;code>dubbo-basic-provider&lt;/code>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Service-seeking: After completing the server deployment, you can query the corresponding service on the Dubbo Admin&amp;rsquo;s &lt;code>service test&lt;/code> page:
&lt;img alt="testSearch" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/admin/testSearch.jpg">&lt;br>
the information here is similar to the metadata, including the method name, parameter type and return value. Click the label on the right to enter the &lt;code>service test&lt;/code> page.&lt;/p></description></item><item><title>Tracing Dubbo service with Apache Skywalking</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/08/11/tracing-dubbo-service-with-apache-skywalking/</link><pubDate>Sun, 11 Aug 2019 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/08/11/tracing-dubbo-service-with-apache-skywalking/</guid><description>&lt;h2 id="introduction-to-apache-skywalking">Introduction to Apache Skywalking&lt;/h2>
&lt;p>&lt;a href="https://github.com/apache/skywalking">Apache Skywalking&lt;/a> is the APM system that it designed for micro-services architectures and cloud native architecture systems and supports distribute tracking. &lt;a href="https://github.com/apache/skywalking">Apache skywalking (incubator)&lt;/a> collects and analyzes the trace data and generates the relationship between the application and the service metric, Apache skywalking supports multiple languages agent, for example &lt;a href="https://github.com/apache/skywalking">Java&lt;/a>,&lt;a href="https://github.com/OpenSkywalking/skywalking-netcore">.net core&lt;/a>,&lt;a href="https://github.com/OpenSkywalking/skywalking-nodejs">Node.js&lt;/a> and &lt;a href="https://github.com/SkyAPM/go2sky">Go&lt;/a>.&lt;/p>
&lt;p>Currently, Skywalking has supported analysis the operation of distributed systems from 6 visual dimensions. The overview view is a global view of your applications and components, including the number of components and applications, application alarm fluctuations, slow service lists, and application throughput; The topology shows the topological relationship of the whole application; The application view represents the upstream and downstream relationship of the application from single application, TOP N services and servers, JVM, host and process info. The service view focuses on the operation of a single service portal and the upstream and downstream dependencies of this service and it helps the user to optimize and monitor a single service; the trace graph shows all the buried points of the invocation and the execution time of each burial point, and the alarm view is based on the configuration threshold for the application, server, service for real-time alarms&lt;/p></description></item><item><title>Dubbo extensible mechanism source code analysis - part 2</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/05/02/dubbo-extensible-mechanism-source-code-analysis-part-2/</link><pubDate>Thu, 02 May 2019 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/05/02/dubbo-extensible-mechanism-source-code-analysis-part-2/</guid><description>&lt;p>In the &lt;a href="https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/04/25/dubbo-extensible-mechanism-source-code-analysis-part-1/">actual implementation of the Dubbo extensibility mechanism&lt;/a>, we learned some concepts of the Dubbo extension mechanism, explored the implementation of LoadBalance in Dubbo, and implemented a LoadBalance on our own. Do you think Dubbo&amp;rsquo;s extension mechanism is great? Next, we will go deep into the source code of Dubbo and see what it is.&lt;/p>
&lt;h2 id="extensionloader">ExtensionLoader&lt;/h2>
&lt;p>&lt;code>ExtensionLoader&lt;/code> is the core class, which is responsible for the loading and lifecycle management of extension points. Let&amp;rsquo;s start with this class. There are many methods of Extension, and the common methods include:&lt;/p></description></item><item><title>Dubbo extensible mechanism source code analysis - part 1</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/04/25/dubbo-extensible-mechanism-source-code-analysis-part-1/</link><pubDate>Thu, 25 Apr 2019 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/04/25/dubbo-extensible-mechanism-source-code-analysis-part-1/</guid><description>&lt;h2 id="1-extension-mechanism-of-dubbo">1. Extension Mechanism of Dubbo&lt;/h2>
&lt;p>Dubbo is claimed as a high-performance RPC framework on its official website. Today, I want to talk about another great specialty of Dubbo &amp;mdash; its scalability. As quote: Rome wasn’t built in a day. Any successful system always starts as a prototype. It is impossible to design a perfect system at the beginning. Instead, we should focus on true demand and keep improving the system. On the coding side, it requires us to pay attention on abstraction layers and high-level isolation. In that case, the system could keep a healthy structure and easy to maintain while new features or third-party extensions are added. Under some circumstances, a designer should pursue more of scalability than the system’s current performance.
When talking about software design, people always mention scalability. A framework with good scalability requires the following:
1.The framework should follow opening/closed principle: software entities should be open for extension, but closed for modification; This means a framework should allow the maintainer to add new functions with as few modifications as possible.
2.The framework should allow the user to add new functions by adding code on his project without modifying the framework&amp;rsquo;s original source code base.
With microkernel architecture and extension mechanism, Dubbo satisfies such requirements and achieves good scalability. In the following chapters, we will discuss Dubbo&amp;rsquo;s extension mechanism in detail.&lt;/p></description></item><item><title>Implementation background and practice of Dubbo client asynchronous interface</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-client-asynchronous-interface/</link><pubDate>Wed, 20 Feb 2019 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-client-asynchronous-interface/</guid><description>&lt;h2 id="preface">Preface&lt;/h2>
&lt;p>&lt;img alt="image | left" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/dubboasyn_client/1_en.png">&lt;/p>
&lt;p>Let&amp;rsquo;s start with a brief introduction about the stages of a complete Dubbo invocation.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Biz~ represents business thread, that is, the thread where the business logic is located. Biz~ thread pool may be created and maintained by business itself, most of which may be managed by system framework itself (for example, a web system runs under Tomcat container, Biz~ thread is maintained by Tomcat); IO~ stands for network data processing thread, which is created and maintained by IO framework (such as Netty, Grizzly). Dubbo Remoting&amp;rsquo;s default Netty implementation is NioEventloopLoopGroup. In addition, according to the binding relationship between Channel and IO thread, IO~ can also be regarded as an acceptable Channel for event messages. Asynchronous processing stages such as Biz and IO are abstractly described in JDK8 as completionstages.&lt;/p></description></item><item><title>Implementation background and practice of Dubbo server asynchronous interface</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-server-asynchronous-interface/</link><pubDate>Wed, 20 Feb 2019 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-server-asynchronous-interface/</guid><description>&lt;h2 id="preface">Preface&lt;/h2>
&lt;p>It is suggested to make an understanding of the thread phase involved in the process of Dubbo first, please refer to &lt;a href="https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-client-asynchronous-interface/">Implementation background and practice of Dubbo client asynchronous interface&lt;/a> for details.&lt;/p>
&lt;h2 id="implementation-background">Implementation background&lt;/h2>
&lt;p>It is necessary to introduce the server-side thread strategy in more detail to deepen the user&amp;rsquo;s judgment basis for selecting server-side asynchrony. It is also necessary to introduce coroutines, the &amp;ldquo;secret weapon&amp;rdquo; often used in server-side asynchrony.&lt;/p></description></item><item><title>Meet Dubbo</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/01/26/meet-dubbo/</link><pubDate>Sat, 26 Jan 2019 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/01/26/meet-dubbo/</guid><description>&lt;p>I am a programmer with a Dubbo obsession.&lt;/p>
&lt;p>Dubbo has accompanied me throughout my coding career for a short time in various ways. Not long ago, I was elected as a &lt;code>Committer&lt;/code> through community voting. At that time, I posted a phrase on my social network, which encapsulated my journey from starting to use Dubbo, researching Dubbo, contributing to Dubbo, and finally becoming a &lt;code>Committer&lt;/code>, providing me with a unique source of internal joy: it’s particularly happy to see footprints in the process of growth.&lt;/p></description></item><item><title>How to use Seata to ensure consistency between Dubbo Microservices</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/01/17/how-to-use-seata-to-ensure-consistency-between-dubbo-microservices/</link><pubDate>Thu, 17 Jan 2019 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2019/01/17/how-to-use-seata-to-ensure-consistency-between-dubbo-microservices/</guid><description>&lt;h2 id="use-case">Use case&lt;/h2>
&lt;p>A business logic for user purchasing commodities. The whole business logic is powered by 3 microservices:&lt;/p>
&lt;ul>
&lt;li>Storage service: deduct storage count on given commodity.&lt;/li>
&lt;li>Order service: create order according to purchase request.&lt;/li>
&lt;li>Account service: debit the balance of user&amp;rsquo;s account.&lt;/li>
&lt;/ul>
&lt;h3 id="architecture">Architecture&lt;/h3>
&lt;p>&lt;img alt="Architecture" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/fescar/fescar-1.png">&lt;/p>
&lt;h3 id="storageservice">StorageService&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">public&lt;/span> &lt;span style="color:#268bd2">interface&lt;/span> &lt;span style="color:#268bd2">StorageService&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#586e75">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75"> * deduct storage count
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75"> */&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#dc322f">void&lt;/span> &lt;span style="color:#268bd2">deduct&lt;/span>(String commodityCode, &lt;span style="color:#dc322f">int&lt;/span> count);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="orderservice">OrderService&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">public&lt;/span> &lt;span style="color:#268bd2">interface&lt;/span> &lt;span style="color:#268bd2">OrderService&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#586e75">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75"> * create order
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75"> */&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Order &lt;span style="color:#268bd2">create&lt;/span>(String userId, String commodityCode, &lt;span style="color:#dc322f">int&lt;/span> orderCount);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="accountservice">AccountService&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">public&lt;/span> &lt;span style="color:#268bd2">interface&lt;/span> &lt;span style="color:#268bd2">AccountService&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#586e75">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75"> * debit balance of user&amp;#39;s account
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75"> */&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#dc322f">void&lt;/span> &lt;span style="color:#268bd2">debit&lt;/span>(String userId, &lt;span style="color:#dc322f">int&lt;/span> money);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="main-business-logic">Main business logic&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">public&lt;/span> &lt;span style="color:#268bd2">class&lt;/span> &lt;span style="color:#268bd2">BusinessServiceImpl&lt;/span> &lt;span style="color:#268bd2">implements&lt;/span> BusinessService {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">private&lt;/span> StorageService storageService;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">private&lt;/span> OrderService orderService;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#586e75">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75"> * purchase
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75"> */&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">public&lt;/span> &lt;span style="color:#dc322f">void&lt;/span> &lt;span style="color:#268bd2">purchase&lt;/span>(String userId, String commodityCode, &lt;span style="color:#dc322f">int&lt;/span> orderCount) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> storageService.deduct(commodityCode, orderCount);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> orderService.create(userId, commodityCode, orderCount);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">public&lt;/span> &lt;span style="color:#268bd2">class&lt;/span> &lt;span style="color:#268bd2">StorageServiceImpl&lt;/span> &lt;span style="color:#268bd2">implements&lt;/span> StorageService {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">private&lt;/span> StorageDAO storageDAO;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">@Override&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">public&lt;/span> &lt;span style="color:#dc322f">void&lt;/span> &lt;span style="color:#268bd2">deduct&lt;/span>(String commodityCode, &lt;span style="color:#dc322f">int&lt;/span> count) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Storage storage &lt;span style="color:#719e07">=&lt;/span> &lt;span style="color:#719e07">new&lt;/span> Storage();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> storage.setCount(count);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> storage.setCommodityCode(commodityCode);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> storageDAO.update(storage);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">public&lt;/span> &lt;span style="color:#268bd2">class&lt;/span> &lt;span style="color:#268bd2">OrderServiceImpl&lt;/span> &lt;span style="color:#268bd2">implements&lt;/span> OrderService {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">private&lt;/span> OrderDAO orderDAO;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">private&lt;/span> AccountService accountService;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">public&lt;/span> Order &lt;span style="color:#268bd2">create&lt;/span>(String userId, String commodityCode, &lt;span style="color:#dc322f">int&lt;/span> orderCount) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#dc322f">int&lt;/span> orderMoney &lt;span style="color:#719e07">=&lt;/span> calculate(commodityCode, orderCount);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> accountService.debit(userId, orderMoney);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Order order &lt;span style="color:#719e07">=&lt;/span> &lt;span style="color:#719e07">new&lt;/span> Order();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> order.userId &lt;span style="color:#719e07">=&lt;/span> userId;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> order.commodityCode &lt;span style="color:#719e07">=&lt;/span> commodityCode;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> order.count &lt;span style="color:#719e07">=&lt;/span> orderCount;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> order.money &lt;span style="color:#719e07">=&lt;/span> orderMoney;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#719e07">return&lt;/span> orderDAO.insert(order);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="distributed-transaction-solution-with-seata">Distributed Transaction Solution with Seata&lt;/h2>
&lt;p>&lt;img alt="undefined" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/fescar/fescar-2.png">&lt;/p></description></item><item><title>The Fifth Dubbo Developer Salon Successfully Held in Hangzhou</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/12/10/the-fifth-dubbo-developer-salon-successfully-held-in-hangzhou/</link><pubDate>Mon, 10 Dec 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/12/10/the-fifth-dubbo-developer-salon-successfully-held-in-hangzhou/</guid><description>&lt;p>The fifth Dubbo Developer Salon was successfully held in Hangzhou,&lt;/p>
&lt;p>Guest speakers&lt;/p>
&lt;ul>
&lt;li>Li Ding: How to Participate in the Dubbo Open Source Community &lt;a href="https://github.com/dubbo/awesome-dubbo/blob/master/slides/meetup/201812%40hangzhou/how-to-involve-in-dubbo-community.pdf">slides&lt;/a>&lt;/li>
&lt;li>Cao Shengli: Introduction and Demonstration of New Features in Dubbo 2.7 &lt;a href="https://github.com/dubbo/awesome-dubbo/blob/master/slides/meetup/201812%40hangzhou/dubbo-2.7-introduction.pdf">slides&lt;/a>&lt;/li>
&lt;li>Tao Yang: Application Practice of Dubbo at Koala &lt;a href="https://github.com/dubbo/awesome-dubbo/blob/master/slides/meetup/201812%40hangzhou/dubbo-practice-in-netease-koala.pdf">slides&lt;/a>&lt;/li>
&lt;li>Xiao Ma Ge: Reimplementation of Dubbo + Nacos Service Governance &lt;a href="https://github.com/dubbo/awesome-dubbo/blob/master/slides/meetup/201812%40hangzhou/nacos-support-in-dubbo.pdf">slides&lt;/a>&lt;/li>
&lt;li>Zhao Yihao: Sentinel: Traffic Guard for Distributed Services &lt;a href="https://github.com/dubbo/awesome-dubbo/blob/master/slides/meetup/201812%40hangzhou/sentinel-support-for-dubbo.pdf">slides&lt;/a>&lt;/li>
&lt;li>Chen Zhixuan: When Dubbo Meets Arthas: Troubleshooting Practice &lt;a href="https://github.com/dubbo/awesome-dubbo/blob/master/slides/meetup/201812%40hangzhou/troubleshooting-dubbo-with-arthas.pdf">slides&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Dubbo Integrates with Nacos to Become a Registry</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/11/07/dubbo-integrates-with-nacos-to-become-a-registry/</link><pubDate>Wed, 07 Nov 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/11/07/dubbo-integrates-with-nacos-to-become-a-registry/</guid><description>&lt;p>Nacos is an important registry in the Dubbo ecosystem, and dubbo-registry-nacos is the implementation of the Dubbo-integrated Nacos registry.&lt;/p>
&lt;h2 id="preparation-works">Preparation Works&lt;/h2>
&lt;p>Before you integrate dubbo-registry-nacos into your Dubbo project, ensure the Nacos service is started in the background. If you are not familiar with the basic use of Nacos, you can refer to the Quick Start for Nacos: &lt;a href="https://nacos.io/en-us/docs/quick-start.html">https://nacos.io/en-us/docs/quick-start.html&lt;/a>. Nacos versions above 0.6.1 are recommended.&lt;/p>
&lt;h2 id="get-started-quickly">Get Started Quickly&lt;/h2>
&lt;p>The steps to integrate Dubbo with Nacos as a registry are simple, generally divided into &amp;ldquo;add Maven dependency&amp;rdquo; and &amp;ldquo;configure the registry.&amp;rdquo;&lt;/p></description></item><item><title>Introduction to the Dubbo protocol</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/10/05/introduction-to-the-dubbo-protocol/</link><pubDate>Fri, 05 Oct 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/10/05/introduction-to-the-dubbo-protocol/</guid><description>&lt;h2 id="the-concept-of-the-protocol">The concept of the protocol&lt;/h2>
&lt;p>The protocol is the foundation of communication between two network entities, and data is transmitted from one entity to another in the form of a byte stream over the network. In the world of byte streams, this one-dimensional byte stream cannot be reshaped into two-dimensional or multi-dimensional data structures and domain objects without a protocol.&lt;/p>
&lt;h3 id="what-is-the-protocol">What is the protocol&lt;/h3>
&lt;p>The protocol is the semantics determined by both parties for the communication. For example, we design a protocol for string transmission, which allows the client to send a string and the server receives the corresponding string.&lt;/p></description></item><item><title>Integrate Dubbo with Kubernetes</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/09/30/integrate-dubbo-with-kubernetes/</link><pubDate>Sun, 30 Sep 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/09/30/integrate-dubbo-with-kubernetes/</guid><description>&lt;h1 id="general-goal">General goal&lt;/h1>
&lt;p>Dubbo&amp;rsquo;s provider don&amp;rsquo;t care about service registration.Open its Dubbo service port,the declaration and publishment of the service will be executed by Kubernetes.
Dubbo&amp;rsquo;s consumer directly discovers the corresponding service endpoints of Kubernetes during service discovery procedure, thereby reusing Dubbo&amp;rsquo;s existing microservice channel capabilities.The benefit is that there is no need to rely on any third-party soft-loaded registry and it can be seamlessly integrated into the multi-tenant security system of Kubernetes. Reference demo : &lt;a href="https://github.com/dubbo/dubbo-Kubernetes">https://github.com/dubbo/dubbo-ubernetes&lt;/a>&lt;/p></description></item><item><title>How to Prepare Apache Release</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/09/02/how-to-prepare-apache-release/</link><pubDate>Sun, 02 Sep 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/09/02/how-to-prepare-apache-release/</guid><description>&lt;h2 id="understanding-apache-release-content-and-processes">Understanding Apache Release Content and Processes&lt;/h2>
&lt;p>In general, the Source Release is the focus of Apache and is essential for the release; the Binary Release is optional. Dubbo can choose whether to publish a binary package to the Apache repository or release it to the Maven Central Repository.&lt;/p>
&lt;p>Please refer to the following links for more about ASF&amp;rsquo;s release guidelines:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="http://www.apache.org/dev/release-publishing">Apache Release Guide&lt;/a>&lt;/li>
&lt;li>&lt;a href="http://www.apache.org/dev/release.html">Apache Release Policy&lt;/a>&lt;/li>
&lt;li>&lt;a href="http://www.apache.org/dev/publishing-maven-artifacts.html">Maven Release Info&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="preparing-local-build-environment">Preparing Local Build Environment&lt;/h2>
&lt;p>Mainly includes signing tools and Maven repository authentication preparations.&lt;/p></description></item><item><title>How to implement a fully asynchronous calls chain based on Dubbo</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/09/02/how-to-implement-a-fully-asynchronous-calls-chain-based-on-dubbo/</link><pubDate>Sun, 02 Sep 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/09/02/how-to-implement-a-fully-asynchronous-calls-chain-based-on-dubbo/</guid><description>&lt;p>Implementing the full asynchronous programming based on Dubbo, which is a new feature introduced in version 2.7.0 after the enhancement of the existing asynchronous mode.This article first reviews the supported functions and existing problems of asynchronization in 2.6.x and earlier versions, and introduces the targeted enhancements based on CompletableFuture in version 2.7.0. Then, the use of enhanced asynchronous programming is elaborated through several examples. Finally, it summarizes the new problems brought by the introduction of asynchronous mode and corresponding solutions from Dubbo. By reading this article, it is easy to implement a fully asynchronous remote service call chain based on Dubbo 2.7.0+.&lt;/p></description></item><item><title>The 4th Dubbo Developer Salon Held in Chengdu on August 26</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/26/the-4th-dubbo-developer-salon-held-in-chengdu-on-august-26/</link><pubDate>Sun, 26 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/26/the-4th-dubbo-developer-salon-held-in-chengdu-on-august-26/</guid><description>&lt;p>&lt;img alt="img" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/meetup-chengdu/all-hands.webp">&lt;/p>
&lt;h2 id="in-depth-communication-with-users">In-depth Communication with Users&lt;/h2>
&lt;p>On August 26, from 10:00 to 12:00, we invited four companies: Truck Alliance, Yuntu Jin Control, former BBD, and Feiyu Star, to participate in face-to-face discussions with open-source enthusiasts and heavy users. According to participant feedback, many questions about Dubbo were answered, especially regarding how to contribute to the community and the value points brought by donating code. We hope to engage more deeply in the Dubbo community and activities in the future.&lt;/p></description></item><item><title> Dubbo Basic Usage - Dubbo Consumer Configuration</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/dubbo-basic-usage-dubbo-consumer-configuration/</link><pubDate>Tue, 14 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/dubbo-basic-usage-dubbo-consumer-configuration/</guid><description>&lt;h2 id="dubbo-consumer-configuration">Dubbo Consumer Configuration&lt;/h2>
&lt;h3 id="consumer-configuration-detailed">Consumer Configuration Detailed&lt;/h3>
&lt;p>There are 3 ways to configure the Dubbo Consumer: XML configuration, API call mode configuration, and annotation mode configuration.&lt;/p>
&lt;h4 id="xml-configuration">XML Configuration&lt;/h4>
&lt;h6 id="example-of-the-simplest-configuration">Example of the simplest configuration:&lt;/h6>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;beans xmlns=&amp;#34;http://www.springframework.org/schema/beans&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Xmlns:xsi=&amp;#34;http://www.w3.org/2001/XMLSchema-instance&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Xmlns:dubbo=&amp;#34;http://dubbo.apache.org/schema/dubbo&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Xsi:schemaLocation=&amp;#34;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema /dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;dubbo:application name=&amp;#34;hello-world-app&amp;#34; /&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;dubbo:registry address=&amp;#34;multicast://224.5.6.7:1234&amp;#34; /&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;dubbo:protocol name=&amp;#34;dubbo&amp;#34; port=&amp;#34;20880&amp;#34; /&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;dubbo:reference id=&amp;#34;demoServiceRemote&amp;#34; interface=&amp;#34;com.alibaba.dubbo.demo.DemoService&amp;#34; /&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;/beans&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>For the supported configuration tags and corresponding configuration items, refer to the usage in the provider.&lt;/p></description></item><item><title>Dubbo: Several ways about synchronous/asynchronous invoke</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/dubbo-several-ways-about-synchronous/asynchronous-invoke/</link><pubDate>Tue, 14 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/dubbo-several-ways-about-synchronous/asynchronous-invoke/</guid><description>&lt;p>As we all know，Dubbo adopts a single large join protocol by default and takes the NIO asynchronous communication mechanism of Netty as the low-level implementation. Based on this mechanism, Dubbo implements several invocation modes as follows:&lt;/p>
&lt;ul>
&lt;li>synchronous invoke&lt;/li>
&lt;li>asynchronous invoke&lt;/li>
&lt;li>parameters callback&lt;/li>
&lt;li>event notification&lt;/li>
&lt;/ul>
&lt;h3 id="synchronous-invoke">Synchronous invoke&lt;/h3>
&lt;p>Synchronous invoke is a kind of blocking invocation mode, that is the Consumer keeps blocking and waiting, until the Provider returns.&lt;/p>
&lt;p>Generally, a typical synchronous invocation process is as follows:&lt;/p></description></item><item><title>Dubbo Basic Usage -- Dubbo Provider Configuration</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/dubbo-basic-usage--dubbo-provider-configuration/</link><pubDate>Tue, 14 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/dubbo-basic-usage--dubbo-provider-configuration/</guid><description>&lt;p>This chapter mainly talking about how to configure dubbo. According to the configuration mode, it can be divided into the following mode: XML Configuration, Properties Configuration, Annotation Configuration, API Invocation Mode Configuration. And according to the function, we can divide them into Dubbo Provider and Dubbo Consumer. In the following sections, we would explain Dubbo Provider and Dubbo Consumer respectively.&lt;/p>
&lt;h2 id="dubbo-provider-configuration">Dubbo Provider Configuration&lt;/h2>
&lt;h3 id="provider-configuration-in-detail">Provider Configuration in Detail&lt;/h3>
&lt;p>The configuration mode of Dubbo Provider has 4 different ways: XML Configuration, Properties Configuration, API Invocation Mode Configuration and Annotation Configuration.&lt;/p></description></item><item><title>Manipulating Services Dynamically via QoS</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/manipulating-services-dynamically-via-qos/</link><pubDate>Tue, 14 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/manipulating-services-dynamically-via-qos/</guid><description>&lt;h1 id="manipulating-services-dynamically-via-qos">Manipulating Services Dynamically via QoS&lt;/h1>
&lt;p>QoS (short form of &lt;strong>Quality of Service&lt;/strong>), is a common terminology talking about network devices. For example, by adjusting and manipulating the weights of ports of a router dynamically via QoS, engineers could give priority to services running on these ports and make sure these services&amp;rsquo; quality and reliability.&lt;/p>
&lt;p>In Dubbo, QoS is used to query and manipulate services dynamically, like getting a list of active provider and consumer services, and launching or withdrawing services (i.e registering to or unregistering services from registration center).&lt;/p></description></item><item><title>Source code analysis of spring-boot+Dubbo App start and stop</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/source-code-analysis-of-spring-boot-dubbo-app-start-and-stop/</link><pubDate>Tue, 14 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/source-code-analysis-of-spring-boot-dubbo-app-start-and-stop/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>&lt;a href="https://github.com/apache/dubbo-spring-boot-project">Dubbo Spring Boot&lt;/a> project is dedicated to simplifying the development of the Dubbo RPC framework in the Spring Boot application. It also integrates the feature of Spring Boot:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/apache/dubbo-spring-boot-project/blob/master/dubbo-spring-boot-autoconfigure">Autoconfigure&lt;/a> (ex: Annotation driver, Autoconfigure, etc.)&lt;/li>
&lt;li>&lt;a href="https://github.com/apache/dubbo-spring-boot-project/blob/master/dubbo-spring-boot-actuator">Production-Ready&lt;/a> (ex: Security, Healthy check, Externalize configuration, etc.)&lt;/li>
&lt;/ul>
&lt;h2 id="the-analysis-of-dubboconsumer-startup">The analysis of DubboConsumer startup&lt;/h2>
&lt;p>Have you ever thought about this : since the &lt;code>DubboConsumerDemo&lt;/code> application in &lt;code>dubbo-spring-boot-project&lt;/code> has only one line of code, why not just exit directly when the &lt;code>main&lt;/code> method is executed?&lt;/p></description></item><item><title>Implementation of cross-language calls by Dubbo2.js</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/implementation-of-cross-language-calls-by-dubbo2.js/</link><pubDate>Tue, 14 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/implementation-of-cross-language-calls-by-dubbo2.js/</guid><description>&lt;blockquote>
&lt;p>&lt;a href="https://github.com/dubbo/dubbo2.js">dubbo2.js&lt;/a> is a Dubbo client for node.js developed by &lt;a href="https://www.qianmi.com/">Qianmiwang&lt;/a>. It supports Dubbo&amp;rsquo;s native protocol, which makes the RPC calls between javascript and java efficient and agile. This tool has been contributed to Dubbo&amp;rsquo;s community.&lt;/p>
&lt;/blockquote>
&lt;h2 id="cross-language-calls-for-micro-service">Cross-language calls for micro service&lt;/h2>
&lt;p>Nowadays, Internet architecture tends to be micro-service way. The discussions about micro-service architecture become the most mentioned topic in different technical conferences. In China, most of the companies, such as Qianmiwang, choose Dubbo as their micro-service architecture solution. As most of the internet companies, Qianmiwang uses various programming languages. Java is for most of the backend services. Each business based on these backend can choose its own programming language such as go, python and javascript. Therefore, here comes a challenge, cross-language calls. Some well-known solutions are as follows:&lt;/p></description></item><item><title>Generic invoke of Dubbo</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/generic-invoke-of-dubbo/</link><pubDate>Tue, 14 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/generic-invoke-of-dubbo/</guid><description>&lt;h1 id="generic-invoke-of-dubbo">Generic invoke of Dubbo&lt;/h1>
&lt;p>The generic invoke could be considered to be used in the following cases:&lt;/p>
&lt;ul>
&lt;li>Service test platform&lt;/li>
&lt;li>API service gateway&lt;/li>
&lt;/ul>
&lt;p>The generic invoke is mainly used when the consumer does not have an API interface;
instead of depending the interface jar package, the service call is initiated directly through the GenericService interface, and all POJOs in the parameters and return values are represented by a &lt;code>Map&lt;/code>.
Generic invoke does not require attention on the server and can be exposed as normal services.&lt;/p></description></item><item><title>Native Image using GraalVM</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/native-image-using-graalvm/</link><pubDate>Tue, 14 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/14/native-image-using-graalvm/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>This document will show you how to access GraalVM with a dubbo project and how to compile the project to a binary executable using native-image. The document also introduces the efforts we made in achieving this.&lt;/p>
&lt;p>GraalVM&amp;rsquo;s essential is the Graal compiler, an excellent just-in-time (JIT) compiler. It can be used as both a JIT compiler and a static compiler for ahead-of-time compilation. Graal compiler completes the primary compilation work.&lt;/p></description></item><item><title>Dubbo's Load Balance</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/10/dubbos-load-balance/</link><pubDate>Fri, 10 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/10/dubbos-load-balance/</guid><description>&lt;h2 id="background">Background&lt;/h2>
&lt;p>Dubbo is a distributed service framework that avoids single point of failure and horizontal expansion of support services. A service typically deploys multiple instances. How to select a call from a cluster of multiple service providers involves a load balancing strategy.&lt;/p>
&lt;h2 id="concepts">Concepts&lt;/h2>
&lt;p>Before discussing load balancing, I will explain these three concepts first.&lt;/p>
&lt;ol>
&lt;li>Load Balancing&lt;/li>
&lt;li>Fault-tolerant Cluster&lt;/li>
&lt;li>Service Route&lt;/li>
&lt;/ol>
&lt;p>These three concepts are confusing. They all describe how to choose from multiple Providers to make calls. So what is the difference between them? Let me give a simple example and explain these concepts clearly.&lt;/p></description></item><item><title>Use Annotations In Dubbo</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/07/use-annotations-in-dubbo/</link><pubDate>Tue, 07 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/07/use-annotations-in-dubbo/</guid><description>&lt;p>With the widely promotion and implementation of Microservices Architecture, the Microservices Architecture represented by Spring Boot and Spring Cloud, in Java ecosystem, introduced some brand new programming model, like:&lt;/p>
&lt;ul>
&lt;li>Annotation-Driven&lt;/li>
&lt;li>External Configuration&lt;/li>
&lt;li>Auto-Configure&lt;/li>
&lt;/ul>
&lt;p>New programming model have some advantages, for example, it does not require &lt;code>XML&lt;/code> configuration, it can simplify deployment process, beyond that，it can promote development efficiency. In order to implement the microservice architecture better，Dubbo has provided more perfect support for the above three scenarios since version 2.5.8. This article focuses on introduce annotations rather than discuss the traditional XML configuration approach. There are two kinds of automatic assembly, external configuration and automatic assembly, will be introduced in another aricle.&lt;/p></description></item><item><title>Using Zookeeper in Dubbo</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/07/using-zookeeper-in-dubbo/</link><pubDate>Tue, 07 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/07/using-zookeeper-in-dubbo/</guid><description>&lt;h2 id="introduction-of-zookeeper">Introduction of Zookeeper&lt;/h2>
&lt;h3 id="the-basic-concept">The basic concept&lt;/h3>
&lt;p>In the mordern distrbuted applications, there are multiple coordination problems between nodes and nodes, including: leader election, group service, locking, configuration management, naming and synchronization. Apache Zookeeper, as its name implied, is a distributed, open-source coordination service framwork to address these demand.&lt;/p>
&lt;p>In order to ensure the high performance, highly available and strictly ordered access, the performance aspects of ZooKeeper means it can be used in large, distributed systems and can also be deployed in cluster mode, which called &amp;lsquo;ZooKeeper ensemble&amp;rsquo;. In ZooKeeper ensemble, all write requests from clients are forwarded to a single server, called the leader, through the ZAB(Zookeeper Atomic Broadcast Protocol) to make sure the message in each nodes are same. Clients can access any one of the clusters to read and write data without worrying about inconsistencies in the data.&lt;/p></description></item><item><title>Your First Dubbo Demo</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/07/dubbo-101/</link><pubDate>Tue, 07 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/08/07/dubbo-101/</guid><description>&lt;h2 id="java-rmi-introduction">Java RMI Introduction&lt;/h2>
&lt;p>Java RMI (Remote Method Invocation) is a mechanism that allows users to access or invocate an object and a method running on another JVM (Java Virtual Machine). RMI is an implementation of RPC (Remote Procedure Call) in java with support of OOP (Object Oriented Paradigms). Instead of bothering IDL (Interface Define Language), users can build distributed applications by depending on interfaces in an easy and natural way.&lt;/p></description></item><item><title>The Third Dubbo Developer Salon Held Successfully in Shenzhen</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/07/30/the-third-dubbo-developer-salon-held-successfully-in-shenzhen/</link><pubDate>Mon, 30 Jul 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/07/30/the-third-dubbo-developer-salon-held-successfully-in-shenzhen/</guid><description>&lt;p>The third Dubbo Developer Salon was successfully held in Shenzhen, with over 2,000 developers registering, more than 700 participants on-site, and a total of 17,000 online views guided by Alibaba Cloud&amp;rsquo;s Tianchi, Yunqi Community, and Daka Talk.&lt;/p>
&lt;p>Speakers&lt;/p>
&lt;ul>
&lt;li>Chen Zhixuan: The Current State of Dubbo Open Source and the Plan for 2.7&lt;/li>
&lt;li>Kang Bin: The Microservices Journey of Lexin Group&lt;/li>
&lt;li>Lin Jialiang: Sentinel - The All-Round Traffic Sentinel for Enterprise Users&lt;/li>
&lt;/ul></description></item><item><title>Sentinel: The flow sentinel of Dubbo services</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/07/27/sentinel-the-flow-sentinel-of-dubbo-services/</link><pubDate>Fri, 27 Jul 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/07/27/sentinel-the-flow-sentinel-of-dubbo-services/</guid><description>&lt;p>In large clusters there may be thousands of Dubbo service instances in production, with continuous traffic coming in. However, in distributed systems, some services may be unavailable due to various of failure such as traffic surge, high system load, and network latency. If no control actions are performed, this may cause cascading failure, affecting the availability of the service. So we need a powerful library - Sentinel, which can guarantee the stability of the service, to protect the Dubbo service.&lt;/p></description></item><item><title>Tracking with Pinpoint</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/07/12/tracking-with-pinpoint/</link><pubDate>Thu, 12 Jul 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/07/12/tracking-with-pinpoint/</guid><description>&lt;p>After using Dubbo to serve or integrate applications, assuming that a service backstage log shows an exception and that the service is invoked by multiple applications, it is often difficult to determine which application is called, and what is the cause of the problem, so we need a set of distributed tracking systems to quickly locate the problem. Pinpoint can help us quickly locate problems (of course, there are more than one solution).&lt;/p></description></item><item><title>Your First Dubbo Filter</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/07/01/your-first-dubbo-filter/</link><pubDate>Sun, 01 Jul 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/07/01/your-first-dubbo-filter/</guid><description>&lt;h3 id="overview">Overview&lt;/h3>
&lt;p>In overall design of Dubbo, Filter is a very important concept, most of Dubbo&amp;rsquo;s functions are based on this
extension point, and the Filter interception will be executed during each call.&lt;/p>
&lt;h4 id="extension-mechanism-of-dubbo-filter">Extension Mechanism of Dubbo Filter&lt;/h4>
&lt;p>There are already about 20 Filters implemented in Dubbo. Their entry is ProtocolFilterWrapper, ProtocolFilterWrapper
makes a Wrapper on Protocol and will be loaded when the extension is loaded. Then, let&amp;rsquo;s see how
the Filter chain is constructed.&lt;/p></description></item><item><title>The Second Dubbo Developer Salon Successfully Held in Shanghai</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/06/23/the-second-dubbo-developer-salon-successfully-held-in-shanghai/</link><pubDate>Sat, 23 Jun 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/06/23/the-second-dubbo-developer-salon-successfully-held-in-shanghai/</guid><description>&lt;p>The Second Dubbo Developer Salon was successfully held in Shanghai, with over 700 developers registered and 300+ participants on site. The online live broadcast, guided by Alibaba Cloud Tianchi, Yunqi Community, and Daka Shuo, reached over 10,000 views.&lt;/p>
&lt;p>Speakers and PPT:&lt;/p>
&lt;ul>
&lt;li>Zhu Yong: The Current State and Future Plans of Dubbo (Chinese) &lt;a href="https://github.com/dubbo/awesome-dubbo/blob/master/slides/meetup/201806%40Shanghai/dubbo-status-and-roadmap.pdf">slides&lt;/a>&lt;/li>
&lt;li>Xiao Ma Ge: Practical Experiences and Reflections on the Road to Dubbo Cloud Native (Chinese) &lt;a href="https://github.com/dubbo/awesome-dubbo/blob/master/slides/meetup/201806%40Shanghai/dubbo-cloud-native-practices-and-thoughts.pdf">slides&lt;/a>&lt;/li>
&lt;li>Guo Ping: Nacos - Contributing to the Dubbo Ecosystem, Alibaba&amp;rsquo;s Open Source Plans for the Registration Center and Configuration Center (Chinese) &lt;a href="https://github.com/dubbo/awesome-dubbo/blob/master/slides/meetup/201806%40Shanghai/nacos-open-source-initiative.pdf">slides&lt;/a>&lt;/li>
&lt;li>Pan Zhiwei: Application Scenarios of Dubbo in the Internet Finance Industry (Chinese) &lt;a href="https://github.com/dubbo/awesome-dubbo/blob/master/slides/meetup/201806%40Shanghai/dubbo-practices-on-internet-finance-industries.pdf">slides&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>The First Dubbo Developer Salon Successfully Held in Beijing</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/05/12/the-first-dubbo-developer-salon-successfully-held-in-beijing/</link><pubDate>Sat, 12 May 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/05/12/the-first-dubbo-developer-salon-successfully-held-in-beijing/</guid><description>&lt;p>The First Dubbo Developer Salon was successfully held in Beijing, with over 400 developers participating. This is a great start!&lt;/p>
&lt;p>The speakers and topics are as follows:&lt;/p>
&lt;ul>
&lt;li>Luo Yi: The Current Status and Future Planning of Dubbo &lt;a href="https://github.com/dubbo/awesome-dubbo/raw/master/slides/meetup/201805%40Beijing/dubbo-present-and-future.pdf">PDF&lt;/a>&lt;/li>
&lt;li>Liu Jun: The Fourth Ali Middleware Performance Challenge &lt;a href="https://github.com/dubbo/awesome-dubbo/raw/master/slides/meetup/201805%40Beijing/introduction-to-4th-aliware-performance-challenge.pdf">PDF&lt;/a>&lt;/li>
&lt;li>Chen Zhi Xuan: Quickly Building Microservices with Dubbo and Spring Boot &lt;a href="https://github.com/dubbo/awesome-dubbo/raw/master/slides/meetup/201805%40Beijing/quickly-building-microservice-with-dubbo-and-springboot.pdf">PDF&lt;/a>&lt;/li>
&lt;li>Wang Xin: Sharing the Service-Oriented Practice Journey of Dubbo and Weidian &lt;a href="https://github.com/dubbo/awesome-dubbo/raw/master/slides/meetup/201805%40Beijing/dubbo-and-weidian's-practice-on-microservice-architecture.pdf">PDF&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>ApacheCon NA Conference Agenda Published</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/05/02/apachecon-na-conference-agenda-published/</link><pubDate>Wed, 02 May 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/05/02/apachecon-na-conference-agenda-published/</guid><description>&lt;p>Luo Yi/Liu Jun will give a talk titled &amp;ldquo;Introducing Apache Dubbo (Incubating): What is Dubbo and How it Works&amp;rdquo; at the ApacheCon conference held in Montreal. Please click &lt;a href="https://apachecon.dukecon.org/acna/2018/#/scheduledEvent/b8db9dc580d85853f">here&lt;/a> to view the conference agenda, and register &lt;a href="https://www.eventbrite.com/e/apachecon-north-america-2018-registration-43200327342">here&lt;/a>.&lt;/p></description></item><item><title>2018 Projects Announced at Google Summer of Code</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/04/25/2018-projects-announced-at-google-summer-of-code/</link><pubDate>Wed, 25 Apr 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/04/25/2018-projects-announced-at-google-summer-of-code/</guid><description>&lt;p>At the Google Summer of Code, 2018 projects were announced, and Raghu Reddy&amp;rsquo;s project &amp;ldquo;Apache Dubbo extends support for serial protocols&amp;rdquo; was &lt;a href="https://summerofcode.withgoogle.com/projects/#4747840161579008">accepted&lt;/a>! Congratulations to him!&lt;/p></description></item><item><title>Publishing Dubbo Admin Images on DockerHub</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/04/23/publishing-dubbo-admin-images-on-dockerhub/</link><pubDate>Mon, 23 Apr 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/04/23/publishing-dubbo-admin-images-on-dockerhub/</guid><description>&lt;p>Dubbo Admin is the service governance center for Dubbo, providing many features such as service governance and configuration management needed for daily operations.&lt;/p>
&lt;p>Dubbo Admin includes both front-end and back-end code. If users need to download the source code and compile it themselves, it will take some time. This experience is not ideal, especially for users who wish to quickly research and try Dubbo Admin.&lt;/p>
&lt;p>Docker is an open-source application container engine that allows developers to package applications and their dependencies into a portable image. There is a strong demand in the community for a Dubbo Admin image. Docker maintains a public repository, DockerHub, which also has many domestic mirrors, allowing for faster access. Publishing the Dubbo Admin image to DockerHub is a good choice.&lt;/p></description></item><item><title>Dubbo Roadmap Revealed at QCon Beijing 2018</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/04/22/dubbo-roadmap-revealed-at-qcon-beijing-2018/</link><pubDate>Sun, 22 Apr 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/04/22/dubbo-roadmap-revealed-at-qcon-beijing-2018/</guid><description>&lt;p>Ro Yi delivered a keynote speech on the current status and future plans of Dubbo at QCon Beijing 2018. For more details, please check the &lt;a href="https://github.com/dubbo/awesome-dubbo/raw/master/slides/qcon2018/dubbo-present-and-future.pdf">slides&lt;/a>.&lt;/p></description></item><item><title>How to Contribute to the Dubbo Community</title><link>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/03/11/how-to-contribute-to-the-dubbo-community/</link><pubDate>Sun, 11 Mar 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/en/blog/2018/03/11/how-to-contribute-to-the-dubbo-community/</guid><description>&lt;p>&lt;img alt="img" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/blog/involve-dubbo/head.jpg">&lt;/p>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>This article was first shared at the Apache Dubbo meetup in Chengdu, where the topic was discussed for the first time. It&amp;rsquo;s not that we lack better topics; rather, we believe this topic is crucial and even suggest it should be covered in every meetup.&lt;/p>
&lt;p>Most of you are familiar with the development history of Dubbo. Dubbo was open-sourced on GitHub in 2011 and, for several years, was not maintained due to various reasons. It was restarted by Alibaba in July last year and donated to Apache on February 16, 2018.&lt;/p></description></item></channel></rss>