Web-Kuyruk-Çalışan mimari stili
Bu mimarinin temel bileşenleri, istemci isteklerine yanıt veren bir web ön ucu ile yoğun kaynak gerektiren görevleri, uzun çalışan iş akışlarını veya toplu işleri gerçekleştiren bir çalışandır. Web ön ucu, çalışanla bir ileti kuyruğu üzerinden iletişim kurar.
Yaygın olarak bu mimariye eklenen diğer bileşenler şunlardır:
- Bir veya daha fazla veritabanı.
- Hızlı okuma için veritabanından alınan değerlerin depolanacağı bir önbellek.
- Statik içerik sunmak için CDN
- E-posta veya SMS hizmeti gibi uzak hizmetler. Bunlar genellikle üçüncü taraflarca sağlanır.
- Kimlik doğrulaması için kimlik sağlayıcısı.
Web ve çalışan bileşenleri durum bilgisine sahip değildir. Oturum durumu dağıtılmış bir önbellekte depolanabilir. Uzun süre çalışan işler çalışan tarafından zaman uyumsuz olarak gerçekleştirilir. Çalışan, kuyruğa gönderilen mesajlarla tetiklenebilir veya toplu işlem için bir zamanlamaya göre çalıştırılabilir. Çalışan, isteğe bağlı bir bileşendir. Uzun süre çalışan işlemler varsa çalışan kullanılmayabilir.
Ön uç bir web API'den oluşabilir. İstemci tarafında, web API AJAX çağrıları yapan tek sayfalı bir uygulama tarafından veya yerel bir istemci uygulaması tarafından kullanılabilir.
Bu mimarinin kullanılacağı durumlar
Web-Kuyruk-Çalışan mimarisi genellikle yönetilen işlem hizmetleri (Azure App Service veya Azure Cloud Services) kullanılarak uygulanır.
Aşağıdakiler için bu mimari stilini göz önünde bulundurun:
- Göreceli olarak basit bir etki alanına sahip olan uygulamalar.
- Uzun süre çalışan iş akışlarına veya toplu işlemlere sahip olan uygulamalar.
- Hizmet olarak altyapı (IaaS) yerine yönetilen hizmetler kullanmak istediğiniz durumlar.
Avantajlar
- Anlaşılması kolay olan, görece basit mimari.
- Dağıtımı ve yönetimi kolaydır.
- Görev ayrımı nettir.
- Ön uç, zaman uyumsuz mesajlaşma ile çalışandan bağımsız hale getirilir.
- Ön uç ve çalışan bağımsız olarak ölçeklendirilebilir.
Zorluklar
- Tasarıma dikkat edilmemesi durumunda, ön uç ve çalışan bakımı ve güncelleştirmesi zor olan büyük ve tek parça bileşenlere dönüşebilir.
- Ön uç ve çalışan aynı veri şemalarını veya kod modüllerini kullanıyorsa gizli bağımlılıklar olabilir.
En iyi yöntemler
- İstemciye iyi tasarlanmış bir API sunun. Bkz. API tasarımı ile ilgili en iyi uygulamalar.
- Yükteki değişiklikleri yönetmek için otomatik olarak ölçeklendirin. Bkz. En iyi uygulamaları otomatik olarak ölçeklendirme.
- Yarı statik verileri önbelleğe alın. Bkz. Önbelleğe alma ile ilgili en iyi uygulamalar.
- Statik içerik barındırmak için CDN kullanın. Bkz. Azure CDN ile ilgili en iyi uygulamalar.
- Uygun durumlarda çok yönlü kalıcılık kullanın. Bkz. İş için en iyi veri deposunu kullanın.
- Ölçeklenebilirliği geliştirmek, çekişmeyi azaltmak ve performansı iyileştirmek için verileri bölümleyin. Bkz. Veri bölümleme ile ilgili en iyi uygulamalar.
Azure App Service’te Web-Kuyruk-Çalışan
Bu bölümde, Azure App Service kullanan, önerilen bir Web-Kuyruk-Çalışan mimarisi açıklanmaktadır.

Ön uç bir Azure App Service Web uygulaması olarak uygulanır ve çalışan bir Azure Işlevleri uygulaması olarak uygulanır. Web uygulaması ve işlev uygulaması, sanal makine örneklerini sağlayan bir App Service planıyla ilişkilendirilir.
Mesaj kuyruğu için Azure Service Bus veya Azure Depolama kuyruklarını kullanabilirsiniz. (Diyagramda bir Azure depolama kuyruğu gösterilmektedir.)
Redsıs için Azure önbelleği, oturum durumunu ve düşük gecikmeli erişime ihtiyacı olan diğer verileri depolar.
Görüntüler, CSS ya da HTML gibi statik içeriklerin önbelleğe alınması için Azure CDN kullanılır.
Depolama için uygulamanızın gereksinimlerine en uygun depolama teknolojilerini seçin. Birden çok depolama teknolojisi (çok yönlü kalıcılık) kullanabilirsiniz. Bu fikri göstermek için diyagramda Azure SQL Veritabanı ve Azure Cosmos DB gösterilmektedir.
Daha ayrıntılı bilgi için bkz. App Service web uygulaması başvuru mimarisi.
Diğer konular
Her işlemin çalışan ve kuyruk üzerinden depolamaya gitmesi gerekmez. Web ön ucu doğrudan basit okuma/yazma işlemleri gerçekleştirebilir. Çalışanlar, yoğun kaynak gerektiren görevler veya uzun süre çalışan iş akışları için tasarlanmıştır. Bazı durumlarda çalışana gereksinim bile duymayabilirsiniz.
VM örnek sayısının ölçeğini genişletmek için App Service’te yerleşik olarak sunulan otomatik ölçeklendirme özelliğini kullanın. Uygulama üzerindeki yük tahmin edilebilir düzenleri izliyorsa zamanlama tabanlı otomatik ölçeklendirme kullanın. Yükü tahmin edilebilir değilse, ölçüm tabanlı otomatik ölçeklendirme kurallarını kullanın.
Web uygulamasını ve işlev uygulamasını ayrı App Service planlarına yerleştirmeyi göz önünde bulundurun. Bu şekilde, bağımsız olarak ölçeklendirilebilirler.
Üretim ve test için ayrı App Service planları kullanın. Bunun yerine üretim ve test için aynı planı kullanırsanız, testleriniz üretim VM'lerinde çalıştırılır.
Dağıtımları yönetmek için dağıtım yuvaları kullanın. Bu, önce güncel bir sürümü hazırlık yuvasına dağıtıp sonra yeni sürüme geçmenize imkan tanır. Ayrıca, güncelleştirmeyle ilgili bir sorun olması durumunda önceki sürüme dönmenize de imkan tanır.