このプロジェクトについて
QPub Serverは、リアルタイムのpub/subチャンネルとジョブキューを組み合わせ、RESTおよびWebSocketインターフェースで公開するセルフホスト型メッセージングサーバーです。ホスト型サービスに依存せず、独自のメッセージング基盤を運用したいチームを対象としています。
主な機能
- チャンネル: WebSocket経由で配信されるパブリッシュ/サブスクライブメッセージング。パブリッシュはRESTからも可能です。
- ジョブキュー: 作業項目のエンキューと取得、ワーカーの実行、Webhookの受信。
- マルチテナンシー: テナントは互いに分離され、レート制限を適用できます。
- 認証: APIキーとクライアントトークンでアクセスを保護し、別個のコントロールトークンがプロビジョニングAPIを保護します。
- コントロールAPI: テナント、APIキー、制限、キュー、ワーカーを管理し、リアルタイム統計と接続を検査します。
バッキングサービス
サーバーはNATS JetStream、Redis、Postgresに依存し、ドライバー設定によりCockroachDBも代替データベースとしてサポートされます。
はじめに
READMEでは、サンプルの環境ファイルをコピーしてDocker Composeを実行することが推奨されています。これによりPostgres、Redis、NATSが起動します。デフォルトポートは、コントロールAPIが809、RESTが8111、WebSocketが8131です。RESTまたはWebSocket呼び出しを行う前に、コントロールAPIを通じてテナントとAPIキーを作成する必要があります。Goツールを使用したローカルビルド手順も記載されており、環境設定を通じて同じバッキングサービスに到達可能である必要があります。
コントロールAPIはベアラートークンまたはカスタムヘッダーで認証されます。トークンを空のままにするとコントロールAPIはオープンになり、READMEではこれはローカル開発専用であると注記されています。記載されているエンドポイントは、ヘルスチェック、インスタンスとメトリクス、テナントの作成・一覧・取得・削除、テナントごとの統計、接続、チャンネル、レート制限、APIキー、キュー、ワーカーをカバーしています。
このプロジェクトはApache License 2.0の下でライセンスされています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.