Bu soru hakkında beni rahatsız eden şey, kesin bir hayır toplamak için onu ifade etmeniz ve "gerçekler" ile yüklemenizdir.
Gerçek şu ki, Facebook, Twitter veya Tumblr özelliklerini kopyalayan bir App Engine uygulaması geliştirebilirsiniz. Uygulamanın iyi yazılmış olduğunu varsayarsak, yüz milyonlarca kullanıcıyı destekleyecek şekilde ölçeklendirilir. İstememenizin ana nedeni (ki bu sizin için dikkate alınmıyor gibi görünüyor), App Engine'de bu boyutta bir hizmet çalıştırmanın maliyetidir.
Ayrıca, listelediğiniz kısıtlamalardan herhangi birinin böyle bir uygulama geliştirmenizi nasıl engelleyeceğini göremiyorum.
HTTP İsteği / Yanıtı
- Maksimum istek boyutu: 10 MB - yanlış, 32 MB'a yükseltildi.
- Maksimum yanıt boyutu: 10 MB - yanlış, 32 MB'a yükseltildi.
- Sıklıkla 10 MB'tan büyük sayfalar yayınlaması gereken bir sosyal uygulama geliştiriyorsanız, muhtemelen yanlış yapıyorsunuz demektir. Ayrıca, 32 MB'tan büyük içerik sunmanız gerekiyorsa, 2GB'a kadar olan dosyalar için blobstore'u kullanabilirsiniz.
- Dosya sistemine erişemezsiniz. (yüklemeleri dosya sistemine kaydetmeyi unutun) - yanlış. Yerel dosya sisteminden okuyabilir ve blobstore'a dosya yükleyebilir ve okuyabilir / yazabilirsiniz.
- Facebook, Twitter veya Tumblr'ın kullanıcı yüklemelerini alıp bir klasöre kopyalamasının bir yolu yoktur. Problem değil.
- Tüm isteklerin 10 dakika içinde yanıt vermesi gerekir, aksi takdirde GAE, DeadlineExceededException değerini yanlış verir. Aslında 30 saniye.
- Bir kullanıcının isteğine sonuç göndermek için 30 saniyeden uzun süre gerekiyorsa, büyük olasılıkla yanlış yapıyorsunuz demektir.
- Her cron işi 30 saniye içinde yapılmalıdır - yanlış, 10 dakika.
- Uzun bir görevi 10 dakikalık parçalara bölemezseniz, A: büyük olasılıkla yanlış yapıyorsunuz ve B: artık bu görevi isteklerde zaman sınırı olmayan bir Arka Uç örneğine taşıyabilirsiniz.
Cron işleri harita azaltmayı kullanamaz - hiç kullanılmamış harita azaltma, ancak bence bu bir alıntı gerektirir.
Başka bir siteye yapılan her GET veya POST işlemi 5 saniye sonra iptal edilir. En fazla 10 saniye bekleyecek şekilde yapılandırabilirsiniz. (Twitter ve Facebook ile birçok kez çalışmak için ara sunucular gerekir) - Doğru.
- Harici bir API’ye yönelik kullanıcı talebi 10 saniyeden uzun sürüyorsa, kullanıcıya tekrar denemesini söylemek iyi bir fikir olabilir. Kullanıcıya yönelik bir istek değilse, API yanıt verene kadar görevi otomatik olarak yeniden deneyebilirsiniz.
- İstemci, GAE'ye FTP yoluyla bağlanamaz (yalnızca HTTP ve HTTPS). - Doğru
-- Neden bu bir sorundur? Sizce büyük ölçekli herhangi bir şirket FTP üzerinden değişiklik yapıyor mu?
- Özel alan adları için https yok. Yalnızca uygulama-id.appspot.com alanlarınız için. - Doğru.
- Yine de yol haritasında.
- Kullanıcı akını alırsanız, "kota aşımı" hatası alırsınız - Yarı doğru.
- Uygulamanızı uygun şekilde bütçelerseniz, asla kota aşımı hatası görmezsiniz. Royal Wedding sitesi App Engine'de barındırıldı ve saniyede 32.000 istek aldı. Kota aşımı hatası yok. Ayrıca, Twitter'da başarısız balina veya Tumblr'da aşırı kapasite hatası gördünüz mü? Bu aslında onların aşırı kota hatası.
Veri tabanı
- Veritabanı davranışı, yerel geliştirmede gerçek sunuculardan farklı değildir. - Yanlış
- Veri deposunu dizüstü bilgisayarınızda çalıştırmak, App Engine'in kümesinde çalıştırmaktan daha yavaşsa, doğru, aksi takdirde hiç doğru değildir.
- GQL. Başka hiçbir şey. - Yanlış
- Çoğu geliştirici veri deposunu sorgulamak için db filtreleri kullanır. Ayrıca, MySQL'in "SQL. Başka bir şeye" izin verdiğini eşit şekilde söyleyebilirsiniz.
- Hiçbir sorgu 1000'den fazla kayıt alamaz (istemcinizin şimdi tek tıklamayla çevrimdışı duruma geçmesine izin vermek istiyorsanız ciddi şekilde berbat) - Yanlış.
- 1000 kayıt limiti uzun zaman önce kaldırıldı. Ayrıca, Facebook, Twitter veya Tumblr'da 1000'den fazla kayıt oluşturulmasını gerektiren, kullanıcıya bakan herhangi bir sayfayı göster.
- Bir işlemi gerçekleştirmek için çok sayıda kayda doğrusal erişime ihtiyacınız varsa, şansınız kalmaz (Google'ın sistemleri büyük ölçüde kümelenir)
- Burada ne elde ettiğinden bile emin değilim. Çoğu kişi Google'ın büyük kümelenmesinin hızını sistemin büyük bir avantajı olarak görüyor.
Memcache değerleri maksimum boyutu 10 MB'dir. - Aslında, her diğer memcache uygulamasında olduğu gibi her memcache girişi için 1 MB'dir.
Basit metin araması yapılamıyor - Doğru.
- Güvertedeki bir özellik. Çoğu büyük site kendi metin arama dizinini oluşturmaz.
- 2 tabloya katılamazsınız. - Doğru.
- App Engine geliştiricilerinin düşüncelerini tek bir büyük çoklu birleştirme SQL sorgusundan birkaç küçük sorguya ayarlaması veya birleştirmeye gerek kalmaması için verileri denormalize etmesi gerekir.
- Yavaş (Desperizasyon performansından kaçınmak için bir tablo içinde arama yapabilir, anahtarı alabilir ve sonra üst öğesini elde edebilmek için miras kullanarak tabloları nasıl ayıracağınızı okumalısınız) - ???
- çeviri / alıntı gerekli.
- "Çok fazla dizin" çalışma zamanı istisnası - Doğru
- Tek bir uygulamada dizin sayısında bir sınırlama vardır. Ben sadece akademik araştırma uygulamaları gördüm gördüm.
- Bir varlık bir dizinde en fazla 5000 özellik değerine sahip olabilir - True
- Birisinin 5000'den fazla arkadaşı varsa, arkadaş grubunda iki varlığa ihtiyaç duyarlar.
- Formun anahtar adları (
__*__
iki alt çizgi ile başlangıç ve bitiş) ayrılmıştır ve uygulama tarafından kullanılmamalıdır. - Doğru
-- Ama ne olmuş yani?
- Anahtar adları 500 bayt ile sınırlıdır (sanırım UTF-8 kodlu) - True
- Yine, ne olmuş yani? Anahtar isimler romanları saklamak için değil, bir varlığı benzersiz bir şekilde tanımlamak içindir.
Dil
- python veya java veya Go (başka şeylerin bu dillere çevrilmesi gerekir) - Yarı doğru
- Aslında PHP ve JRuby dahil JVM üzerinde çalışan herhangi bir dili çalıştırabilirsiniz. Python ve Java, neden bir sorun olduğundan emin değil, birçok araç, öğretici ve deneyimli programcı içeren iki güçlü dildir.
Sunucu sorunları
- Statik IP yok (Üçüncü taraf API'lerini çağıran kısıtlama ve kota sorunları) - Yarı doğru
- Çoğu üçüncü taraf API'sı App Engine'in farkındadır ve / veya Google ile bir ilişkisi vardır. Twitter birkaç kez yanlışlıkla App Engine'i engelledi ve birkaç saat içinde düzeltildi.
- Her uygulama 3000 dosyayla sınırlıdır - Yarı doğru
- Gerçekten web uygulamanız için 3000'den fazla kod dosyalarına ihtiyacınız varsa zip ithalatını kullanabilirsiniz (Ayrıca, yanlış yapıyor olabilirsiniz).
- Web uygulamasını çalıştıran işletim sistemi veya donanım kontrolü yok - True
- App Engine bir Hizmet Olarak Platformdur . İşletim sistemine veya donanıma hizmet vermekten endişe etmemek insanların parasını ödüyor. Bu, App Engine'in temel avantajıdır, bir sınırlama değildir.