mcpField
S
Shenyu

Shenyu

ローカル
shenyu.apache.orgクラウド・インフラ8.9k今日更新

Shenyu について

Apache ShenYuは、サービスのトラフィック転送とAPIガバナンスを担うJava製ゲートウェイです。拡張可能なプラグインチェーンに、プロトコル転送、トラフィック制御、動的設定、AI・MCP機能を組み合わせています。

主な機能

  1. 01拡張可能なリクエストプラグインチェーン
  2. 02HTTP、WebSocket、Dubbo、gRPCのルーティング
  3. 03サービス登録とディスカバリー
  4. 04認証、レート制限、フォールトトレランス
  5. 05動的設定とオブザーバビリティ
  6. 06AIプロキシとMCPサーバープラグイン

活用シーン

  1. 01HTTPやRPCのバックエンドへのリクエスト転送
  2. 02APIへの認証とレート制限の適用
  3. 03複数ゲートウェイレプリカの設定管理

MCP 対応

MCPサーバープラグインはSSEとStreamable HTTPでMCPを提供します。ShenYuはAIプロキシとプロンプト処理機能も備えています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Apache ShenYu

Maven Central リリース Apache 2.0 ライセンス CI ステータス Codecov カバレッジ Docker のプル数 Gitpod でコントリビュート DeepWiki に質問

公式ウェブサイト クイックダウンロード

Trendshift 上の apache/shenyu

概要

Apache ShenYu は、サービスのプロキシ、プロトコル変換、API ガバナンスを行う Java ベースのゲートウェイです。拡張可能なプラグインチェーンがリクエストを処理し、ShenYu Admin が設定を管理してゲートウェイのレプリカに配信します。

主な機能

領域ShenYu が提供する機能
プラグインのルーティングと拡張HTTP リクエスト用の順序付きプラグインチェーンを備え、該当する場合はセレクターとルールによるマッチングを行います。Spring Boot スターターでプラグインを選択でき、カスタム Java プラグイン、SPI 実装、WASM プラグイン API でゲートウェイを拡張できます。
プロトコルとアップストリームHTTP サービスと Spring Cloud サービス、WebSocket 接続、Apache Dubbo および gRPC バックエンドに対応します。オプションの TCP および MQTT リスナーで追加のイングレスを提供します。SOFA および Tars ゲートウェイプラグインは、外部プラグインストアのスターターとして利用できます。
登録と検出クライアント SDK でサービスアドレスと API メタデータを Admin に登録します。レジストリとの統合でサービス検出に対応し、オプションの Kubernetes コントローラーで Ingress および Endpoints リソースを調整します。
セキュリティとトラフィック制御WAF、署名、認証プラグイン、ロードバランシング、レート制限、Resilience4j および Sentinel によるフォールトトレランスに対応します。非推奨の Hystrix は外部プラグインとして引き続き利用できます(plugin-store-hystrix を参照)。
キャッシュと変換インメモリまたは Redis を利用したレスポンスキャッシュ、URL の書き換え、リダイレクト、リクエストおよびレスポンスの変換に対応します。
動的設定Admin はプラグイン、セレクター、ルール、メタデータ、認証データを永続化します。デフォルトでは WebSocket 同期を使用し、HTTP ロングポーリング、ZooKeeper、Nacos、etcd も利用できます。Apollo は非推奨化リリース期間中も利用でき、外部拡張への移行を予定しています(Apollo の移行を参照)。Consul 同期は外部拡張として利用できます(plugin-store-consul を参照)。ゲートウェイの各レプリカは、更新をローカルキャッシュに適用します。
オブザーバビリティKafka および Elasticsearch を送信先とするものを含む、メトリクスおよびロギングプラグインに対応します。Admin からメールおよび DingTalk にアラートを送信できます。
AI と MCPAI プロキシ、プロンプト処理、トークン制限、機密語フィルタリング、AI リクエスト/レスポンス変換、SSE および Streamable HTTP に対応する MCP サーバープラグインを備えています。

アーキテクチャ

Apache ShenYu のアーキテクチャ

はじめに

英語ドキュメント、中国語ドキュメント、または公式ダウンロードをご利用ください。

Docker クイックスタート

Docker と OpenSSL を使って、ShenYu Admin、ゲートウェイ、サンプル HTTP サービスを起動します。以下のコマンドは同じシェルで実行してください。

