現在の位置: ホーム> 最新記事一覧> PHP マイクロサービスの実践: 分散サービスのガバナンスと呼び出しの完全ガイド

PHP マイクロサービスの実践: 分散サービスのガバナンスと呼び出しの完全ガイド

M66 2025-10-16

PHP マイクロサービスを使用して分散サービス ガバナンスと呼び出しを実装する方法

現代のインターネット アプリケーション開発では、開発効率とシステムの拡張性を向上させるため、マイクロサービス アーキテクチャが中核モデルとなっています。モノリシック アプリケーションを独立して展開される小さなサービスに分割することで、開発者はシステムをより柔軟に管理および拡張できます。この記事では、PHP を使用して分散サービス ガバナンスと呼び出しを実装する方法を紹介し、実用的なサンプル コードを提供します。

サービスの検出と登録

分散システムには多数のマイクロサービスが存在するため、サービス情報を均一に管理するにはサービスの検出と登録のメカニズムが必要です。 Consul は、サービス登録、ヘルス チェック、負荷分散、その他の機能を提供するオープン ソースの分散型サービス検出および構成ツールです。

まず Consul をインストールして起動し、各マイクロサービスにサービス情報を登録します。

 GuzzleHttpClient を使用します。

//HTTP クライアントを作成 $client = new Client();

//マイクロサービスを Consul に登録します
$response = $client->put('http://localhost:8500/v1/agent/service/register', [
    'json' => [
        'ID' => '私のサービス'、
        「名前」 => 「私のサービス」、
        'アドレス' => 'ローカルホスト',
        「ポート」 => 8080、
        'タグ' => ['php', 'マイクロサービス']
    】
]);

if ($response->getStatusCode() === 200) {
    echo 'サービス登録が成功しました';
} それ以外 {
    echo 'サービス登録に失敗しました';
}

上記のコードは、「My Service」という名前のマイクロサービスを Consul に登録し、アドレスとポートを指定して、管理と呼び出しを容易にするためのラベルを追加します。

負荷分散

負荷分散により、リクエストをさまざまなマイクロサービス インスタンスに分散して、システムのパフォーマンスと可用性を向上させることができます。 PHP 環境では、Nginx を負荷分散サーバーとして使用し、リバース プロキシ経由でリクエストを転送できます。

 http {
    アップストリーム my_service {
        サーバーローカルホスト:8080;
        サーバーローカルホスト:8081;
        サーバーローカルホスト:8082;
    }

    サーバー {
        80を匂いいてください。

        場所 /my-service {
            proxy_pass http://my_service;
        }
    }
}

上記の構成では、「my_service」という名前のバックエンドを定義します。これは、基本的な負荷分散を実現するために、さまざまなポート上のマイクロサービス インスタンスにリクエストを分散します。

サービスコール

マイクロサービス間の呼び出しは、分散システムにおける重要なリンクです。 PHP は、HTTP リクエストまたは RPC フレームワークを通じてサービス間通信を実装できます。次の例では、Guzzle クライアントを使用して HTTP 呼び出しを行います。

 GuzzleHttpClient を使用します。
GuzzleHttpExceptionRequestException を使用します。

//HTTP クライアントを作成 $client = new Client();

// マイクロサービス電話び外しを試すしてください {
    $response = $client->get('http://localhost/my-service/api');
    $data = json_decode($response->getBody(), true);

    // マイクロサービスから戻るされたデータを処理します // ...
} catch(RequestException $例外) {
    // 例外処理 // ...
}

この例では、「My Service」の /api インターフェイスが呼び出され、返されたデータはビジネス ロジックに従ってさらに処理できます。実際のプロジェクトでは、フレームワークや要件に基づいて適切な呼び出し方法を選択できます。

要約する

この記事では、Consul サービスの登録、Nginx ロード バランシング、Guzzle サービスの呼び出しなど、PHP を使用してマイクロサービス アーキテクチャを実装するコア テクノロジを紹介します。これらのテクノロジーにより、可用性が高く、拡張が容易な分散システムを構築できます。実際のアプリケーションでは、サービスの健全性チェック、フォールト トレランス処理、ログの監視など、システムの安定性を高めるための対策も考慮する必要があります。

上記の内容は、PHP マイクロサービスの分散サービス ガバナンスと呼び出しに関する完全な実用的なガイドであり、開発者の参照とアプリケーションに適しています。