Apache Dubbo Website

repository·master·Indexed 19 days ago

https://github.com/apache/dubbo-website

Source files and documentation for the official Apache Dubbo website. Built using Hugo with the Docsy theme, the repository includes guides on local development environment setup, contribution workflows, and technical integration blogs covering Seata for distributed transactions and GraalVM Native Image support for Dubbo 3.2 AOT processing.

Tokens
367.8K
Snippets
908
Records
1.3K
Agent score
67%

What's inside apache-dubbo-website

  1. Introduction to Dubbo Rust

    master

    Dubbo Rust is a high-performance, extensible RPC framework designed to align with the Dubbo3 core feature set. It serves as a data plane component within the Dubbo Mesh architecture, receiving configurations from a control plane to provide service governance and RPC communication capabilities.

    Key features include:

    • High-performance communication based on the HTTP/2 Triple protocol.
    • IDL-based RPC definitions using Protobuf for code generation and Serde for serialization.
    • Support for multiple communication models: request-response (unary), request/response streaming, and bi-streaming.
    • An extensible architecture supporting components like Listener, Connector, Filter, Protocol, and Invoker.
  2. Introduction to dubbo-go

    master

    dubbo-go is the Go language implementation of Apache Dubbo. It is a microservices development framework designed to solve RPC communication and service governance challenges in the Go ecosystem.

    Key features include:

    • API and RPC Protocols: Provides HTTP/1/2 based communication and streaming models.
    • Microservice Governance: Built-in support for service discovery, traffic control, observability, full-link tracing, and logging.
  3. What is Apache Dubbo?

    master

    Apache Dubbo is a high-performance, lightweight microservices framework designed for building distributed systems. While originally developed in Java, it has expanded to support multiple languages including Go, Rust, and Python, enabling cross-language and cross-platform communication.

    Key features include:

    • Service Governance: Includes service registration, discovery, load balancing, fault tolerance, and call chain tracing.
    • High Performance: Optimized for efficient communication in distributed architectures.
  4. Overview of Sentinel Console features

    master

    The Sentinel console provides a unified interface for managing traffic control and circuit breaking rules. Key features include:

    • Single Device Monitoring: View individual machine details including device name, IP address, port number, health status, and heartbeat time.
    • Link Monitoring: Analyze real-time execution conditions for specific client resources. It supports two modes:
      • Tree Structure: Displays resource call links in a hierarchical tree.
      • Flat Mode: Displays resource execution status without hierarchical distinction.
    • Aggregate Monitoring: Provides real-time, second-level accuracy monitoring for all machines belonging to the same service.
    • Rule Configuration: Allows real-time viewing and configuration of flow limiting, degradation, and system protection rules.
  5. Apache Dubbo Next Generation Cloud Native Microservices Challenge Topics

    master
    The Apache Dubbo Next Generation Cloud Native Microservices Challenge, organized by the OpenAtom Foundation, features five major technical topics for participants. These topics focus on high-performance protocols, benchmarking, security, monitoring, and cross-cluster communication in cloud-native environments.
  6. New Features in Apache Dubbo 3.3

    master

    Apache Dubbo 3.3 introduces several key enhancements for modern workloads:

    • Native Image AOT Support: Supports Ahead-of-Time compilation to create native binaries, significantly reducing startup time and memory usage (ideal for serverless).
    • Project Loom Support: Optimizes thread management using virtual threads, improving concurrency handling and simplifying asynchronous programming.
    • New Routing Rules: Provides more flexible traffic control and service governance for large-scale deployments.
  7. Features of dubbo2.js

    master

    The dubbo2.js library provides the following capabilities for Node.js developers:

    • Zookeeper Support: Integration with Zookeeper for service discovery.
    • Native Dubbo Protocol: Full support for the standard Dubbo communication protocol.
    • Direct Connection: Ability to connect directly to services without a registry.
    • Full-link Tracing: Support for distributed tracing across the call chain.
    • Interface Generation: Automatic generation of Dubbo interfaces for easier consumption.
  8. Future Roadmap for Dubbo Go

    master

    The Dubbo Go development roadmap includes the following key objectives:

    • Dubbo Router Implementation: Swiftly implementing the router by leveraging enhanced governance configurations that support parameter delivery via configuration centers like Zookeeper and Apollo.
    • Distributed Tracing: Introducing a mainstream tracing solution using OpenTracing as the standard to integrate with the OpenTracing ecosystem.
    • Kubernetes Operators: Implementing service invocation through operators to create a new Kubernetes-centric registration center.
    • Service Mesh Integration: Assimilating into the cloud-native ecosystem by aligning with Istio to define Dubbogo's role within a service mesh environment.
    • Compatibility: Aiming for functionality that meets Dubbo 2.7 compatibility.
  9. Use Dubbo tools for development and testing

    master

    Dubbo provides tools to address the complexities of distributed microservices R&D:

    • Service Testing: The Dubbo RPC protocol supports curl access, facilitating easier development collaboration and manual testing.
    • Service Mocking: Tools are available to mock services for isolated development.
    • Dubbo Admin Console: A centralized console to visualize operations, manage documents, and handle single-machine operation and maintenance.
  10. Core Features of Dubbo3

    master

    Dubbo3 is a cloud-native service framework designed for high scalability and performance. Its core features include:

    • New Service Discovery Model: Application-level service discovery designed for cloud-native infrastructure and heterogeneous systems, enhancing cluster scalability.
    • Triple Protocol: A next-generation RPC protocol based on HTTP/2 that is compatible with gRPC. It supports strong gateway penetration, is multi-language friendly, and supports Reactive Streams.
    • Unified Traffic Governance Model: Provides uniform governance rules across SDK, Mesh, VM, and Container environments.
    • Service Mesh: Supports both Sidecar Mesh and Proxyless Mesh (as of version 3.1.0) to reduce migration costs and provide architectural flexibility.
  11. Benchmark Conclusions for Dubbo 3 Service Discovery

    master

    Dubbo 3 provides significant performance improvements in service discovery compared to version 2.x, specifically regarding resource utilization and Garbage Collection (GC) overhead.

    Resource Utilization

    • Interface-level service discovery: Resident memory on a single machine decreased by approximately 50% compared to version 2.x.
    • Application-level service discovery: Resident memory on a single machine decreased by approximately 75% compared to version 2.x.

    Garbage Collection (GC) Performance

    • Interface-level service discovery: GC consumption during address changes decreased by an order of magnitude (from hundreds of GCs down to tens).
    • Application-level service discovery: The number of GCs approached zero, with Full GC (FGC) counts declining significantly from hundreds in version 2.x to zero.
  12. Perform cross-language Dubbo calls with dubbo2.js

    master

    Overview

    dubbo2.js is a Node.js Dubbo client that provides support for the native Dubbo protocol in Node.js. It enables efficient and convenient RPC (Remote Procedure Call) communication between Node.js and Java services, allowing for heterogeneous language environments without requiring a middle layer like HTTP/REST.

    Key Capabilities

    • Native Protocol Support: Communicates directly using the Dubbo protocol over TCP.
    • Java Type Representation: Uses js-to-java to allow Node.js to express and handle Java-specific data types.
    • Serialization: Uses hessian.js to provide the necessary serialization capabilities for the Dubbo protocol.

    Implementation Strategy

    Instead of using universal protocols like REST or JSON-RPC (which add an HTTP layer and increase latency), dubbo2.js replicates the Dubbo protocol message format using Node.js sockets. This allows Node.js to act as a native participant in a Dubbo-governed microservice architecture.