The 5-dubbo maturity of the first Knowledge Dubbo series

Source: Internet
Author: User

Maturity of functional maturity
Feature features Maturity Maturity Level Strength Strength Problem Problems Advise recommendations User Users
concurrency control Tested concurrency control Trial
Connection control Tested Connection Count Control Trial
Direct Connect Provider Tested Point-to-point direct-connect service provider for testing Test environment use Alibaba
grouping aggregations Tested Grouped aggregate return values for services such as menu aggregation Special scenes use Can be used in production environments
Parameter Validation Tested Parameter validation, JSR303 validation Framework Integration has an impact on performance Trial Laiwang
Result Cache Tested Result cache, for accelerating requests Trial
Generalization reference Stable Generalization calls, without the need for a business interface class for remote calls, for test platforms, open network Guan, etc. Can be used in production environments Alibaba
Generalization implementation Stable Generalization implementation without the need for a business interface class to implement arbitrary interfaces for mock platforms Can be used in production environments Alibaba
echo Test Tested echo Test Trial
Implicit pass-through parameters Stable Additional parameters Can be used in production environments
asynchronous invocation Tested Unreliable asynchronous invocation Trial
Local call Tested Local call Trial
Parameter callback Tested Parameter callback Special scenes use Trial Registry
Event notification Tested Event notification, triggered before and after a remote call executes Trial
Local stub Stable Perform partial logic on the client Can be used in production environments Alibaba
Local camouflage Stable Forge return results that can be executed on failure or executed directly for service demotion Registration Center support required Can be used in production environments Alibaba
Delayed exposure Stable Delayed exposure service to wait for the app to load warmup data, or wait for the spring load to complete Can be used in production environments Alibaba
Delay connection Tested Delay establishing a connection, calling when establishing Trial Registry
Sticky connections Tested A sticky connection that always initiates a request to the same provider, unless the provider hangs, and then switches to another Trial Registry
Token validation Tested Token authentication, for service authorization Registration Center support required Trial
Routing rules Tested Dynamically determining call Relationships Registration Center support required Trial
Configuration rules Tested Dynamic distribution configuration, switch for function Registration Center support required Trial
Access log Tested Access logs for logging of call information Local storage, impacting performance, limited by disk size Trial
Distributed transactions The Jta/xa three-phase commit transaction Not stable Not available
Policy Maturity Level
Feature features Maturity Maturity Level Strength Strength Problem Problems Advise recommendations User Users
Zookeeper Registration Center Stable Support network-based clustering, there are a wide range of open-source products, we recommend the use of dubbo-2.3.3 or above version (recommended) Dependent on the stability of the zookeeper Can be used in production environments
Redis Registration Center Stable Supports a client-based, dual-write clustering approach with high performance Requires server time synchronization to check for heartbeat stale dirty data Can be used in production environments
Multicast Registration Center Tested De-centralized, no need to install registration center relies on network tuopu and routing, and is at risk across engine rooms Small-scale application or development test environment
Simple Registration Center Tested Dogfooding, the registry itself is also a standard RPC service No cluster support, possibly single point of failure Trial
Feature Maturity Strength problem Advise User
Simple Monitoring Center Stable Support Jfreechart Statistics Report No cluster support, possibly single point of failure, but does not affect RPC operation after a failure Can be used in production environments
Feature Maturity Strength problem Advise User
Dubbo Protocol Stable A single long connection with NiO multiplexing, and the use of thread pools to process requests concurrently, reducing handshakes and increasing concurrency, performance is better (recommended) Single connection becomes a bottleneck in large file transfers Can be used in production environments Alibaba
RMI Protocol Stable Interoperable with native RMI, based on TCP protocol Occasionally the connection fails and the stub needs to be rebuilt Can be used in production environments Alibaba
Hessian protocol Stable Interoperable with native Hessian, based on HTTP protocol Requires Hessian.jar support, the overhead of HTTP short connection Can be used in production environments
Feature Maturity Strength problem Advise User
Netty Transporter Stable JBoss NIO Framework with better performance (recommended) One request to dispatch two kinds of events, to block unwanted events Can be used in production environments Alibaba
Mina Transporter Stable Established NIO framework, stable To send a message queue out of time, under great pressure, there will be FULLGC Can be used in production environments Alibaba
Grizzly Transporter Tested Sun's NIO framework, applied to the GlassFish server The thread pool is not extensible and filter cannot intercept the next filter Trial
Feature Maturity Strength problem Advise User
Hessian serialization Stable Good performance, multi-lingual support (recommended) Hessian version compatibility is not good, and the application may use the Hessian conflict, Dubbo embedded hessian3.2.1 source code Can be used in production environments Alibaba
Dubbo serialization Tested By not transmitting the pojo of the class meta information, in a large number of Pojo transmission, performance is better External file declaration is required when the Parameter object increments the field Trial
Json serialization Tested Plain text, can be resolved across languages, by default with Fastjson parsing Poor performance Trial
Java serialization Stable Java Native support Poor performance Can be used in production environments
Feature Maturity Strength problem Advise User
Javassist proxyfactory Stable Better performance (recommended) with byte code generation instead of reflection Depending on the Javassist.jar package, which consumes the JVM's perm memory, Perm may have to be larger: java-xx:permsize=128m Can be used in production environments Alibaba
JDK proxyfactory Stable JDK native support Poor performance Can be used in production environments
Feature Maturity Strength problem Advise User
Failover Cluster Stable Failed automatic switchover, when a failure occurs, retry other servers, usually for read operations (recommended) Retry brings a longer delay Can be used in production environments Alibaba
Failfast Cluster Stable Fast failure, only one call, failure immediate error, usually for non-idempotent write operations Call failure may occur if a machine is rebooting Can be used in production environments Alibaba
Failsafe Cluster Stable Fail-safe, directly ignored when an exception occurs, usually for operations such as writing audit logs Loss of Call information Can be used in production environments Monitor
Failback Cluster Tested Failed auto-recovery, background logging failed requests, timed re-sending, usually for message notification operations Unreliable, restart lost Can be used in production environments Registry
Forking Cluster Tested Multiple servers are called in parallel, as long as a success is returned, typically for high-real-time read operations that require higher Need to waste more service resources Can be used in production environments
Broadcast Cluster Tested Broadcast call all providers, call each one, an error error, usually used to update the provider local state Speed is slow, any one error is error Can be used in production environments
Feature Maturity Strength problem Advise User
Random LoadBalance Stable Random, set random probability by weight (recommended) High probability of collisions on a cross section, and transient pressure may occur when retrying Can be used in production environments Alibaba
Roundrobin LoadBalance Stable Round robin, set round-robin ratio by weight after convention There is a slow machine build-up request problem, and extreme conditions can create avalanches Can be used in production environments
Leastactive LoadBalance Stable Minimum number of active calls, random of the same active number, active number means the count difference before and after the call, so that slow machines receive fewer requests Weight is not supported, in capacity planning, can not be weighted to the pressure of a machine pressure measurement capacity Can be used in production environments
Consistenthash LoadBalance Stable Consistent hash, the same parameter requests are always sent to the same provider, when a provider hangs, the original request to the provider, based on the virtual node, divided into other providers, will not cause drastic changes Uneven pressure sharing Can be used in production environments
Feature Maturity Strength problem Advise User
Conditional Routing Rules Stable Conditional expression-based routing rules for easy and easy-to-use functions Some complex multi-branch conditions, the rules are difficult to describe Can be used in production environments Alibaba
Script Routing Rules Tested Scripting engine-based routing rules with powerful features Without running the sandbox, scripting is too powerful to be a backdoor Trial
Feature Maturity Strength problem Advise User
Spring Container Stable Automatically load all spring configurations under the Meta-inf/spring directory Can be used in production environments Alibaba
Jetty Container Stable Launches an inline jetty for reporting status When a large number of pages are accessed, the server's threads and memory are affected Can be used in production environments Alibaba
log4j Container Stable Automatic configuration of the log4j, automatically to log files by process when multi-process startup User cannot control the configuration of log4j, not flexible Can be used in production environments Alibaba

The 5-dubbo maturity of the first Knowledge Dubbo series

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.