우리 모두 알고 있듯이 트래픽이 많고 안정성이 매우 높은 제품 플래시 세일 기능의 경우 기존 PHP 기술은 요구 사항을 충족하기 어렵기 때문에 웹 사이트 아키텍처 설계, 서버 구성, 로드 밸런싱, CDN 가속, 클라우드 분석, Redis 등 이 방법은 이 방법으로만 달성할 수 있습니다. 이 과정은 주로 함수 구현에 대한 아이디어를 소개하며 초보자는 주의해야 합니다.
강좌 재생 주소: http://www.php.cn/course/279.html
선생님의 강의 스타일:
강의는 친절하고 자연스러우며 가식 없고 가식적이지 않습니다. 고의적으로 과장하지 않고 설득력 있고 자세하게 이야기하면서 교사와 학생은 평등, 협력, 조화의 분위기에서 침묵의 감정 교환을 하며 지식에 대한 갈증과 탐구를 단순성과 진정성으로 통합합니다. 가르치는 상황에서 학생들은 지식을 얻습니다. 조용한 생각과 조용한 승인을 통해
이 영상에서 더 어려운 점은 플래시 킬 프로젝트 아키텍처 - 데이터 처리 계층입니다:
1 플래시 킬 비즈니스 분석
일반 전자 비즈니스 프로세스 (1) 쿼리 (2) 주문 생성, (4) 주문 업데이트, (6) 판매자 배송
플래시 세일 사업의 특징 (2) 상당한 프로모션; 3) 즉각적인 매진; (4) 일반적으로 정해진 시간에 상장됨; (5) 짧은 시간과 높은 동시성
2 플래시 세일 기술 도전
웹사이트의 플래시 세일 이벤트가 하나의 제품만 출시한다고 가정하면, 관심을 끌 것으로 예상됩니다. 이벤트 참여 인원은 10,000명, 즉 최대 동시 요청 수는 10,000명입니다. 플래시 세일 시스템이 직면해야 할 기술적 과제는 다음과 같습니다.
기존 웹사이트 비즈니스에 미치는 영향 플래시 세일 활동은 단순한 추가 활동일 뿐입니다. 이 활동은 기간이 짧고 동시 방문 수가 많습니다. 웹 사이트의 원래 응용 프로그램과 함께 배포되면 필연적으로 기존 비즈니스에 영향을 미칠 것입니다. 홈페이지 전체가 마비될 수 있습니다. 해결 방법: 플래시 세일 시스템을 독립적으로 배포하거나 독립적인 도메인 이름을 사용하여 웹사이트에서 완전히 격리하세요.
높은 동시성에서 애플리케이션 및 데이터베이스 로드. 플래시 세일이 시작되기 전에 사용자는 플래시 세일을 놓치지 않도록 브라우저 페이지를 계속 새로 고칩니다. 이러한 요청이 일반적인 웹사이트 애플리케이션 아키텍처를 따르는 경우 애플리케이션 서버에 액세스하여 연결하세요. 데이터베이스는 애플리케이션에 영향을 미치게 됩니다. 해결 방법: 반짝 세일 제품 페이지를 다시 디자인하고, 웹사이트의 원래 제품 세부 정보 페이지를 사용하지 말고, 페이지 콘텐츠가 정적이며, 사용자 요청이 애플리케이션 서비스를 거칠 필요가 없습니다.
네트워크 및 서버 대역폭의 급격한 증가. 제품 페이지 크기가 200K(주로 제품 이미지 크기)라고 가정하면 필요한 네트워크 및 서버 대역폭은 2G(200K×10000)입니다. 이러한 네트워크 대역폭은 플래시로 인해 새로 추가됩니다. 판매 활동 및 웹 사이트 일반적으로 사용되는 대역폭을 초과합니다. 해결책: 플래시 세일로 추가된 새로운 네트워크 대역폭으로 인해 통신사로부터 재구매하거나 임대해야 합니다. 웹 사이트 서버에 대한 부담을 줄이기 위해 플래시 세일 제품 페이지를 CDN에 캐시해야 하며 새로 추가된 내보내기 대역폭도 CDN 서비스 제공업체로부터 임시로 임대해야 합니다.
직접 주문 및 플래시 세일 게임의 규칙은 플래시 세일 이후에만 제품 주문을 시작할 수 있다는 것입니다. 이 시점 이전에는 제품 정보 검색만 가능하고 주문을 할 수 없습니다. 주문 페이지도 일반 URL이므로, 이 URL을 얻으시면 반짝 세일이 시작될 때까지 기다리지 않고 주문하실 수 있습니다. 해결책: 사용자가 주문 페이지 URL에 직접 액세스하는 것을 방지하려면 플래시 세일 시스템 개발자라도 플래시 세일이 시작되기 전에는 주문 페이지 URL에 액세스할 수 없도록 URL을 동적으로 만들어야 합니다. 서버에서 생성한 난수를 주문 페이지 URL에 파라미터로 추가하는 방식인데, 플래시 세일이 시작될 때만 얻을 수 있다.
플래시 세일 상품 페이지 구매 버튼 조명 조절 방법. 플래시 세일이 시작될 때만 구매 버튼이 켜질 수 있습니다. 페이지가 동적으로 생성되는 경우 물론 서버 측에서 응답 페이지 출력을 구성하여 버튼이 회색인지 켜져 있는지 제어할 수 있습니다. 그러나 서버 측의 로드 압력을 줄이고 성능 최적화를 더 잘 활용하려면 CDN 및 역방향 프록시와 같은 방법을 사용하는 경우 이 페이지는 정적 페이지로 설계되고 CDN, 역방향 프록시 서버 및 사용자 브라우저에도 캐시됩니다. 반짝 세일이 시작되고 사용자가 페이지를 새로 고치면 요청이 애플리케이션 서버에 전혀 도달하지 않습니다. 해결 방법: JavaScript 스크립트 컨트롤을 사용하여 플래시 세일 제품 정적 페이지에 JavaScript 파일 참조를 추가합니다. JavaScript 파일에는 플래시 세일 시작 플래그가 포함되어 있으며 새 JavaScript 파일이 생성됩니다(파일 이름은 동일하게 유지됨). 그러나 내용은 다릅니다), 플래시 세일 시작 플래그를 yes로 업데이트하고 주문 페이지의 URL 및 난수 매개변수를 추가합니다(이 난수는 하나만 생성합니다. 즉, 모든 사람이 볼 수 있는 URL은 동일합니다. 서버 측은 Redis를 사용하여 난수를 저장할 수 있으며 사용자 브라우저에 의해 로드되어 플래시 세일 제품 페이지의 표시를 제어할 수 있습니다. 이 JavaScript 파일은 임의의 버전 번호(예: xx.js?v=32353823)로 로드될 수 있으므로 브라우저, CDN 및 역방향 프록시 서버에서 캐시되지 않습니다. 이 JavaScript 파일은 너무 작아서 브라우저를 새로 고칠 때마다 JavaScript 파일 서버에 액세스하더라도 서버 클러스터 및 네트워크 대역폭에 큰 부담을 주지 않습니다.
처음 제출된 주문만 주문 하위 시스템으로 전송되도록 허용하는 방법 제품을 성공적으로 플래시 판매할 수 있는 사용자는 한 명뿐이므로 사용자가 주문을 제출할 때 주문이 제출되었는지 확인해야 합니다. 주문이 성공적으로 제출된 경우 JavaScript 파일을 업데이트하고 플래시 세일 시작 플래그를 아니요로 업데이트해야 하며 구매 버튼이 회색으로 변합니다. 실제로 최종적으로는 한 명의 사용자만 성공적으로 주문을 제출할 수 있으므로, 주문 페이지 서버의 부하 부담을 줄이기 위해 주문 페이지 진입을 일부 사용자만 제어할 수 있으며, 다른 사용자는 플래시 세일 종료 페이지로 직접 들어갑니다. 해결 방법: 주문 서버 클러스터에 10개의 서버가 있고 각 서버는 최대 10개의 주문 요청만 수락한다고 가정합니다. 누군가 성공적으로 주문을 제출하기 전에 서버에 이미 10개의 주문이 있고 일부 주문이 처리되지 않은 경우 가능한 사용자 경험 시나리오는 사용자가 처음으로 구매 버튼을 클릭하고 페이지를 새로 고치는 경우입니다. 또한 주문을 처리하지 않은 서버에 의해 처리될 수도 있습니다. 주문 작성 페이지에 들어갈 때 쿠키를 사용하여 처리하는 것을 고려할 수 있으며 이는 일관성 원칙에 부합합니다. 물론, 최소 연결 로드 밸런싱 알고리즘을 사용할 수도 있으며, 위와 같은 상황이 발생할 확률은 크게 줄어듭니다.
사전 주문 검사 방법
상품이 10개 이상인 경우 완료된 페이지가 사용자에게 직접 반환됩니다.
상품이 10개 이하인 경우 사용자가 주문 작성 및 확인을 입력할 수 있습니다.
총 플래시 세일 상품 수를 초과했습니다. 완료된 페이지를 사용자에게 반환하세요.
총 플래시 세일 상품 수를 초과하지 않았으며 하위 주문 시스템에 제출되었습니다. 제출된 주문 수:
주문 서버는 기계에서 처리된 주문 요청 수를 확인합니다.
플래시 세일 일반 예약 목록 기능을 구현하는 방법에는 여러 가지가 있습니다. 그러나 현재로서는 제품의 유통기한을 미리 설정해 두는 것이 더 좋은 방법입니다. 사용자는 프런트 데스크에서 제품을 볼 수 있지만 "지금 구매" 버튼을 클릭할 수는 없습니다. 하지만 고려해야 할 점은 누군가가 프런트엔드 제한을 우회하고 URL을 통해 직접 구매를 시작할 수 있다는 것입니다. 이를 위해서는 프런트엔드 제품 페이지는 물론 버그 페이지와 백엔드 데이터베이스의 시계 동기화가 필요합니다. 백엔드에 대한 제어가 많을수록 보안이 높아집니다. 시간제 플래시세일의 경우, 플래시세일 전에 판매자가 상품을 편집함으로써 예상치 못한 효과가 발생하는 것을 방지해야 합니다. 이 특정 변경에는 여러 평가가 필요합니다. 편집은 원칙적으로 금지되어 있으며, 변경이 필요한 경우에는 데이터 수정 과정을 거칠 수 있습니다.
재고를 줄이는 데에는 두 가지 옵션이 있습니다. 하나는 재고를 줄이기 위해 사진을 찍는 것이고, 다른 하나는 재고를 줄이기 위해 비용을 지불하는 것입니다. 현재 채택된 "재고를 줄이기 위해 사진을 찍는" 방법은 잠시만 소요되며 이는 재고에 영향을 미칩니다. 더 나은 사용자 경험.
재고는 '과매도' 문제를 야기합니다: 재고 수량보다 판매된 수량이 많아 실제 재고가 부족해도 재고가 계속 감소하여 판매자가 판매를 하는 경우가 있습니다. 플래시세일에 대한 기대감 그 이상.
위 내용은 PHP 전자상거래 웹사이트의 제품 반짝 세일을 위한 권장 비디오 리소스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!