토크 하우스 가족에 가입 하시겠습니까? | WebRTC 기반 Peer to Peer Voice, 화상 통화 및 메시징 웹 앱 빌드 Mern Stack
Express, Typecript, Nats-Streaming 및 Next.js를 사용하여 생성 된 이벤트 중심의 비동기 통신 기반 마이크로 서비스 기반 전자 상거래 앱
마이크로 서비스 아키텍처를 기반으로 도시 주변에서 일어나는 다양한 라이브 및 재미있는 행사 티켓을 구매하고 판매하기위한 전자 상거래 기반 웹 앱입니다. 이 앱은 이벤트 버스를 통한 이벤트를 통해 서로 대화하는 여러 개별 서비스로 분류됩니다. 각 서비스는 인증 서비스 처리 인증 인증 인증, 주문 처리, 지불 서비스는 사용자 지불 및 이러한 모든 서비스를 통해 이벤트 버스 (NATS-STREAMING)를 통해 비동기 적으로 통신하여 전체 앱을 실행하는 것과 같은 앱의 특정 기능을 처리하고 구현해야합니다.
MicroServices 아키텍처를 사용하고 Monoloith 패턴에 의존하지 않으면 앱이 내구성이 뛰어나고 결함이 많으며 고도로 사용 가능하며 앱의 업 시간을 증가시킵니다. 따라서 서비스 중 하나가 충돌하는 경우 앱의 다른 부분은 여전히 기능적이며 사용자가 사용할 수 있습니다. 마이크로 서비스 및 분산 시스템은 최신 소프트웨어 및 백엔드 엔지니어링의 핵심입니다.
Next.jsExpress.js 백엔드 구축에 사용됩니다MongodbMongooseTypescript , 백엔드는 진한 수의 이벤트가 힌트없이 흐르고있을 때 두통을 방지하기 위해 TypeScript로 완전히 작성됩니다.StripeJest and SupertestDockerKubernetesSkaffold Command Line 도구. Kubernetes 및 다양한 Kubernetes 서비스 및 Deploymet과 함께 작업하고 관리 할 수 있습니다.NATS Streaming 다른 서비스가 방출 한 이벤트를 공개하고 처리하기위한 이벤트 버스 또는 메시지 큐로 사용됩니다.Bull.js 는 빠르고 강력한 대기열 시스템입니다. 지불 만료 타이머를 구현하는 데 사용됩니다.앱은 앱의 특정 기능 및 기능을 처리하고 구현하는 7 개의 서비스로 나뉩니다.
auth 전체 앱 인증 및 승인을 처리합니다. JWT 및 쿠키 기반 인증이 사용됩니다.expiration 지불 만료 타이머를 처리하여 사용자가 지정된 기간 내에 지불 할 수 있도록합니다.orderspaymentstickets (생성, 업데이트, 가져 오기). 이 전자 상거래 앱은 제품을 판매하는 대신 도시 주변에서 일어나는 다양한 라이브 이벤트 티켓을 판매합니다.common 모든 일반적인 기능이 함께 그룹화됩니다. 이 서비스는 NPM 패키지로 게시되며 사용할 다른 서비스에 설치됩니다.client 앱의 프론트 엔드를 처리하고 구현합니다.infra 앱을 실행하는 모든 Kubernetes 배포 및 서비스 (.yaml) 파일을 관리합니다. 각 서비스, MoGongoDB 데이터베이스 및 Nats-Streaming Server는 Docker 컨테이너로 Dockerized됩니다. Docker Conatiners는 인프라 디렉토리의 각 Kubernetes Deployment.yaml 파일에 의해 관리 및 조정됩니다. 다른 Kuberentes 배포 간의 통신은 Service ObjectType에 의해 관리됩니다. 마지막으로 encress-nginx (nginx를 사용하는 kubernetes의 Ingress 컨트롤러)를 리버스 프록시로 사용하고 ticketing.dev 에 따라 해당 서비스에 대한 해당 서비스를 프록시하거나 직접 수신하기위한로드 밸런서를 사용하는 Ingress-Service. Skaffold는 모든 Kubernetes 배포 및 서비스를 Skaffold.yaml 파일을 사용하는 단일 명령 skaffold dev 로 실행하는 데 사용됩니다.
이 프로젝트를 현지 기계에서 실행하고 실행하는 것은 악명 높은 작업입니다. Docker와 Kubernetes 생태계의 지식이 필요합니다. 여전히 도전을 위해 노력하거나 생명이 없다면 일을 해보십시오. Docker, Kubernetes 및 Skaffold가 설치되어 있는지 확인하십시오. 필요한 환경 변수를 설정하고 다음 명령을 실행하십시오.
skaffold dev
또한 붐 앱이 가동되고 실행되며 추가 설정 및 종속성이 필요하지 않습니다.
Skaffold에 의해 배포 된 모든 리소스를 삭제하고 모든 배포, 서비스 및 컨테이너가 실행되는 것을 중지하려면
skaffold delete
생명이없는 경우에만 현지에서 실행하고 테스트하십시오. 그렇지 않으면 나는 당신이 당신의 머리를 긁는 것을 비난하는 사람이 아닙니다? 이 마이크로 서비스가 서비스를받을 때 마이크로 서비스의 혼란을 이해하려고 노력하는 동안?