Apache dubbo

Clone this repo:
  1. d875532 Bump golang.org/x/oauth2 in /compatibility/proxyless/go-client (#872) by dependabot[bot] · 20 hours ago main
  2. c9a5d8f Merge pull request #870 from 1kasa/Annotation_test by marsevilspirit · 4 days ago
  3. 980d356 Annotation_test by 1kasa · 4 days ago
  4. 68ba5a3 optimize: remove version:3 of docker-compose.yml (#853) by Gang Wang · 3 weeks ago
  5. cabd2e5 upgrade dubbo-go versions to v3.3.0 (#858) by KamTo Hung · 3 weeks ago

Dubbo Golang Examples

CI

中文 🇨🇳

What It Contains

compatibility (old dubbo-go samples)

  • compatibility/apisix: Example integrating apache/apisix with Dubbo-go
  • compatibility/async: Callback (asynchronous) and one-way RPC example
  • compatibility/config-api: How to use Dubbo-go by APIs without configuration files
  • compatibility/configcenter: Usage of different config centers, including zookeeper and nacos
  • compatibility/context: How to transfer request context between multiple producers/consumers
  • compatibility/direct: Direct invocation example
  • compatibility/error: Error handling and triple protocol examples
  • compatibility/filter: Examples of different filters, including custom_filter and tpslimit
  • compatibility/game: Game service example
  • compatibility/generic: Generic invocation example
  • compatibility/logger: Dubbo-go logging examples
  • compatibility/mesh: Proxy service mesh example showing how to deploy Dubbo-go services with Envoy on Kubernetes
  • compatibility/metrics: How to collect Dubbo-go Prometheus metrics
  • compatibility/otel: How to use OpenTelemetry as Dubbo-go tracing tool
  • compatibility/proxyless: Proxyless service mesh example for deploying Dubbo-go services on Kubernetes
  • compatibility/registry: How to use etcd/nacos/zookeeper as Dubbo-go registry
  • compatibility/rpc: Dubbo protocol communication examples
    • compatibility/rpc/dubbo: Dubbo-go 3.0 RPC example between Java and Go
    • compatibility/rpc/grpc: Dubbo-go RPC example based on gRPC
    • compatibility/rpc/jsonrpc: Dubbo-go RPC example based on JSON-RPC
    • compatibility/rpc/triple: Dubbo-go RPC example based on hessian2/msgpack/pb(protobuf-v3)/pb2(protobuf-v2)/self-defined-serialization
  • compatibility/seata-go: Seata-go distributed transaction example
  • compatibility/skywalking: How to integrate SkyWalking into Dubbo-go
  • compatibility/tls: Use TLS encryption in getty (tcp)/triple/gRPC communication mode
  • compatibility/tracing: Tracing example

Legacy samples

  • book-flight-ai-agent: Example for booking flights using an AI agent
  • config_center: Demonstrates how to use different config centers (e.g., nacos, zookeeper) for configuration management
  • config_yaml: Shows how to configure Dubbo-go applications using YAML files
  • context: Example of passing user data (attachments) via Go context between client and server
  • error: Error handling examples in Dubbo-go
  • filter: Demonstrates the use of built-in and custom filters in Dubbo-go
  • healthcheck: Service health check example
  • helloworld: Basic hello world example for Dubbo-go
  • integrate_test: Integration test cases for Dubbo-go samples
  • java_interop: Demonstrates interoperability between Java and Go Dubbo implementations
  • llm: Example of integrating large language models (LLM) with Dubbo-go
  • logger: Logging examples for Dubbo-go applications
  • metrics: How to collect and expose metrics from Dubbo-go services
  • online_boutique: Microservices online boutique demo using Dubbo-go
  • otel/tracing: Distributed tracing example using OpenTelemetry
  • registry: Examples of using different service registries (e.g., nacos, zookeeper)
  • retry: Demonstrates retry mechanisms in Dubbo-go RPC calls
  • rpc: Various RPC protocol examples with Dubbo-go
    • rpc/dubbo: Dubbo protocol example, including Java and Go interop
    • rpc/grpc: gRPC protocol example
    • rpc/jsonrpc: JSON-RPC protocol example
    • rpc/triple: Triple protocol example with multiple serialization formats
  • streaming: Streaming RPC example
  • task: Task scheduling and execution example
  • timeout: Demonstrates timeout handling in Dubbo-go
  • transaction/seata-go: Distributed transaction example using seata-go

How To Run

Please refer to How To Run for instructions.

How to contribute

If you want to add more samples, please read on:

  1. Create a new subdirectory and give it an appropriate name for your new sample. Please follow the layout of the existing samples if you are not sure how to organize your code.
  2. Make sure your sample works as expected before submitting a PR, and ensure GitHub CI passes after the PR is submitted. Please refer to the existing samples on how to test your sample.
  3. Please provide a README.md to explain your sample.