Sürekli güncellemeleri yönetmek için şu anda yoklamayı kullanan bir web uygulamasına sahibiz.PHP ve Symfony ile Websockets - ağ ve sunucu mimarisi
Uzun yoklama geçişi, konuyla ilgili küçük bir bandaid olabilir, dayanıklı ve ölçeklenebilir bir Websockets çözümü uygulamak istedik.
Soruma ilişkin soru: Bu için ne tür bir mimari gerekli?
Kendimi biraz araştırma yaptık ve kurumsal uygulama için tipik kurulum böyle bir şey olduğunu bulduk:
- :
bir bağlantının yürütme akış sonra böyle bir şey olurdu İlk tokalaşma
- İstemci bir WebSocket'e bağlantısı istemek için JS ile birlikte
Server
birHTTP
İsteği yapar Server
cevap verir,Header
Upgrade
yönergesini içeren ve İstemci birPOST
/PUT
/vs gönderir
- İstemci bir WebSocket'e bağlantısı istemek için JS ile birlikte
- müşteri ile
Websocket
bağlantı kuracağı anlamına istemci - WebSocket'e Server için protokoller geçer.
Webserver
(Apache/Nginx)Webserver
buMessage
MQ
Message
denWebsocket
sunucuya gönderilir sıraya eklenirMQ
sonucu gönderir geri gönderilir terimi sonucu getirir istemci
t mı yaklaşımı doğru mu? Ben bir şey eksik miyim? Yanlış bir şey mi anladım? Şuna bir bakar sahip
Symfony2 sanırım en iyi fikir değil, her neyse, symfony denetleyicisinde Websocket bağlantısı oluşturmak istediğinizi anlıyoruz, değil mi? – Griva
Nginx ve nodejs arasında neden MessageQueue'ye ihtiyacınız var? Nodejs çoklu istekleri ele alırken mükemmeldir ... Ayrıca, NAPX'in kendi başına protokol güncellemesini yapabilmesi nedeniyle HAPROXY'ye gerek yoktur. Bu kadar karmaşık olmak ister misiniz? Neredeyse aynı kurulumla benzer bir çözüm buldum ve bunu korumak çok zordu.Çoğu zaman oturum verilerini nginx (PHP) 'den nodejs'e geçirmek için bir mekanizmaya ihtiyaç duyduğunuzu unutmayın. –
@MitjaGustin Message Queue, uygulamanın daha büyük bir parçası olacak ve sadece web-yuvalarından daha fazlası için kullanılacaktır. Bu anlamda, Message Queue ile çalışacak bir web çözümünü arıyorum. Öte yandan, HAProxy zor bir gereklilik değildir - başka bir tür Yük Dengeleyici ile değiştirilebilir ve önemsizdir. Böyle bir durumda sadece mimarlık hakkında kaba bir fikir edinmeye çalışıyordum. – user991710