Hi, I'm very new to Dubbo but I'd like to share some ideas. I am playing around trying to implement a simple monitor for Dubbo (this one https://github.com/bitstorm/wicket-coreui). To start grasping what I have to do I've looked at what dubbo-monitor-simple ( https://github.com/apache/incubator-dubbo-ops) already does. While the overall mechanism is quite clear I find difficult working with the current URL-based notification mechanism (I'm referring to interface NotifyListener). Extracting informations from url is not trivial and I think we might use a more complex and clear object for this task. In particular is difficult to be notified if a consumer application has been unregistered.
Hope this could be helpful for future improvements. Thank you. On Mon, Jul 9, 2018 at 9:32 AM, Liujie Qin <[email protected]> wrote: > Hi All, Dubbo has become a excellent RPC framework with the efforts of > various partners in the community. However, in the process of development, > we found some shortcomings of Dubbo 2.x, which is listed as follows: > > - The maintainability is relatively poor. The code uses a lot of > dynamically generated classes. It is difficult to understand and > difficult > to debug. The code hierarchy is not clear enough, and the calling logic > is > confusing. As an experienced Dubbo developer, sometimes it is difficult > for > me to sort out the calling process of Dubbo 2.x; the more developed, the > more difficult it is to maintain, so it needs to be refactored in order > to > develop better. > - Some extensions cannot meet current needs, such as service addresses > push monitoring, performing Filter early interception requests before > service addresses selection, printing the process of route selection, > etc. > - The underlying Dubbo 2.X is based on synchronous calls. The > asynchronous call is wrapped synchronously. This introduces inaccuracies > such as RT during asynchronous calls. > - At present, the service metadata information and the address of the > Dubbo service are coupled together. Most of the metadata is the same, > and > the metadata is redundant. At the same time, as the size of the machine > increases, the Registry is under great pressure, especially when machine > restart. > - The service registry and the configuration center are coupled > together, and after splitting, the management and storage of service > governance rule data such as routing rules can be better handled. > - The core is written based on JDK 1.6 and cannot use the newer JDK > features. It is recommended to upgrade JDK to 1.8 and above. > > For the above reasons, in order to better develop Dubbo and attract more > people to participate in the development of the Dubbo community, I propose > to refactor the Dubbo 2.x code. The newly developed version number is Dubbo > 3.x. Refactoring Dubbo 3.x will have the following advantages: > > - Refactoring core modules to make the code more concise and > understandable > - Refactoring the routing process, Making the route process to Pipeline > style,Making the route process can be observed > - Add new extension points to make it easier for developers to extend > the framework > - Add the Service Domain Model to enable developers to handle its > lifecycle > - Supports asynchronous interface, unified call process returns > CompleteFuture, synchronous call process uses CompleteFuture wrapper; > Solve > the problem of inaccurate statistics such as RT during asynchronous call > - Splitting out the Configuration Center and Registry for better control > and support for larger clusters > - Prepare for new features such as Http2 stream、Reactive stream > - Performance improvement > - And so on > > Of course, refactoring Dubbo 3.x also faces the following challenges: > > - A wide range of refactorings that can cause extension points to be > incompatible > - The Dubbo team may need to maintain two branches at the same time for > a longer period of time > > For the following challenges, we can do this: > > - > > For major extension points, such as Fitler, etc., be sure to ensure > compatibility and enable developers to smoothly upgrade > - > > For some extension points, the Dubbo team will listen to the community > and selectively fix compatibility issues with some extension points. > > Comments welcome! > > thank you ~ > -- Andrea Del Bene. Apache Wicket committer.
