PixWave は、マルチゲートウェイ アーキテクチャを使用して、 PIX経由でリアルタイム支払いを処理するように設計された、スケーラブルで高性能のデジタル ウォレット マイクロサービスです。このシステムは、 Mercado PagoやGerencianetなどの複数の支払いゲートウェイを統合し、信頼性とシームレスなフォールバック機能を保証します。 PixWave は、その時点で最も利用可能なゲートウェイを動的に選択することにより、ダウンタイムを最小限に抑え、継続的な支払い処理を保証します。
このアーキテクチャは、コンテナ化にはDocker 、オーケストレーションにはKubernetes 、キャッシュにはRedis 、非同期メッセージングにはSNS 、集中ログとリアルタイム監視にはELK スタック(Logstash、Elasticsearch、Kibana) を使用して、回復力があり、モジュール式でスケーラブルになるように構築されています。システムのパフォーマンスのこと。
PixWave はマイクロサービス ベースのアーキテクチャに従っており、支払い処理、ユーザー管理、トランザクション監視などの主要なコンポーネントが独立したサービスに分離されています。この設計により、システム全体に影響を与えることなく、個々のサービスを個別にスケーリングし、維持することができます。
PixWave の中核となるのは、高可用性と耐障害性を備えたリアルタイム PIX トランザクションを処理するように設計された支払い処理モジュールです。このシステムは、 Mercado PagoとGerencianet という2 つの主要な支払いゲートウェイを統合し、スマート ゲートウェイ選択メカニズムを使用します。
PixWave のジョブ システムは、支払い処理や再試行などのタスクを処理するために重要です。 PixWave は、支払いリクエストのジョブを非同期にディスパッチすることにより、ユーザーにノンブロッキング エクスペリエンスを提供し、システム全体の応答性を向上させます。
PixWave はキャッシュにRedis を使用して、パフォーマンスを向上させ、プライマリ データベースの負荷を軽減します。
LogstashとElasticsearch は、集中ログを管理するために使用され、システム イベント、エラー、パフォーマンス メトリクスに関するリアルタイムの洞察を提供します。
PixWave は、マイクロサービス間のメッセージングと外部システムへの通知の送信にSNS (Simple Notice Service)を使用します。
まず、PixWave リポジトリのクローンをローカル マシンに作成します。
git clone https://github.com/your-repository/pixwave.git
cd pixwave
.env.example
ファイルを.env
にコピーし、環境変数を構成します。これらの変数には、データベース認証情報、支払いゲートウェイ認証情報 (Mercado Pago および Gerencianet)、および他のサービスの API キーが含まれます。
cp .env.example .env
.env
ファイル内の次の値を更新します。
DB_HOST
、 DB_PORT
、 DB_DATABASE
、 DB_USERNAME
、 DB_PASSWORD
– MySQL データベース設定。MERCADOPAGO_ACCESS_TOKEN
– メルカドパゴアクセストークン。GERENCIANET_CLIENT_ID
、 GERENCIANET_CLIENT_SECRET
、 GERENCIANET_PIX_KEY
– Gerencianet API 資格情報。SNS_API_KEY
– 通知用の SNS API キー。LOGSTASH_HOST
– Logstash サービスのホスト (集中ログ用)。次のコマンドを実行して、必要な依存関係をすべてインストールします。
composer install
マシンにDockerがインストールされていることを確認してください。次に、 Docker Compose を使用して必要なコンテナを構築して実行します。
docker-compose up --build
このコマンドは次のサービスを起動します。
コンテナーが起動して実行されたら、移行を実行してデータベース スキーマをセットアップし、いくつかの初期データをシードします。
docker exec -it laravel_app php artisan migrate --seed
Laravel が安全な暗号化に使用するアプリケーション暗号化キーを生成します。
docker exec -it laravel_app php artisan key:generate
すべての設定が完了したら、アプリケーションにアクセスできるようになります。デフォルトでは、アプリケーションはhttp://localhost
で利用可能になります。
docker-compose up
ブラウザでhttp://localhost
にアクセスして、PixWave システムと対話します。
PixWave には、包括的なテスト スイートが含まれています。テストを実行するには、Docker コンテナー内にいるか、ローカル環境がセットアップされていることを確認してください。次のコマンドを実行します。
docker exec -it laravel_app php artisan test
これにより、単体テストと機能テストが実行され、ジョブ処理、ゲートウェイ フォールバック、トランザクション履歴管理などの支払いシステムの機能が確認されます。
ポートの競合: ポートの競合が発生した場合 (システム上ですでに実行されている Redis または MySQL など)、 docker-compose.yml
ファイルを更新してデフォルトのポート マッピングを変更します。
権限エラー: ログまたはストレージに書き込もうとしたときに権限の問題が発生した場合は、次のコマンドを実行してstorage/
とbootstrap/cache/
ディレクトリが書き込み可能であることを確認します。
sudo chmod -R 775 storage
sudo chmod -R 775 bootstrap/cache
コンテナの再起動: コンテナが再起動しているか実行に失敗している場合は、ログで詳細なエラー メッセージを確認してください。
docker-compose logs