Çok kiracılı bir sistem tasarlıyorum ve veri tabanı yerine uygulama katmanı düzeyinde kiracı tarafından paylaşmayı düşünüyorum.Uygulama düzeyinde biçimlendirme
Varsayımsal olarak, bu işlemin çalışması, gelen istek için bir yönlendirici işleminin, sanal shard kimliğinin yanı sıra bu istek için kiracıyı belirlemek üzere birincil öznitelikleri içeren bir kiracı topluluğuna sahip olmasıdır. Bu sanal shard kimliği ayrıca gerçek bir shard ile eşleştirilir.
Gerçek parça, bu kiracı için hem uygulama kodunu hem de tüm verileri içerir. Bu kırıklar LNMP (Linux, Nginx, MySQL/MongoDB, PHP) sunucuları olacaktır.
Yönlendirici işlemi proxy işlevi görmelidir. Bazı yerel db veya dosyalarda depolanan koleksiyona göre gelen talep için hedef shard değerini belirlemek için bazı kodları çalıştırabilmelidir. Bunu daha iyi ölçeklendirebilmek için, kırıcıların kendilerini yönlendirici olarak hareket etmesini sağlamayı ve böylece talebi doğru bir parçaya yönlendirecek bir ters proxy çalıştırmayı düşünmekteyim. Belki de shard üzerinde çalışan nginx örneği de ters vekil olarak hareket edebilir. Ancak, uygun eğimle talebi karşılamak için gereken uygulama mantığını nasıl yürütecek?
Bu yönlendirici uygulamasına ilişkin tüm fikir ve önerileri takdir edeceğim.
Teşekkür
Eğer kiracı yaklaşık olarak eşit veri hacmi oluşturmak için bekliyoruz sürece
Uygulama seviyesi shard, arkada tek taraflı MongoDB içeren bir sunucu grubu olabilir. Kiracıları kontrollü kontuarlar için kiracılara ayırma özelliğini hala inşa etmek istiyorum. Yine de yeniden başarabilmek için karmaşık takımlara olan ihtiyaç konusunda size katılıyorum. – msingla