Cloud-native API Gateway; tek hizmet, yüzdelik, etiket tabanlı, mock ve yeniden yönlendirme gibi birden çok yönlendirme modunu destekler.
Tek hizmet yönlendirmesi
Tek hizmet yönlendirme modunda ağ geçidi, gelen istekleri yapılandırılmış yönlendirme kurallarıyla eşleştirir ve bunları tek bir arka uç hizmetine iletir. Örneğin:
/user/@filepathkuralıyla eşleşen istekler user hizmetine iletilir./order/@filepathkuralıyla eşleşen istekler order hizmetine iletilir.
Hizmetlerin yapılandırılması hakkında bilgi için bkz. Hizmetleri yönetin.
Yüzdelik yönlendirme
Yüzdelik yönlendirme modunda ağ geçidi, trafiği yapılandırılmış ağırlıklara göre birden çok arka uç hizmeti arasında dağıtır. Trafiği kesintiye uğratmadan hizmetleri kayıt defterleri veya işlemler ve bakım (O&M) sistemleri arasında geçiş yaparken bu modu kullanın.
-
Different registries
Bir hizmet kayıt defterini yükseltirken mevcut hizmetin yanında yeni kayıt defterini kullanan bir hizmet çoğaltması dağıtın. Ağırlıkları ayarlayarak trafiği eski hizmetten yeniye kademeli olarak kaydırın. Yeni hizmet kararlı hale geldikten sonra tüm trafiği ona yönlendirin. Yeni hizmette sorun çıkarsa trafiği istediğiniz zaman eski hizmete geri alın.
Örneğin, kullanıcı hizmeti başlangıçta kayıt defteri olarak Nacos kullanır. Service kaynakları gerektiren Kubernetes (K8s) içindeki yerleşik CoreDNS çözümüne geçmek için yüzdelik yönlendirme kullanarak trafiği kademeli olarak taşıyın.
-
Different O&M systems
Hizmetleri sanal makinelerden Kubernetes'e geçirirken K8s kümesinde bir çoğaltma dağıtın ve bunu yeni bir hizmet adı altında kaydedin. Hizmet kayıt defteri aynı işlevselliğe sahip iki hizmet içerir: biri Elastic Compute Service (ECS) örneğinde, diğeri Alibaba Cloud Container Service for Kubernetes (ACK) kümesindedir. Trafiği K8s hizmetine kademeli olarak kaydırın ve geçiş sırasında istediğiniz zaman ağırlıkları ayarlayın veya geri alın.
Örneğin, kayıt defteri olarak Nacos kullanan bir kullanıcı hizmeti ECS örneğinden ACK'ye geçirilir.
Etiket tabanlı yönlendirme
Etiket tabanlı yönlendirme modunda ağ geçidi, istekleri yapılandırılmış ağırlıklara veya istek niteliklerine göre aynı veya farklı hizmetlerin farklı sürümlerine iletir. Bu modu canary sürümleri, çok ortamlı yönlendirme ve yüksek kullanılabilirlik dağıtımları için kullanın. Hizmet sürümlerinin yapılandırılması hakkında bilgi için bkz. Hizmet sürümlerini yönetin.
-
Canary release
Canary sürümü sırasında küçük bir trafik yüzdesi doğrulama için yeni sürüme gider. Yeni sürüm beklendiği gibi çalışırsa trafik kademeli olarak kaydırılır ve eski sürüm hiçbir trafik almaz. Canary sürümleri için etiket tabanlı yönlendirme iki yaklaşımı destekler:
Örneğin, bir kullanıcı hizmeti hizmet keşfi için K8s konteyner hizmetini kullanır. Mevcut sürüm v1'dir ve yeni sürüm v2 yayına hazırdır.
-
By percentage
/user/@filepathrotası, istekleri user service v1'e iletmek için etiket tabanlı yönlendirme kullanır. Hizmet yönetiminde v2'yi hizmet sürümü olarak ekleyin, ardından yönlendirme kuralında hedef olarak user service v2'yi ekleyin ve alacağı trafik yüzdesini kontrol etmek için bir ağırlık yapılandırın. -
By tag
Mevcut
/user/@filepathrotası istekleri user service v1'e iletir. Canary sürümü etiketiyle ikinci bir/user/@filepathrotası oluşturun — örneğinstage/@parmnameadlı bir üstbilgi vegray/@parmnamedeğeri. Bu üstbilgiyi içeren istekler user service v2'ye iletilir.
-
-
Tag-based routing
Bir hizmet, belirli niteliklerle eşleşen isteklere hizmet veren birden çok uzun süre çalışan sürüme sahip olabilir. Örneğin, belirli bir üstbilgi değerine sahip istekler belirli bir hizmet sürümüne yönlendirilebilir. Bu, test, ön sürüm ve üretim gibi birden çok ortamı tek bir ağ geçidinde yönetmek için kullanışlıdır.
Örneğin, bir kullanıcı hizmeti hizmet keşfi için K8s konteyner hizmetini kullanır ve test, ön sürüm ve üretim olmak üzere üç ortama sahiptir.
/user/@filepathrotasına yapılan istekler şu şekilde yönlendirilir:stageüstbilgi değeritestise trafik user service'in test sürümüne iletilir.stageüstbilgi değeripreise trafik user service'in ön sürümüne iletilir.stageüstbilgi değerionlineise trafik user service'in üretim sürümüne iletilir.
-
High-availability deployment
Hizmet kullanılabilirliğini artırmak için hizmeti birden çok K8s kümesine dağıtın ve küme başına örnekleri kümeyle ilgili düğüm meta verilerini kullanarak yönetin. Her küme, yapılandırılabilir trafik ağırlığına sahip bir hizmet sürümüne karşılık gelir. Bir küme başarısız olursa ağırlığını 0'a ayarlayarak tüm trafiği kalan kümelere yönlendirin.
Örneğin, bir kullanıcı hizmeti hizmet keşfi için K8s konteyner hizmetini kullanır ve Cluster A ile Cluster B olmak üzere iki ACK kümesine dağıtılır.
/user/@filepathrotasına yapılan isteklerin %80'i Cluster A'ya, %20'si Cluster B'ye iletilir.
Mock yönlendirmesi
Mock yönlendirmesi, isteği bir arka uç hizmetine iletmeden bir rota için sabit bir yanıt döndürür. Arka uç hazır olmadan ön uç geliştirmesini engellememek veya istek eşleştirme kurallarının doğru çalıştığını doğrulamak için kullanın.
Örneğin, arka uç geliştirilmeden önce user service API'si için sabit bir yanıt yapılandırın, böylece ön uç geliştiricileri bağımsız olarak test edip hata ayıklayabilir. Arka uç hazır olduğunda uçtan uca test için rotayı mock'tan gerçek hizmete işaret edecek şekilde değiştirin.
Yeniden yönlendirme yönlendirmesi
Yeniden yönlendirme yönlendirmesi, istemcileri farklı bir alan adına veya yola gönderir. Alan adı geçişleri veya API yolu değişiklikleri için kullanın.
Örneğin, ağ geçidine old.example.com/test adresine bir istek gelir ve ağ geçidi bunu new.example.com/dev adresine yeniden yönlendirir.