このプロジェクトについて

Apache Dubbo-goはApache DubboのGo実装であり、他言語のDubbo実装と相互運用できるように設計された高性能RPC・マイクロサービスフレームワークです。Goの並行処理機能を活用し、サービスディスカバリ、負荷分散、トラフィック管理などのサービスガバナンスをサポートします。 プロトコルサポートにはDubbo、JSONRPC、Triple(gRPC互換)、gRPC、HTTP、HTTP2、および実験的なHTTP/3が含まれ、異種環境での統合を支援します。サービスディスカバリの統合としてNacos、Zookeeper、Etcd、Polaris-meshが挙げられています。負荷分散戦略にはAdaptive、Random、RoundRobin、LeastActive、ConsistentHashがあります。トラフィック管理はトラフィックスプリット、タイムアウト、レート制限、カナリアリリースをカバーします。設定はYAMLファイルまたはNacos、Apollo、Zookeeperなどの動的ソースから取得できます。可観測性のオプションにはPrometheusメトリクス、OpenTelemetryトレーシング、サービス登録ライフサイクルイベントを含むロギングがあります。高可用性戦略にはFailover、Failfast、Failsafe/Failback、Available、Broadcast、Forkingがあります。 READMEはTripleプロトコルの汎用呼び出し、グループ/バージョンのワイルドカードマッチング、TLS APIの再設計を通じたApache Dubbo(Java)との相互運用性を強調しています。最近のリリースはAPIの統合、Tripleプロトコル機能、アプリケーションレベルのメタデータ、サービスガバナンス、並行処理の安全性、リリーストゥールに焦点を当てています。バージョン3.3.2はレガシーなconfigパッケージを削除してglobalパッケージを採用し、レース、古いスナップショット、リソースリークの修正を記しています。バージョン3.3.1はコンテンツベースのキャッシュによる設定ホットリロード、実験的なHTTP/3、Apollo統合、Triple OpenAPI生成を追加しました。バージョン3.3.0はスクリプトルーティング、マルチデスティネーション条件付きルーティング、Tripleキープアライブとコネクションプーリング、Nacosマルチカテゴリサブスクリプションを導入しました。 はじめににはGo 1.24以降が必要です。インストールは`go get dubbo.apache.org/dubbo-go/v3@latest`で行います。簡単な例では、Protobufでサービスを定義し、実装し、ポート上のTripleプロトコルでサーバーに登録し、提供する方法を示します。その後、サービスはHTTP上のJSONを使用してcURLで、または標準のdubbo-goクライアントを通じて呼び出すことができます。サンプルはdubbo-go-samplesリポジトリで利用可能です。 開発ツールは`tools/`ディレクトリにあります。dubbogo-cliはスキャフォールディング、コンパニオンツールのインストール、メタデータの検査、デバッグ用です。protoc-gen-go-tripleはprotobuf定義からTripleバインディングを生成します。protoc-gen-triple-openapiはOpenAPI v3ドキュメントを生成します。imports-formatterはGoのインポートグループ化用です。dubbo-go-schemaはYAML設定の検証用です。また、Dubbo-Go、Dubbo-Java、gRPCを比較するベンチマークスイートもあります。 エコシステムにはdubbo-go-samples、多言語相互運用のためのプロキシとしてのdubbo-go-pixiu、Dubbo Java相互運用チュートリアル、Dubbo Adminコンソールが含まれます。ドキュメントは公式DubboウェブサイトおよびGo SDKセクションで利用可能です。プロジェクトはApache License 2.0の下でライセンスされており、GitHub issuesやメーリングリストを通じた貢献を歓迎しています。