Yaygın web sunucusu mimarileri nelerdir?

1. İlk site mimarisi

Genel olarak büyük ölçekli web siteleri küçük ölçekli web sitelerinden geliştirilmektedir.Başlangıçta yapı görece basittir.İşletmenin karmaşıklığı ve kullanıcı sayısının hızla artması ile birçok yapısal iyileştirme başlamıştır. Hâlâ küçük bir web sitesi iken, çok fazla ziyaretçi yoktu.Genel olarak, sadece bir sunucu yeterliydi. Şu anda, uygulamalar, veritabanları, dosyalar vb. Tüm kaynaklar tek bir sunucu üzerindeydi. Web sitesi yapısı aşağıdaki şekilde gösterilmektedir:

2. Uygulama hizmetleri ile veri hizmetlerinin ayrılması

Web sitesi işinin gelişmesi ve kullanıcı sayısının artması ile artık tek bir sunucu talebi karşılayamıyor. Çok sayıda kullanıcı ziyareti, daha yavaş ve daha yavaş erişim hızlarına yol açar ve verilerdeki kademeli artış, yetersiz depolama alanına da yol açar. Şu anda, uygulama ve verilerin ayrılması gerekir Uygulama ve veriler ayrıldıktan sonra, web sitesinin tamamı üç sunucu kullanır: uygulama sunucusu, dosya sunucusu ve veritabanı sunucusu. Üç sunucunun donanım kaynakları için farklı gereksinimleri vardır:

  • Uygulama sunucusu iş mantığı, güçlü CPU gerektirir
  • Veritabanı sunucusunda, daha hızlı diskler ve daha büyük bellek gerektiren çok sayıda disk okuma ve yazma işlemi vardır
  • Dosya sunucusu, kullanıcılar tarafından yüklenen dosyaları depolar, bu nedenle daha fazla disk alanı gerekir

Bu noktada web sitesi sisteminin mimarisi aşağıdaki şekilde gösterilmektedir:

3. Web sitesi performansını iyileştirmek için önbellek kullanın

Kullanıcıların artmasıyla, web sitesi bir kez daha zorluklarla karşılaşacaktır: veritabanı üzerindeki çok fazla baskı, tüm sitenin verimliliğinin tekrar düşmesine neden olur ve kullanıcı deneyimi etkilenir. Bir web sitesi için, iş ziyaretlerinin% 80'i genellikle verilerin% 20'sine odaklanır. Örneğin, en çok talep edilen Weibo, on milyonlarca hayranı olan büyük V'ler olmalıdır ve neredeyse hiç kimse ana sayfanıza sizden başka hiç dikkat etmez Düşündüğümde, hiç açılmayacak. Çoğu iş ziyareti verilerin küçük bir kısmına yoğunlaştığından, verilerin bu küçük kısmı her seferinde okumak için veritabanına gitmek yerine önceden bellekte önbelleğe alınmalıdır. Bu, veritabanı erişiminin baskısını azaltabilir ve genel Web sitesinin erişim hızı.

Bir web sitesi tarafından kullanılan önbellek, genellikle bir uygulama sunucusunda önbelleğe alınmak veya özel bir dağıtılmış önbellek sunucusunda önbelleğe alınmak olarak bölünür. Önbelleğin uygulama sunucusuna erişim hızı çok daha hızlıdır, ancak kendi bellek sınırlaması nedeniyle genellikle uygun değildir. Uzaktan dağıtılmış önbellek, özellikle önbellek hizmetinden sorumlu bir küme kullanır ve bellek yeterli olmadığında, dinamik olarak kolayca genişleyebilir.

4. Web sitesinin eşzamanlı işleme yeteneklerini iyileştirmek için uygulama sunucusu kümelerini kullanın

Önbelleği kullandıktan sonra, veri erişim baskısı hafifledi, ancak tek bir uygulama sunucusu sınırlı talep bağlantılarını idare edebilir.Web sitesi erişiminin en yoğun olduğu dönemde, uygulama sunucusu tüm web sitesinin verimlilik darboğazı haline gelir. Dağıtılmış kümeleri kullanmak, web sitelerinin yüksek eşzamanlılık ve büyük veri sorununu çözmek için yaygın bir yöntemdir. Bir sunucunun işlem gücü ve depolama alanı yetersiz olduğunda, onu daha güçlü bir sunucuyla değiştirmeye çalışmayın.Büyük bir web sitesi için, sunucu ne kadar güçlü olursa olsun, web sitesinin devam eden büyümesinin iş ihtiyaçlarını karşılayamaz. Bu durumda, orijinal sunucunun erişim ve depolama baskısını paylaşmak için bir sunucu eklemek daha uygundur. Web sitesi mimarisi söz konusu olduğunda, yük baskısı bir sunucu eklenerek iyileştirilebildiği sürece, sistem performansını sürekli olarak iyileştirmek ve böylece sistem ölçeklenebilirliğini sağlamak için sunucu aynı şekilde sürekli olarak eklenebilir. Uygulama sunucusu kümeleme, aşağıdaki şekilde gösterildiği gibi, nispeten basit ve olgun bir web sitesi ölçeklenebilir mimari tasarımı türüdür:

