Repolode
smallnest

smallnest/rpcx

プラグイン式のサービスディスカバリー、複数のトランスポートとコーデック、HTTP経由の多言語アクセスに対応した、マイクロサービス構築向けのGo RPCフレームワーク。

スター
8,319
フォーク
1,173
未解決の Issue
4
最終コミット
2 か月前

これは何?

rpcxはAlibaba Dubboを参考にGoで開発されたRPCフレームワークで、ネットワーク越しに互いを呼び出すサービスへアプリケーションを分割できます。protoファイルを用意せずにGoの関数をRPCメソッドとして公開でき、クライアントはロードバランシングやフェイルオーバーのオプションを備えたシンプルなAPIで呼び出せます。

TCP、HTTP、QUIC、KCPの各トランスポートと、JSON、Protobuf、MessagePack、raw bytesなどのコーデックに対応しています。サービスディスカバリーにはpeer-to-peer設定、zookeeper、etcd、consul、mDNSを利用でき、ロードバランシングではランダム、ラウンドロビン、一貫性ハッシュ、重み付けなどの戦略を選べます。HTTP gatewayを介して他の言語からサービスを呼び出すこともでき、JavaとRustの実装も提供されています。

認証、メタデータの受け渡し、圧縮、ハートビート、双方向通信、バックアップリクエストなどの機能を備えています。etcd、zookeeper、consulなど一部のプラグインは、バージョン1.7.6以降、別のリポジトリに移行しています。

主な機能

  • 01protoファイルなしで、通常のGoメソッドをRPCエンドポイントとして公開できます。
  • 02TCP、HTTP、QUIC、KCPの各トランスポートに対応しています。
  • 03JSON、Protobuf、MessagePack、raw byteの各コーデックを利用できます。
  • 04peer-to-peer、zookeeper、etcd、consul、mDNSによるサービスディスカバリーを提供します。
  • 05ロードバランシング戦略に加え、フェイルオーバー、フェイルファスト、フェイルトライの耐障害モードを備えています。

ユースケース

  • RPCで互いに呼び出すGoバックエンドをマイクロサービスに分割する。
  • HTTP gatewayを介して、他の言語で書かれたサービスからGoサービスを呼び出す。
  • サービスディスカバリーとロードバランシングが必要な、内部サービス間通信を構築する。

収録されている特集

トピック

よくある質問

rpcx とは?
プラグイン式のサービスディスカバリー、複数のトランスポートとコーデック、HTTP経由の多言語アクセスに対応した、マイクロサービス構築向けのGo RPCフレームワーク。 rpcxはAlibaba Dubboを参考にGoで開発されたRPCフレームワークで、ネットワーク越しに互いを呼び出すサービスへアプリケーションを分割できます。protoファイルを用意せずにGoの関数をRPCメソッドとして公開でき、クライアントはロードバランシングやフェイルオーバーのオプションを備えたシンプルなAPIで呼び出せます。
rpcx は無料で使えますか?ライセンスは?
rpcx は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
rpcx は今もメンテナンスされていますか?
半年以内に更新あり。rpcx の最終コミットは 2026年9月3日 です。
rpcx は何に使えますか?
RPCで互いに呼び出すGoバックエンドをマイクロサービスに分割する。 HTTP gatewayを介して、他の言語で書かれたサービスからGoサービスを呼び出す。 サービスディスカバリーとロードバランシングが必要な、内部サービス間通信を構築する。
rpcx はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/smallnest/rpcx

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト