Eğer yüksek trafik ajax yoğun web sitesi için ne önerirsiniz?

5 Cevap php

Yukarı / aşağı oy çok ve konu başına yorumlarla dolu reddit gibi bir web sitesi için ne gitmeli?

Lighttpd / PHP veya Lighttpd / CherryPy / Genshi / SQLAlchemy?

ve veritabanı için ne iyi / olmak hızlı MySQL büyütmek istiyorum (4.1 veya 5?) veya PostgreSQL?

5 Cevap

Ben Postgres ile sınırlı deneyimi gibi ben MySQL / PostgreSQL soruya konuşamıyor, ama benim Master araştırma projesi CherryPy'ın ile yüksek performanslı web siteleri hakkında, ve sana için CherryPy kullanmak eğer hayal kırıklığına olacak sanmıyorum bir site. Kolayca emtia donanım üzerinde eşzamanlı kullanıcıların binlerce ölçeklendirilebilir.

Tabii ki, aynı PHP için de söylenebilir, ve ben PHP ve CherryPy performansını karşılaştıran herhangi bir makul kriterler bilmiyorum. Eğer CherryPy saniyede isteklerinin çok büyük sayıda yüksek trafik sitesi işleyebilir olup olmadığını merak edildi ama eğer, cevabı kesinlikle evet.

İdeal kurulum yakın olmak this olacaktır:

caching

Kısacası, nginx benzersiz adlı bu diski vurmadan, memcached 'nin RAM mağaza verileri doğrudan getireyim modülü, ya da herhangi bir hızlı ve hafif webserver / ön-proxy dinamik webapp. Isteğin URL önceden önbelleğe değilse (veya süresi doldu ise) elbette, istek zamanki gibi webapp ilerler. Dahi kısmı webapp yanıtı üretti zaman, onun bir kopyası yeniden hazır, memcached gider olmasıdır.

Tüm bu web sayfalarına, ancak AJAX sorgu / yanıtları için değil sadece mükemmel geçerlidir.

yazıda 'geri' sunucuları http, ve özellikle melez hakkında konuşun. Geri FastCGI ve diğer (? Hızlı) bir çerçeve olsaydı daha iyi olurdu; nginx / memcached ekip yükün büyük kısmını absorbe beri ama bu, çok daha az önemlidir.

AJAX trafiği için url düzeni iyi (REST, IMHO iyi) tasarlanmış ise, sağ memcached içinde DB çoğu koyabilirsiniz, ve (app geçmek OLACAK) herhangi POST preemptively önbelleğini güncelleyin unutmayın.

DB soru üzerine, PostgreSQL daha iyi terazi ve MySQL daha iyi veri bütünlüğü vardır söyleyebilirim. Küçük bir site için MySQL daha hızlı olabilir, ama ben duydum kimden ne veritabanı büyüdükçe boyutu olarak önemli ölçüde yavaşlatır. (Note: I've never used MySQL for a large database, so you should probably get a second opinion about its scalability.) Ama PostgreSQL kesinlikle iyi ölçekler, ve yüksek trafik site için iyi bir seçim olacaktır.

Daha fazla veriye ihtiyacımız olacak. Jeff aynı sorunlar üzerinde birkaç makale vardı ve cevap Bir performans sorunu vurmak kadar beklemek oldu.

ile başlamak - kim barındıran ve onlar kullanılabilir ne var? Sizin ev yetenek beceri setleri ne? Eğer dışarıdan bir firma işe olacak? onlar ne tavsiye edersiniz? yepyeni bir proje yeni bir çerçeve öğrenmek için istekli bir takım w /?

2 şey bazı maketlerini yapmak için - nasıl arayüz çalışmaya devam ediyor. yüklemek ve devam etmek hangi verilerin gerekiyor? fikir web ve aşağı db tarafı arasındaki trafik tutmaktır. örneğin sorguları sürü ile hiçbir konuşkan sayfaları. vb

Eğer veri gereksinimleri ve akışının daha iyi bir fikir edindikten sonra - o veritabanı tasarımı üzerinde çalışıyoruz. orada takip etmek kurallar bol ama daha iyilerini biri normalleştirme kurallarını takip etmektir (evet ben neden bir db adam değilim?)

Sınamaları çalıştırmak - Şimdi sayfaları birkaç kurmak var. Eğer bir sorun yaşıyorsanız? Evet, şimdi ne bakmak. Sayfa porsiyon veya db çeker? Eylem bir ders almak sonra ölçün.

Ben nginx + php + XCache + postgresql ile gitmek istiyorum