In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-04-12 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >
Share
Shulou(Shulou.com)06/03 Report--
Recently, a major event happened in the open source community when Dubbo, the most widely used open source service framework for Java developers in the country, quietly restarted maintenance and released four maintenance versions in three months in a row.
The last time I wrote this article to give up Dubbo and choose the most popular Spring Cloud micro-service architecture practice and experience, a lot of netizens left me a message that Dubbo started to be updated again. Of course, I am clear, and I have been watching the trend of Dubbo. A few months ago, there was a news in the technology circle that Dubbo had been updated again, and people did not know whether it was true or not. I also went to GitHub to ask for a message, and finally found a firm answer in Dubbo's gitter chat room that a team was being formed. Although I have some expectations, I don't know how much sincerity Ali has shown to do this this time, so I went to GitHub again yesterday and found that since September, Ali has released four versions in three months in a row, which is still very sincere and worthy of attention.
Introduction to Dubbo
Dubbo is an open source high-performance service framework of Alibaba Company, which is committed to providing high-performance and transparent RPC remote service invocation solution, as well as SOA service governance solution, so that applications can seamlessly integrate the output and input functions of services and Spring framework through high-performance RPC. Dubbo includes three core parts: remote communication, cluster fault tolerance and automatic discovery.
It provides transparent remote method calls that call remote methods as if they were local methods, requiring simple configuration without any API intrusion. At the same time, it has soft load balancing and fault-tolerant mechanism, which can replace F5 and other hardware load balancers in the intranet to reduce costs and reduce a single point. It can realize automatic service registration and discovery, no longer need to write down the address of the service provider, the registry queries the IP address of the service provider based on the interface name, and can smoothly add or delete service providers.
At the end of 2011, Alibaba opened up Dubbo, a distributed service governance framework based on Java, on GitHub. Since then, it has become a leader in this kind of open source projects in China, and many developers like it. At the same time, many companies have carried out distributed system architecture based on Dubbo in practice. At present, the number of fork and star on GitHub has exceeded 10,000.
Core functions of Dubbo:
Remote communication provides abstract encapsulation of a variety of long-connection-based NIO frameworks, including multiple thread models, serialization, and information exchange in the "request-response" mode.
Cluster fault tolerance, provides transparent remote procedure calls based on interface methods, including multi-protocol support, as well as soft load balancing, failure fault tolerance, address routing, dynamic configuration and other cluster support.
Automatic discovery, based on the registry directory service, enables the service consumer to dynamically check the provider, making the address transparent, so that the service provider can smoothly increase or decrease the number of machines.
P_w_picpath
The history of Dubbo development
Develop to open source
Planning calls started in Ali at the end of 2008, and version 1.0 was developed in early 2009; in April 2010, refactoring was carried out on top of version 1.0 and version 2.0 was released; in October 2011, Ali announced that Dubbo would be open source, and the first version of the open source was version dubbo-2.0.7.
Open source growth
After the open source of Dubbo, the framework has developed rapidly. A version will be released in almost two or three months, and the version dubbo-2.1.0 will be released on March 14, 2012. Then it entered another period of rapid development, where versions were released frequently, almost several times a month. Until the release of dubbo-2.4.10 on March 17, 2013, the version stalled; on October 30, 2014, the release of dubbo-2.4.11 fixed a small Bug, and the version fell into a long period of stagnation.
Development outside Ali
On October 20, 2014, Dangdang Fork started maintenance of a Dubbo version of Ali and named it dubbox-2.8.0. It is worth noting that the Dangdang extended Dubbo service framework supports REST-style remote invocation, and the corresponding version has been upgraded along with ZooKeepe and Spring. Dubbox has been maintained in minor versions since then, and the final version of dubbox-2.8.4 was released on March 31, 2015.
P_w_picpath
What has the Dubbo team done in the past three months?
At present, the main development of Dubbo is the Alibaba middleware team, and some colleagues who are interested in Dubbo have also been recruited within Ali. Do you know when Dubbo was released since the last version that began maintenance this year? It was October 30, 2014, nearly three years behind. I don't know how many versions of Jdk, Spring, Zookeeper, Zkclient, and so on that Dubbo depends on have been updated. Therefore, the first step for Ali to restore the update is to adapt the versions of the components it depends on, so that the basic environment on which Dubbo depends is not too out-of-date. In addition, Fixed has lost some serious Bug.
Dubbo-2.5.4/5 version
In September 2017, Ali released the dubbo-2.5.4/5 version with the following update:
Dependent upgrade
Rely on the current version target version influence point spring3.2.16.RELEASE4.3.10.RELEASEschema configuration resolution; Http RPC protocol zookeeper3.3.33.4.9 common registry zkclient0.1 0.10zookeeper client tools curator1.1.162.12.0zookeeper client tools commons-logging1.1.11.2 log implementation integration of hessian4.0.64.0.38hessian RPC protocol jedis2.1.02.9.0redis registry Cache RPChttpclient4.1.24.5.3hessian et al. Http connection Pool validator1.0.01.1.0.Finaljava validation Specification cxf2.6.13.0.14webservicejcache0.41.0.0jcache Specification
While upgrading the relevant dependent versions, this version prioritizes the problem feedback frequency and impact surface, and gives priority to solving some defects with the most feedback and great impact, including elegant downtime, asynchronous calls, dynamic configuration, MonitorFilter monitoring and statistics, and so on.
Dubbo-2.5.6 version
In October 2017, Ali released the dubbo-2.5.6 version, and Fixed lost a large number of serious Bug.
Publish content
The generalized call to the PojoUtils utility class does not correctly handle enumerated types, private fields, etc.
When the provider business thread pool is full, the exception of rejecting the request cannot be notified to the client.
When the service return value payload exceeds the threshold, payload is repeatedly sent back to consumer
Slf4jLogger correctly outputs the actual line number of the log call
Latency (delay) exposure has a potential concurrency problem, resulting in multiple ports occupied by different services
If there is no provider, the mock logic on the processor side cannot take effect.
Some minor optimizations: OverrideListener snooping logic, provider-side heartbeat shutdown request, Main startup class downtime logic, etc.
Some small bug fixes: dynamic configuration cannot be deleted, telnet supports generic json calls, monitor statistics errors, etc.
Dubbo-2.5.7 version
In November 2017, 12 days ago, Ali released dubbo-2.5.7. This time not only fixed a number of major Bug, but also made a small feature improvement.
Publish content
Improve the configuration of annotations and fix the old version of annotations bug feedback from the community
Support reading registration ip port from environment variables at startup, binding ip port, containerized deployment scenarios that support community feedback, etc.
Adjust and open some imperfect xml configuration items, such as dump.directory, etc.
Solve the problem that the application is infinitely blocked due to the inability of zk to connect in the startup phase
Resolve the problem of blocking rpc requests caused by the first access to MonitorService when zk cannot connect # 672
The internal json implementation marks deprecate and becomes dependent on the open source fastjson implementation
RMI protocol supports passing p_w_uploads
Hessian supports EnumSet type serialization
Some small bug repair and optimization based on community feedback
This version is released with a lot of content, so the upgrade suggestions are also given.
Please pay attention to the upgrade
There are the following incompatibilities or precautions in this upgrade, but they have no impact on the core functions, and can be avoided by adding dependencies or following configuration rules. This is just a list of potential points for attention, and you don't need to pay extra attention if you don't use these features.
AccesslogFilter, telnet, mock and other features rely on the old JSON implementation. If the above features are enabled, please add fastjson as a third-party dependency after the upgrade.
This upgrade improves the annotation configuration while retaining the old annotation configuration code. For example, if the project changes from the previous version of the annotation configuration to version 2.5.7, be sure to delete the old annotation scan configuration and use the new configuration.
In the start-up phase of the project, if the zk is not reachable, the behavior of the current version is to continue to start using the registry cache (specifically determined by the check parameter.
When MonitorService is called for the first time, if zk is unreachable, the current version ignores monitor data upload to avoid blocking the main process of rpc.
Highlight
The update of version 2.5.7 is accompanied by a preview of the next step, and the dubbo-spring-boot-starter startup configuration module will be available soon.
This tip illustrates two things:
Dubbo will continue to improve, and many new features will be developed in the future, so I hope you will pay attention to it.
It shows that Spring Boot is becoming more and more influential, and all kinds of powerful open source software have given support, including Dubbo now.
What will Dubbo do next?
According to Ali Technology, the last three versions will do the following:
Priority is given to solving problems and framework defects in the use of the community, absorbing new features contributed by the community, and solving document access and incomplete problems.
Provide service delay riot, elegant downtime API interface to support RESTFULE-style service invocation, provide netty http support, integrate high-performance serialization protocol.
Routing function optimization, consumer-side asynchronous function optimization, provider-side asynchronous call support registry push notification async, merge processing transformation and so on.
Future plans:
Reconfigure the dynamic configuration module, separate the dynamic configuration and registry, integrate the popular open source distributed configuration management framework, separate the service metadata registration from the registry, enrich the metadata content, and adapt to the popular registry schemes such as consul etcd. Consider providing support for some service-oriented basic components, such as opentrace, oauth3, metrics, health, gateway, etc. Service governance platform OPS is redone, which is expected to provide stronger service testing, health check, service dynamic governance and other features in addition to code and UI refactoring. Dubbo modular, each module can be individually packaged, independently dependent, cluster circuit breaker and automatic fault detection capabilities.
Continue to explore the modernization and internationalization of the Dubbo framework. In the aspect of modernization, considering the current micro-service architecture and the increasingly popular trend of containerization, how to integrate Dubbo as a RPC framework and become an indispensable component in its ecosystem. It is emphasized that the future positioning of Dubbo is not to become a comprehensive solution for micro-services, but to focus on the field of RPC and become an important component of the micro-services ecosystem. As for the service governance requirements derived from microservices, Dubbo will actively adapt to open source solutions and even launch independent open source projects to support them.
What is the difference between Dubbo and Spring Cloud?
First of all, make a simple functional comparison:
DubboSpring Cloud service registry ZookeeperSpring Cloud Netflix Eureka service invocation mode RPCREST API service monitoring Dubbo-monitorSpring Boot Admin circuit breaker imperfect Spring Cloud Netflix Hystrix service gateway no Spring Cloud Netflix Zuul distributed configuration no Spring Cloud Config service tracking no Spring Cloud Sleuth message bus no Spring Cloud Bus data flow no Spring Cloud Stream batch task no Spring Cloud Task …
As can be seen from the above picture, the function of Dubbo is only part of the Spring Cloud system.
This comparison is not fair. First of all, Dubbo is a product of the SOA era, and its focus is mainly on service invocation, traffic distribution, traffic monitoring and circuit breakers. Spring Cloud was born in the era of micro-service architecture, considering all aspects of micro-service governance. In addition, relying on the advantages of Spirng and Spirng Boot, the goals of the two frameworks are not consistent at the beginning. Dubbo positioning service governance and Spirng Cloud is an ecology.
If you only focus on this aspect of service governance, Dubbo is actually much better than Spring Cloud:
Dubbo supports more protocols, such as rmi, hessian, http, webservice, thrift, memcached, redis and so on.
Dubbo uses the RPC protocol more efficiently, and under extreme stress tests, the efficiency of Dubbo is more than twice that of Spring Cloud.
Dubbo has more powerful background management, and the background management Dubbo Admin provided by Dubbo has powerful functions, such as routing rules, dynamic configuration, access control, weight adjustment, load balancing and so on.
You can limit the access to a certain IP traffic, set different servers to distribute different traffic weights, and support a variety of algorithms. With these features, we can do grayscale publishing and failover online. Spring Cloud still does not support grayscale publishing, traffic weights and other functions.
P_w_picpath
So Dubbo focuses on service governance; Spring Cloud focuses on micro-service architecture ecology.
Does Dubbo release have an impact on Spring Cloud?
Domestic technicians like to compare Dubbo and Spring Cloud because both are excellent open source frameworks for service governance. But the starting point of the two is different. Dubbo focuses on service governance and will continue to develop in this direction in the future. Spring Cloud focuses on the ecology of micro-service governance. Because all aspects of micro-service governance are what it pays attention to, service governance is only a part of micro-service ecology. Therefore, it can be boldly concluded that Dubbo will be better at service governance in the future, while Spring Cloud is unbeatable in micro-service governance.
At the same time, according to the latest update technology of Dubbo, Dubbo will also actively embrace open source and new technologies. The next version of Dubbo will soon support Spring Boot, making it easy for us to enjoy efficient development while also supporting efficient service calls. Dubbo is widely used in Chinese Internet companies, but now Ali has paid attention to it again and released a new version and a series of plans, which is good news for companies that are using Dubbo, and a very happy thing for the vast number of developers in China. We are very happy to see that China has a very excellent open source framework, which gives us more choices and better support.
In fact, the two are not necessarily competitive and can even complement each other if used properly; the other two areas of concern are also inconsistent, so they have little impact on Spring Cloud.
How to choose?
Many people may be hesitant about which framework should be chosen for service governance. If the company has extremely high requirements for efficiency, it is recommended to use Dubbo, compared with RPC will be much more efficient than HTTP; if the team does not want to make big changes to the technical architecture, it is recommended that Dubbo,Dubbo can be integrated into the architecture of the internal system with only a few changes. But if the technical team likes to challenge new technologies, it is recommended that the Spring Cloud,Spring Cloud architecture has interesting and cool technologies. If the company chooses the micro-service architecture to restructure the entire technology system, then Spring Cloud is the choice. It can be said that it is not one of the best micro-service frameworks at present.
Finally, technology selection is a comprehensive problem, which needs to consider the situation of the team, the development of the business and the product characteristics of the company. The coolest technology is not necessarily the best, and choosing a framework that suits your team and the company's business is the best solution. The development of technology has no end, so we should keep the cup empty, hungry and in awe of technology.
The original source Ali Dubbo crazy update, what does Spring Cloud have to do with it?
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.