Yük dengeleme programlama sunucusu aracılığıyla, kullanıcının tarayıcısından gelen erişim talebi, uygulama sunucusu kümesindeki herhangi bir sunucuya dağıtılabilir.Daha fazla kullanıcı varsa, uygulama sunucularına baskı yapmak için kümeye daha fazla uygulama sunucusu eklenecektir. Artık tüm web sitesinin darboğazı haline gelmiyor.

5. Veritabanı okuma ve yazma ayrımı

Web sitesi önbelleği kullandıktan sonra, veri okuma işlemlerinin çoğuna veritabanına girmeden erişilebilir, ancak yine de bazı okuma işlemleri vardır (önbellek erişimini kaçırır, önbelleğin süresi doldu) ve tüm yazma işlemlerinin veritabanına erişmesi gerekir. Kullanıcı sayısının belirli bir ölçeğe ulaşmasının ardından veritabanı, aşırı yük baskısı nedeniyle web sitesinin darboğazı haline geldi. Şu anda, çoğu ana veri tabanı ana-bağımlı etkin yedekleme işlevini sağlamaktadır.İki veri tabanı arasındaki ana-köle ilişkisini yapılandırarak, bir veri tabanı sunucusundan gelen veri güncellemeleri diğer sunucuya senkronize edilebilir. Web sitesi, veri tabanının bu işlevini veri tabanını okuma ve yazma ayrımını gerçekleştirmek için kullanır, böylece veri tabanının yük basıncını iyileştirir. Aşağıda gösterildiği gibi:

Uygulama sunucusu verileri yazarken, ana veritabanına erişir Ana veritabanı, veri güncellemelerini bir ana-bağımlı çoğaltma mekanizması aracılığıyla bağımlı veritabanına senkronize eder, böylece uygulama sunucusu verileri okuduğunda, veritabanından verileri alabilir. Okuma-yazma ayrımından sonra uygulamanın veri tabanına erişmesini kolaylaştırmak için, veri tabanı okuma-yazma ayrımını uygulamaya şeffaf hale getirmek için genellikle uygulama sunucusu tarafında özel bir veri erişim modülü kullanılır.

6. Web sitesi yanıtını hızlandırmak için ters proxy ve CDN kullanın

Web sitesi işinin sürekli gelişmesiyle birlikte, kullanıcıların ölçeği büyüyor ve büyüyor.Çin'in karmaşık ağ ortamı nedeniyle, farklı bölgelerdeki kullanıcıların web sitelerini ziyaret etme hızında büyük farklılıklar var. Araştırmalar, web sitesi ziyaret gecikmesinin kullanıcı kaybetme oranıyla pozitif ilişkili olduğunu göstermiştir. Web sitesi ziyareti ne kadar yavaş olursa, kullanıcıların sabrını kaybetmesi ve ayrılması o kadar kolay olur. Daha iyi bir kullanıcı deneyimi sağlamak ve kullanıcıları elde tutmak için web sitesinin, web sitesine erişim hızını artırması gerekir. Ana yöntemler, CDN ve ters proxy kullanımıdır. Aşağıda gösterildiği gibi:

7. Dağıtılmış dosya sistemi ve dağıtılmış veritabanı sistemi kullanın

Tek bir güçlü sunucu, büyük web sitelerinin artan iş ihtiyaçlarını karşılayamaz. Veritabanı okuma ve yazmadan ayrıldıktan sonra bir sunucudan iki sunucuya bölünür, ancak web sitesi işinin gelişmesiyle birlikte talebi hala karşılayamaz, şu anda dağıtılmış bir veritabanı gereklidir. Dosya sistemi aynıdır ve dağıtılmış bir dosya sistemi gereklidir. Aşağıda gösterildiği gibi:

Dağıtılmış veritabanı, web sitesi veritabanı bölme için son çare ve yalnızca tek tablo verilerinin ölçeği çok büyük olduğunda kullanılır. Son çare olmadığında, web siteleri için daha yaygın olarak kullanılan veritabanı bölme yöntemi, farklı iş verilerini farklı fiziksel sunuculara dağıtan iş alt veritabanıdır.

8. NoSQL ve arama motorlarını kullanın

Web sitesinin işi gittikçe daha karmaşık hale geldikçe, veri depolama ve erişim gereksinimleri giderek daha karmaşık hale geliyor.Web sitesinin NoSQL gibi bazı ilişkisel olmayan veritabanı teknolojilerini ve arama motorları gibi veritabanı olmayan sorgu teknolojilerini benimsemesi gerekiyor. Aşağıda gösterildiği gibi:

