Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Co jest bardziej wydajne w przypadku wysyłania aktualizacji WebSocket ze zmianą bazy danych MySQL?

Jeśli korzystasz z websocketów, powinieneś korzystać z powiadomień od klienta. To jeden z ich głównych przypadków użycia.

Jeśli obawiasz się niespójności spowodowanych zrywaniem połączenia lub zmianą między nimi, możesz wdrożyć system podobny do Etykiety HTTP , gdzie klient wysyła kod skrótu, na który możesz odpowiedzieć po stronie serwera, jeśli wystąpi konflikt podczas aktualizacji.

Aktualizacja:Chyba trochę źle zrozumiałem twój początkowy problem. Jeśli dobrze rozumiem twój przypadek użycia:wysyłasz aktualizacje bazy danych od klienta, a następnie wszystkie podłączone klienty muszą zostać zaktualizowane. W takim przypadku myślę, że serwer powinien wysyłać wiadomości aktualizacyjne po wykonaniu aktualizacji bazy danych, więc zgadzam się z rozwiązaniem 4. Zakładam, że twój serwer websocket jest tym samym serwerem, na którym działa PHP i wykonuje aktualizacje bazy danych.

Jednak, w zależności od przypadku użycia, klient powinien nadal wysyłać wartość skrótu przy następnym żądaniu identyfikującym jego „widok świata”, aby nie wykonywać identycznych aktualizacji wiele razy, jeśli połączenie zostanie zerwane.

Aktualizacja 2:zrozumiano więc, że rzeczywiście używasz oddzielnego, samodzielnego serwera websocket. Zasadniczo masz dwa różne serwery internetowe po stronie serwera i masz problem z komunikacją między nimi. To jest prawdziwy problem i polecam używanie tylko jednego serwera na raz – albo spójrz na użycie Obsługa gniazda sieciowego Apache (eksperymentalne i niezbyt zalecane) lub migracja skryptów php do instancji websocket.

Ani PHP, ani Apache nie były budowane z myślą o websocketach. Skonfigurowanie samodzielnego serwera websocket przy użyciu tylko PHP jest dość łatwe, ale może nie być tak proste, aby przenieść do niego resztę stosu PHP, jeśli kod opiera się na Apache/serwerze WWW. Obsługa websocketu Apache również nie jest optymalna. W przypadku prawdziwego rozwiązania typu websocket najlepszą praktyką byłoby niestety użycie technologii stworzonej dla niego od podstaw.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połączenie z bazą danych PHP i MYSQL oraz tworzenie tabel tylko raz

  2. pomóż mi zrozumieć now() dla mysql bieżącego czasu i jego stref czasowych

  3. Składnia MySQL wydaje się poprawna

  4. Eksportuj dane SQL do .csv i generuj osobne pliki .csv na tabelę na podstawie zapytania

  5. Jak używać konfiguracji doktryny Master/Slave2 z poleceń konsoli Symfony2?