Wie wir alle wissen, ist es für eine Produkt-Flash-Sale-Funktion mit starkem Datenverkehr und extrem hohen Stabilitätsanforderungen schwierig, die Anforderungen mit der herkömmlichen PHP-Technologie zu erfüllen. Daher ist die Hilfe von Website-Architekturdesign, Serverkonfiguration, Lastausgleich und CDN erforderlich Beschleunigung, Cloud-Analyse, Redis. Dieser Kurs ist ein fortgeschrittener PHP-Kurs. Er führt hauptsächlich in die Ideen der Funktionsimplementierung ein und beinhaltet nicht die spezifische Implementierung des Codes.
Adresse für die Kurswiedergabe: http://www.php.cn/course/279.html
Der Unterrichtsstil des Lehrers:
Die Vorträge sind freundlich und natürlich, unprätentiös, nicht anmaßend oder absichtlich übertrieben, sondern sprechen eloquent und sorgfältig zwischen Lehrern und Schülern. In einer Atmosphäre der Gleichberechtigung, Zusammenarbeit und Harmonie, stiller emotionaler Austausch werden durchgeführt und der Wunsch und die Erforschung von Wissen werden in einfache und reale Unterrichtssituationen integriert. Die Schüler erlangen Wissen durch stilles Denken und stille Zustimmung.
Der schwierigere Punkt In diesem Video ist die Architektur des Flash Kill-Projekts dargestellt – die Datenverarbeitungsschicht:
1 Flash Kill-Geschäftsanalyse
Normaler Elektronik-Geschäftsprozess (1) Produkte abfragen ; (2) Bestellungen erstellen; (4) Bestellungen aktualisieren; (6) Verkäufer versendet; (1) Niedriger Preis; (3) Sofortiger Ausverkauf; (4) Wird normalerweise in den Regalen platziert. (5) Kurze Zeit, hohe sofortige Parallelität.
Die Flash-Sale-Veranstaltung einer Website führt nur ein Produkt ein und soll 10.000 Personen zur Teilnahme an der Veranstaltung anlocken. Das bedeutet, dass die maximale Anzahl gleichzeitiger Anfragen 10.000 beträgt. Die technischen Herausforderungen, denen sich das Flash-Sale-System stellen muss, sind:
Für aktuelle Auswirkungen auf das Website-Geschäft ist die Flash-Sale-Aktivität nur eine zusätzliche Aktivität des Website-Marketings. Diese Aktivität zeichnet sich durch kurze Zeit und eine große Anzahl gleichzeitiger Besuche aus zwangsläufig Auswirkungen auf das bestehende Geschäft haben und leichte Unannehmlichkeiten hervorrufen. Vorsicht kann zum Absturz der gesamten Website führen. Lösung: Stellen Sie das Flash-Sale-System unabhängig bereit oder verwenden Sie sogar einen unabhängigen Domainnamen, um es vollständig von der Website zu isolieren.
Benutzer mit hoher Parallelität der Anwendungs- und Datenbanklasten sollten die Browserseite vor Beginn des Flash-Sales ständig aktualisieren, um sicherzustellen, dass sie den Flash-Sale nicht verpassen. Wenn diese Anfragen der allgemeinen Website-Anwendungsarchitektur folgen, greifen sie auf die Anwendung zu Server und stellen Sie eine Verbindung zur Datenbank her, was zu Lastdruck auf dem Anwendungsserver und dem Datenbankserver führt. Lösung: Gestalten Sie die Flash-Sale-Produktseite neu, verwenden Sie nicht die ursprüngliche Produktdetailseite der Website, der Seiteninhalt ist statisch und Benutzeranfragen müssen nicht über den Anwendungsdienst erfolgen.
Plötzlicher Anstieg der Netzwerk- und Serverbandbreite Angenommen, die Produktseitengröße beträgt 200 KB (hauptsächlich die Produktbildgröße), dann beträgt die erforderliche Netzwerk- und Serverbandbreite 2 G (200 KB × 10000). die neue Zunahme der Flash-Sale-Aktivitäten, die die normalerweise von der Website genutzte Bandbreite überschreiten. Lösung: Aufgrund der neuen Netzwerkbandbreite, die durch den Flash-Sale hinzukommt, müssen Sie diese vom Betreiber neu kaufen oder leasen. Um den Druck auf den Website-Server zu verringern, müssen die Flash-Sale-Produktseiten im CDN zwischengespeichert werden und die neu hinzugefügte Exportbandbreite muss auch vorübergehend vom CDN-Dienstanbieter gemietet werden.
Die Spielregeln für Direktbestellungen für Flash-Sales lauten, dass Sie erst nach dem Flash-Sale mit der Bestellung von Produkten beginnen können. Vor diesem Zeitpunkt können Sie nur Produktinformationen durchsuchen und keine Bestellungen aufgeben. Die Bestellseite ist ebenfalls eine normale URL. Wenn Sie diese URL erhalten, können Sie eine Bestellung aufgeben, ohne auf den Start des Flash-Sales warten zu müssen. Lösung: Um zu verhindern, dass Benutzer direkt auf die URL der Bestellseite zugreifen, muss die URL dynamisch gemacht werden. Selbst die Entwickler des Flash-Sale-Systems können nicht auf die URL der Bestellseite zugreifen, bevor der Flash-Sale beginnt. Die Methode besteht darin, eine vom Server generierte Zufallszahl als Parameter in die URL der Bestellseite einzufügen, die nur abgerufen werden kann, wenn der Flash-Sale beginnt.
So steuern Sie die Beleuchtung der Kaufschaltfläche auf der Flash-Sale-Produktseite. Die Kaufschaltfläche kann nur beleuchtet werden, wenn der Flash-Sale beginnt. Wenn die Seite dynamisch generiert wird, können Sie natürlich eine Antwortseitenausgabe auf der Serverseite erstellen, um zu steuern, ob die Schaltfläche grau oder beleuchtet ist, um jedoch den Lastdruck auf der Serverseite zu reduzieren und die Leistungsoptimierung besser zu nutzen Bei Methoden wie CDN und Reverse-Proxy werden diese Seiten als statische Seiten konzipiert und auf CDNs, Reverse-Proxy-Servern und sogar in Benutzerbrowsern zwischengespeichert. Wenn der Flash-Sale startet, aktualisiert der Benutzer die Seite und die Anfrage erreicht nie den Anwendungsserver. Lösung: Verwenden Sie die JavaScript-Skriptsteuerung, um einen JavaScript-Dateiverweis zur statischen Flash-Sale-Produktseite hinzuzufügen. Die JavaScript-Datei enthält das Flash-Sale-Startflag. Wenn der Flash-Sale startet, wird eine neue JavaScript-Datei generiert. aber Der Inhalt ist anders), aktualisieren Sie das Flash-Sale-Startflag auf Ja, fügen Sie die URL der Bestellseite und die Zufallszahlenparameter hinzu (diese Zufallszahl generiert nur eine, d. h. die von allen gesehene URL ist dieselbe Die Serverseite kann den verteilten Cache-Server von Redis verwenden, um Zufallszahlen zu speichern und vom Browser des Benutzers zu laden, um die Anzeige von Flash-Sale-Produktseiten zu steuern. Diese JavaScript-Datei kann mit einer zufälligen Versionsnummer geladen werden (z. B. xx.js?v=32353823), sodass sie nicht von Browsern, CDNs und Reverse-Proxy-Servern zwischengespeichert wird. Diese JavaScript-Datei ist so klein, dass selbst der Zugriff auf den JavaScript-Dateiserver bei jeder Aktualisierung des Browsers keine große Belastung für den Servercluster und die Netzwerkbandbreite darstellt.
So lässt man zu, dass nur die erste übermittelte Bestellung an das Bestellsubsystem gesendet wird. Da es nur einen Benutzer gibt, der das Produkt erfolgreich verkaufen kann, muss überprüft werden, ob eine Bestellung übermittelt wurde, wenn der Benutzer gibt die Bestellung ab. Wenn eine Bestellung erfolgreich übermittelt wurde, muss die JavaScript-Datei aktualisiert werden, das Flash-Sale-Startflag wird auf „Nein“ aktualisiert und die Schaltfläche „Kaufen“ wird grau. Da letztendlich nur ein Benutzer eine Bestellung erfolgreich aufgeben kann, kann der Zugriff auf die Bestellseite nur von wenigen Benutzern gesteuert werden, um den Lastdruck auf dem Bestellseitenserver zu verringern Andere Benutzer gelangen direkt zur Flash-Sale-Endseite. Lösung: Gehen Sie davon aus, dass der Bestellserver-Cluster über 10 Server verfügt und jeder Server nur maximal 10 Bestellanfragen akzeptiert. Bevor jemand erfolgreich eine Bestellung aufgibt und ein Server bereits zehn Bestellungen hat und einige Bestellungen noch nicht verarbeitet wurden, besteht das mögliche Benutzererfahrungsszenario darin, dass der Benutzer zum ersten Mal auf die Schaltfläche „Kaufen“ klickt und die abgeschlossene Seite aufruft Auch hier kann es sein, dass es von einem Server verarbeitet wird, der keine Bestellungen verarbeitet hat. Wenn Sie die Seite zum Ausfüllen von Bestellungen aufrufen, können Sie die Verwendung von Cookies in Betracht ziehen, um damit umzugehen, was dem Grundsatz der Konsistenz entspricht. Natürlich kann der Lastausgleichsalgorithmus mit der geringsten Verbindung verwendet werden, wodurch die Wahrscheinlichkeit der oben genannten Situation erheblich verringert wird.
So führen Sie eine Vorbestellungsprüfung durch
Wenn mehr als 10 Artikel vorhanden sind, wird der Benutzer direkt zur abgeschlossenen Seite zurückgeleitet.
Wenn nicht mehr als 10 Artikel vorhanden sind 10 Artikel, der Benutzer kann die Bestell- und Bestätigungsseite eingeben und ausfüllen
Die Gesamtzahl der Flash-Sale-Produkte wurde überschritten und die beendete Seite wird an den Benutzer zurückgegeben; Die Gesamtzahl der Flash-Sale-Produkte wurde nicht überschritten und wird an das Unterbestellsystem übermittelt.
Überprüfen Sie, ob die globale Anzahl der übermittelten Bestellungen vorliegt:
Der Bestellserver überprüft die Anzahl der von der Maschine verarbeiteten Bestellanfragen:
Flash-Verkäufe werden im Allgemeinen in die Regale gestellt. Es gibt viele Möglichkeiten, diese Funktion zu implementieren. Der bessere Weg besteht derzeit jedoch darin, die Haltbarkeitsdauer des Produkts im Voraus festzulegen. Der Benutzer kann das Produkt an der Rezeption sehen, aber nicht auf die Schaltfläche „Jetzt kaufen“ klicken. Zu bedenken ist jedoch, dass jemand die Front-End-Beschränkungen umgehen und einen Kauf direkt über die URL einleiten kann. Dies erfordert eine Uhrensynchronisierung auf der Front-End-Produktseite sowie auf der Fehlerseite und der Back-End-Datenbank. Je mehr Kontrolle im Backend vorhanden ist, desto höher ist die Sicherheit. Bei zeitgesteuerten Flash-Sales ist es notwendig, unerwartete Effekte zu vermeiden, die dadurch entstehen, dass Verkäufer die Produkte vor dem Flash-Sale bearbeiten. Diese besondere Änderung erfordert mehrere Bewertungen. Eine Bearbeitung ist grundsätzlich untersagt. Sollten Änderungen erforderlich sein, können Sie den Prozess der Datenkorrektur durchführen.
Es gibt zwei Möglichkeiten, den Lagerbestand zu reduzieren. Die andere besteht darin, zu bezahlen, um den Lagerbestand zu reduzieren Erfahrung wird besser sein.
Der Lagerbestand führt zum Problem des „Überverkauften“: Die verkaufte Menge ist größer als die auf Lager befindliche Menge. Aufgrund des Problems gleichzeitiger Lagerbestandsaktualisierungen nimmt der Lagerbestand immer noch ab, wenn der tatsächliche Lagerbestand bereits unzureichend ist. Dies führte dazu, dass die Anzahl der verkauften Einheiten des Produkts des Verkäufers die Flash-Sale-Erwartungen übertraf.
Das obige ist der detaillierte Inhalt vonEmpfohlene Videoressourcen für Produkt-Flash-Verkäufe auf PHP-E-Commerce-Websites. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!