Backend Development 13 min read

CDubbo: Ctrip’s Customized Dubbo Framework – Architecture, Governance, Monitoring, and Extensions

This article describes how Ctrip introduced a customized Dubbo framework called CDubbo, covering the motivations for adopting Dubbo, the initial implementation of service governance and monitoring, and subsequent extensions such as callback enhancement, serialization support, circuit‑breaking, testing tools, and a bastion testing gateway.

Ctrip Technology
Ctrip Technology
Ctrip Technology
CDubbo: Ctrip’s Customized Dubbo Framework – Architecture, Governance, Monitoring, and Extensions

In 2017 Ctrip decided to adopt Dubbo, a high‑performance RPC framework, to overcome limitations of its legacy HTTP‑based SOA framework, such as poor extensibility and connection‑per‑request constraints under high concurrency.

The first step of the Dubbo rollout focused on service governance and monitoring. Ctrip reused its existing service registry architecture, building a decentralized Artemis registry inspired by Netflix Eureka, and added a serviceId parameter to bridge Dubbo interfaces with the registry. Monitoring was implemented with statistical dashboards and the CAT real‑time tracing platform, embedding CAT transactions and events in both client and server sides.

After establishing governance and monitoring, Ctrip released the first customized version of Dubbo, named CDubbo, in March 2018. Subsequent functional extensions include:

Callback enhancement : Replaced the single‑instance callback interface with a StreamContext and an anonymous class offering onNext , onError , and onCompleted methods, allowing request‑level context to be captured via closures.

Serialization extension : Added support for Google Protocol Buffers (PB) alongside the default Hessian serializer, with fallback to Hessian for unsupported types.

Request circuit‑breaking : Integrated Netflix Hystrix to provide fail‑fast, concurrency control, and isolation, preventing cascading failures.

Service testing tool : Built a testing platform that generates JSON‑based request payloads from service metadata, uses Dubbo’s generic service for invocation, and displays JSON responses, simplifying testing without writing code.

Bastion testing gateway : Developed a gateway that routes requests marked for bastion testing to a designated test instance, handling both normal RPC calls and callback streams.

Looking ahead, CDubbo has released 27 versions, with many Ctrip business units adopting it, and future plans include adding request rate limiting, authentication, and further open‑source contributions.

monitoringMicroservicesBackend DevelopmentRPCdubboservice governance
Ctrip Technology
Written by

Ctrip Technology

Official Ctrip Technology account, sharing and discussing growth.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.