サービスを起動する
docker network create shenyu

export SHENYU_JWT_SECRETKEY="$(openssl rand -hex 32)"
export SHENYU_SYNC_WEBSOCKET_TOKEN="$(openssl rand -hex 32)"
export SHENYU_LOCAL_KEY="$(openssl rand -hex 24)"
export SHENYU_LOCAL_SHA512KEY="$(printf %s "$SHENYU_LOCAL_KEY" | openssl dgst -sha512 -r | awk '{print $1}')"

docker run -d --name shenyu-admin --network shenyu -p 127.0.0.1:9095:9095 \
  -e SHENYU_JWT_SECRETKEY -e SHENYU_SYNC_WEBSOCKET_TOKEN \
  apache/shenyu-admin:latest

docker run -d --name shenyu-demo --network shenyu nginx:stable-alpine

docker run -d --name shenyu-bootstrap --network shenyu -p 127.0.0.1:9195:9195 \
  -e SHENYU_SYNC_WEBSOCKET_URLS=ws://shenyu-admin:9095/websocket \
  -e SHENYU_SYNC_WEBSOCKET_TOKEN \
  -e SHENYU_HEARTBEAT_SERVERLISTS=http://shenyu-admin:9095 \
  -e SHENYU_LOCAL_ENABLED=true -e SHENYU_LOCAL_SHA512KEY \
  apache/shenyu-bootstrap:latest

Admin は http://localhost:9095 で、ゲートウェイは http://localhost:9195 でリッスンします。両方のサービスが起動するまで待ち、その後、ヘルスエンドポイントを確認します。

curl -fsS http://localhost:9095/actuator/health
curl -fsS http://localhost:9195/actuator/health
サンプルルートを設定する

次のリクエストでは、このゲートウェイの divide プラグインを設定し、/index.html をサンプルサービスに転送します。

curl -fsS http://localhost:9195/shenyu/plugin/selectorAndRules \
  -H 'Content-Type: application/json' \
  -H "localKey: ${SHENYU_LOCAL_KEY}" \
  -d '{
    "pluginName": "divide",
    "selectorHandler": "[{\"upstreamUrl\":\"shenyu-demo:80\",\"protocol\":\"http\",\"weight\":100}]",
    "conditionDataList": [
      {"paramType": "uri", "operator": "match", "paramValue": "/index.html"}
    ],
    "ruleDataList": [{
      "ruleHandler": "{\"loadBalance\":\"random\"}",
      "conditionDataList": [
        {"paramType": "uri", "operator": "match", "paramValue": "/index.html"}
      ]
    }]
  }'

このリクエストで更新されるのはこのゲートウェイインスタンスだけであり、ルートは Admin に書き込まれません。ルートを一元管理し、永続化するには、デフォルトのインメモリ H2 データベースではなく、永続データベースを使って Admin で設定してください。

SOFA および Tars のサポートは、デフォルトのゲートウェイディストリビューションには含まれなくなりました。これらのプロトコルを実行するには、対応するプラグインストアのスターターをゲートウェイのクラスパスにインストールし、プロトコルの設定には既存の Admin メタデータ、クライアント登録 SDK、サンプルを引き続き使用してください。

ルートを確認する
curl -i http://localhost:9195/index.html

レスポンスには、ShenYu 経由で配信された NGINX のウェルカムページが含まれます。

Apache ShenYu が選ばれる理由

ShenYu(神禹)は、古代中国の君主である夏禹の尊称で、禹とも呼ばれています。人々のために黄河を三度渡り、洪水の治水に成功した人物として知られています。堯や舜と並び、古代中国の三大王の一人とされています。

この名前には、次の3つの理念が込められています。

  • 中国文明の伝統的な美徳を広めます。
  • ゲートウェイがトラフィックを制御する中核的な役割を担うことを表しています。
  • ShenYu への敬意を表し、Apache Way に沿って、公平で公正、オープンかつ実力主義のコミュニティを目指す姿勢を示しています。

コミュニティとサポート

既知のユーザー

既知のユーザーのページには、登録順に登録ユーザーが掲載されています。

Apache ShenYu を利用している組織は、GitHub issue #68 を通じて登録できます。登録の対象はオープンソースユーザーのみです。

スター履歴

Apache ShenYu のスター履歴

ライセンス

Apache ShenYu は、Apache License, Version 2.0 の下でライセンスされています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。