Hem NoSQL hem de arama motorları, İnternet'ten türetilen teknik araçlardır ve ölçeklenebilir ve dağıtılmış özellikler için daha iyi desteğe sahiptir. Uygulama sunucusu, birleşik bir veri erişim modülü aracılığıyla çeşitli verilere erişerek birçok veri kaynağının uygulama yönetimi sorununu azaltır.

9. İş Ayrımı

Giderek karmaşıklaşan iş senaryolarıyla başa çıkmak için, büyük web siteleri, tüm web sitesi işini böl ve ele geçir kullanımıyla farklı ürün gruplarına böler. Örneğin, büyük bir alışveriş işlemi web sitesi ana sayfayı, mağazaları, siparişleri, alıcıları, satıcıları vb. Farklı iş ekiplerine atanan farklı ürün gruplarına böler.

Teknoloji açısından bir web sitesi, ürün gruplarına göre birçok farklı uygulamaya bölünmüştür ve her uygulama bağımsız olarak devreye alınmıştır. Uygulamalar arasındaki ilişki bir köprü (ana sayfadaki navigasyon bağlantıları her biri farklı bir uygulama adresine işaret eder) aracılığıyla kurulabilir ve veriler mesaj kuyruğu aracılığıyla dağıtılabilir.Tabii ki en yaygın olanı aynı veri depolama sistemine erişimdir. İlgili tam sistem aşağıdaki şekilde gösterilmektedir:

10. Dağıtılmış Hizmetler

İşletme bölünmeleri küçüldükçe, depolama sistemleri daha büyük hale gelir ve uygulama sistemlerinin genel karmaşıklığı katlanarak artar, bu da dağıtım ve bakımı gittikçe zorlaştırır. Tüm uygulamaların, on binlerce sunucunun bulunduğu bir web sitesinde tüm veritabanı sistemlerine bağlanması gerektiğinden, bu bağlantıların sayısı sunucu ölçeğinin karesidir, bu da yetersiz veritabanı bağlantı kaynaklarına ve hizmet reddine neden olur.

Her uygulama sistemi, kullanıcı yönetimi, emtia yönetimi vb. Gibi birçok aynı iş operasyonunu gerçekleştirmesi gerektiğinden, bu paylaşılan hizmetler bağımsız olarak çıkarılabilir ve dağıtılabilir. Bu yeniden kullanılabilir hizmetler, ortak iş hizmetleri sağlamak için veritabanına bağlanırken, uygulama sisteminin yalnızca kullanıcı arayüzünü yönetmesi ve belirli iş operasyonlarını tamamlamak için dağıtılmış hizmetler aracılığıyla ortak iş hizmetlerini çağırması gerekir. Aşağıda gösterildiği gibi:

Büyük ölçekli web sitelerinin mimarisi burada gelişti ve temelde teknik sorunların çoğu çözülebilir.

Bilmek istiyorsanız, lütfen bana özel bir mesaj gönderin!

1 SpringBoot + Yüksek Eşzamanlı Mesaj İşleme EDM? Projesi Gerçek Savaş

2 SpringBoot ELK? Dağıtılmış veri analizi

3 Netty? Yüksek Eş Zamanlı UTS? Projesi Gerçek Savaş

4 SpringCloud® Microservice + NoSQL + yük dengeleme platformu tasarımı

OnePlus 5T, Android 9.0 güncellemesini başlattı, resmi itme hidrojen OS 9.0.1
önceki
Pekin Festivali'nden sonra Ruixue'ye hoş geldiniz! Caochang'ın dört hutonundaki kırmızı fenerler "kar şapkaları" takıyor
Sonraki
Aylık 29 + 300 dakika kira + sınırsız data, bu Telekom paketi tükendi
Endüstri 4.0 denizaşırı birleşme ve satın almalar Zhejiang'ın çift "ejderhası" başladı
Pekin'in üzerine yine kar yağıyor! Pekin'liler bir yana, bu 15 yer en şaşırtıcı yerler.
Apple'ın kalitesinden endişe duyan MacBook Pro'nun bir "tel kapısı" var ve bakım maliyeti 4000'e kadar çıkıyor!
Kar edin! Mi 6 Bright Silver Exploration Edition Xianyu çok yüksek fiyata kızartıldı
İnternet mimarlarına giden yol - tam yığın mühendisleri
Xiaomi, Vivo APEX2019 tam ekran parmak izlerine yanıt veriyor: sadece bir hile, panik yapmayın
Canlı yayın platformunun genel mimarisi
Samsung S10 gerçek makine uygulamalı fotoğraflar ortaya çıktı, netizenler: Samsung artık en güzel değil
Yetkili: Dalian Yifang, Zhao Xuri, Zhao Mingjian ve Li Jianbin'i imzaladı
Worship Bicycle, soyadını resmi olarak Meituan olarak değiştirdi, eski paylaşılan bisiklet pazarı geçmişte kaldı
Büyük ölçekli web sitesi sistem mimarisi diyagramı
To Top