PixWave 는 다중 게이트웨이 아키텍처를 사용하여 PIX를 통해 실시간 결제를 처리하도록 설계된 확장 가능한 고성능 디지털 지갑 마이크로서비스입니다. 이 시스템은 Mercado Pago 및 Gerencianet을 포함한 여러 결제 게이트웨이를 통합하여 안정성과 원활한 대체 기능을 보장합니다. PixWave는 특정 순간에 가장 가용성이 높은 게이트웨이를 동적으로 선택함으로써 가동 중지 시간을 최소화하고 지속적인 결제 처리를 보장합니다.
아키텍처는 컨테이너화를 위한 Docker , 오케스트레이션을 위한 Kubernetes , 캐싱을 위한 Redis , 비동기 메시징을 위한 SNS , 중앙 집중식 로깅 및 실시간 모니터링을 위한 ELK 스택 (Logstash, Elasticsearch, Kibana)을 사용하여 복원력이 뛰어나고 모듈식이며 확장 가능 하도록 구축되었습니다. 시스템 성능.
PixWave는 결제 처리, 사용자 관리, 거래 모니터링과 같은 주요 구성 요소가 독립적인 서비스로 분리되는 마이크로서비스 기반 아키텍처를 따릅니다. 이 설계를 통해 개별 서비스를 독립적으로 확장하고 전체 시스템에 영향을 주지 않고 유지 관리할 수 있습니다.
PixWave의 핵심은 높은 가용성과 내결함성을 갖춘 실시간 PIX 트랜잭션을 처리하도록 설계된 결제 처리 모듈입니다. 이 시스템은 Mercado Pago 와 Gerencianet이라는 두 가지 기본 결제 게이트웨이를 통합하고 스마트 게이트웨이 선택 메커니즘을 사용합니다.
PixWave의 작업 시스템은 결제 처리 및 재시도와 같은 작업을 처리하는 데 중요합니다. PixWave는 결제 요청에 대한 작업을 비동기식으로 전달함으로써 사용자에게 차단되지 않는 경험을 제공하고 전반적인 시스템 응답성을 향상시킵니다.
PixWave는 캐싱에 Redis를 사용하여 성능을 향상하고 기본 데이터베이스의 부하를 줄입니다.
Logstash 와 Elasticsearch는 중앙 집중식 로깅을 관리하는 데 사용되며 시스템 이벤트, 오류 및 성능 지표에 대한 실시간 통찰력을 제공합니다.
PixWave는 마이크로서비스 간 메시징과 외부 시스템에 알림 전송을 위해 SNS(Simple Notification 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
– Mercado Pago 액세스 토큰입니다.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
PixWave 시스템과 상호 작용하려면 브라우저에서 http://localhost
방문하십시오.
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