Ölçeklenebilir bir PHP (AJAX tabanlı) sohbet sistemi için en iyi yaklaşım

4 Cevap php

Ben bir şirket için bir sohbet sistemi inşa ediyorum ve sistemi oluşturmak için en iyi yolu ne olurdu olarak merak ediyorum?

Elimizdeki mevcut kurulumu PHP ve (kullanıcının kendi sırasına sohbet iletileri ekler bir ileti kuyruğu gibi) Memcacheq ile Nginx HTTP Sunucusu. Biz o zaman (bir Comet tarzı istek aracılığıyla) Nginx sunucu yoklamak ve güncellemeler için ileti kuyruğu sorgulayabilirsiniz.

O ve site genelindeki sohbet kullanıcı-kullanıcı veya en iyisi de sadece MySQL sadık olan bir sohbet sistemi işlemek için böyle Memcacheq gibi bir mesaj kuyruğu kullanmak için iyi bir fikir mi?

Teşekkürler!

4 Cevap

Eğer (sorgu yürütme süresini artırmak veya kötü veritabanı tasarımı) biraz bayat veri olduğunda memcache sadece yararlıdır. Senin durumunda (sohbet sistemi), veri taze olacak ve Memcache ekleyerek sadece kadarıyla ben gördüğünüz gibi (azalış performans okuma) şeyler karmaşık hale getirebilir. MySQL ve PHP arasındaki (RAM) bir orta malı olarak memcache düşünün. Veri bayat ise trip time PHP mysql gitmek için değil (memcache zamanda PHP değişiklikleri getirmesi gerekir çünkü), taze veri durumunda yük aslında artacak yok gibi azalır.

Özetle, ben bir sohbet sistemi için memcache kullanarak tavsiye etmem. Daha web'de arama yapmak için tavsiye ederim. http://blog.tech.stylefeeder.com/2008/08/22/memcached-vs-mysql/ Bir iyi bir post

Ben Memcacheq MySQL çok daha iyi performans beklenebilir.

Memcacheq is a great tool which can help to avoid latency of web requsts. It can act as a buffer between php and mysql, but it's not a replacement of mysql. Memcacheq can also make scaling easier, cause there maybe multiple distributed message consumers.

Ben yüksek yüklü php istekleri mysql veri kaydetme ve zaman alıcı işlemleri yaparken arasına koymak için tavsiye ederim. Bu kullanıcılar için sayfa yükleme hızlandırmak wil ve uzun istekleri sizin webservers ücretsiz olacaktır.

Memcacheq oldukça hızlı. Bu çok resourses sürmez

Bunu deneyin: http://pushmodule.slact.net/. Nginx kuyrukluyıldız şeyler ilgilenir, ve tüm php uygulama yapmak gerekir modülüne HTTP istekleri göndermek.