Apache dubbo

Clone this repo:
  1. 3018f07 Merge pull request #96 from Alanxtl/fix_prom by Xin.Zh · 4 days ago main
  2. 32fe983 import format by Alanxtl · 4 days ago
  3. 1c7caa0 import format by Alanxtl · 4 days ago
  4. ec06e2b fix: improve error handling in Prometheus mock server and update shutdown context by Alanxtl · 4 days ago
  5. 12026ad fix: update server shutdown context in test to use context.TODO() by Alanxtl · 4 days ago

Dubbo-go-pixiu Samples

CI

samples for dubbo-go-pixiu

中文 🇨🇳

What It Contains

  • dubbogo/simple: this directory contains some simple samples for dubbogo and pixiu

    • dubbogo/simple/bestdo: include jaeger and http to dubbo
    • dubbogo/simple/body: http to dubbo with api_config.yaml
    • dubbogo/simple/csrf: csrf protection
    • dubbogo/simple/direct: http to dubbo with direct generic call
    • dubbogo/simple/nacos_farconf: pixiu uses nacos as a remote config center
    • dubbogo/simple/jaeger: pixiu with jaeger
    • dubbogo/simple/jwt: jwt authentication
    • dubbogo/simple/nacos: http to dubbo with nacos registry
    • dubbogo/simple/prometheus: pixiu with prometheus
    • dubbogo/simple/dubboproxy: dubbo to http transform and http to dubbo transform
    • dubbogo/simple/resolve: convert http requests to dubbo requests, following the default http to dubbo conversion rules
    • dubbogo/simple/traffic: traffic splitting and canary release
    • dubbogo/simple/triple: http to triple
    • dubbogo/simple/zookeeper: pixiu with dubbo using zookeeper as registry center
  • dubbohttpproxy: dubbo to http transform and http to dubbo transform

  • dubbotripleproxy: example of inter-conversion of dubbo and triple protocol requests

  • grpc/simple: this sample demonstrates how to use pixiu as a gateway for a standard gRPC service, supporting unary, client-side streaming, server-side streaming, and bidirectional streaming RPCs.

  • http/grpc: convert http requests to grpc requests, support configuring proto files or dynamically obtaining proto information from a grpc server with reflection enabled.

  • http/simple: this directory contains common Http request proxying features that serve as common API gateways

  • llm: simple sample for pixiu to call llm

  • mcp: this sample demonstrates how to use the MCP (Model Context Protocol) filter in pixiu to expose backend HTTP API services as MCP tools for Large Language Models (LLM) to call.

  • plugins: this directory contains some plugins for pixiu

    • plugins/ratelimit: rate limit plugin for pixiu
  • seata: this demonstrates how to configure the Seata filter to interact with the Seata TC for distributed transaction coordination.

  • shutdown: this directory demonstrates how to gracefully shut down

    • shutdown/dubbo: this demonstrates how to gracefully shut down the Pixiu server with dubbo listener.
    • shutdown/http: this demonstrates how to gracefully shut down the Pixiu server with http listener.
    • shutdown/http2: this demonstrates how to gracefully shut down the Pixiu server with http2 listener.
    • shutdown/triple: this demonstrates how to gracefully shut down the Pixiu server with triple listener.
  • springcloud: Http proxy function, get cluster information from spring cloud service registry, dynamic management of cluster and route function

  • xds: pixiu with xds

How To Run

Please refer How To Run for the instructions.

Dubbo-go-pixiu ecosystem other projects

  • pixiu-admin Dubbo-go-pixiu Admin is a comprehensive management platform for the dubbo-go-pixiu Gateway. It provides a centralized control panel for configuring, monitoring, and managing gateway resources through both a web-based user interface and RESTful APIs.
  • pixiu-api Dubbo-go-pixiu API is a gateway framework that serves as the API configuration model for the dubbo-go-pixiu ecosystem. It provides a set of APIs and configuration models to build, configure, and extend API gateway functionality for microservices, with a particular focus on integration with Dubbo services.
  • benchmark The benchmark system allows users to measure and analyze key performance metrics such as latency, throughput, and Queries Per Second (QPS) under various load conditions to evaluate the efficiency of the protocol conversion process.

How to contribute

If you want to add more samples, pls. read on:

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