Cloud-native API Gateway gelen bir isteği işlerken yapılandırılmış rota kurallarını öncelik sırasına göre değerlendirir. İstek bir kural ile eşleşirse ağ geçidi bu isteği ilgili kuralda tanımlanan arka uç hizmetine iletir. Herhangi bir kural ile eşleşme olmazsa ağ geçidi 404 hatası döndürür.
Rota eşleşme önceliği
Önceliklendirme kuralları şu şekildedir: Associated Domain Name > Path > Header > Query Parameters > Created At.
Associated Domain Name temelinde: Alan adı dizesi ne kadar uzunsa öncelik o kadar yüksektir.
-
Path temelinde:
Farklı Match Rule türleri için öncelik sırası şöyledir: Equals To > Prefix > Regular Expression Match.
Aynı Match Rule türü içinde Path dizesi ne kadar uzunsa öncelik o kadar yüksektir.
Header içindeki anahtar-değer çiftlerinin toplam sayısına göre: Çift sayısı ne kadar fazlaysa öncelik o kadar yüksektir.
Query Parameters içindeki anahtar-değer çiftlerinin toplam sayısına göre: Çift sayısı ne kadar fazlaysa öncelik o kadar yüksektir.
Created At temelinde: Oluşturma zamanı ne kadar eskiyse öncelik o kadar yüksektir.
Aynı örnek içindeki tüm API'lerin rota kuralları eşleşme sırasında birlikte sıralanır ve yukarıdaki önceliklere göre değerlendirilir. Farklı API'lere ait rotalar çakışmadığı sürece aynı kurallara uyar.
Bir REST API ön ek rotası olarak yayımlandığında ağ geçidi her API işlemi için ayrı bir rota oluşturmaz. Tüm API, API'nin etkili temel yoluna göre istekleri eşleştiren tek bir ön ek rotasına dönüştürülür. Bu rota yukarıdaki öncelik kurallarına ön ek eşleşmesi yapan bir rota olarak katılır: Eşleşen yol dizesi ne kadar uzunsa öncelik o kadar yüksek olur ve tam eşleşme ön ek eşleşmesinden, ön ek eşleşmesi de normal ifade eşleşmesinden önce gelir.
REST API'ler, HTTP API'ler ve WebSocket API'ler tarafından oluşturulan rotalar aynı ağ geçidi ve alan adı altında birlikte bulunduğunda ağ geçidi önce normal REST API rotalarını, ardından HTTP API ve WebSocket API rotalarını ve son olarak ön ek rotası olarak yayımlanmış REST API'leri eşleştirir. Bir HTTP API veya WebSocket API rotasının eşleşme kapsamı ön ek rotası olarak yayımlanmış bir REST API ile örtüşüyorsa tamamen eşleşen HTTP API veya WebSocket API rotası öncelik kazanır.
Yordam
-
Cloud-native API Gateway rotaları oluşturmak için iki yöntem sunar: örnek dışından veya örnek içinden.
Örnek dışından
Cloud-native API Gateway konsolu oturumunu açın. Sol gezinme bölmesinde API seçeneğini belirleyin. Üst menü çubuğundan bir bölge seçin.
Hedef API'yi tıklayın. Açılan açılır listede rotanın yapılandırılacağı örneği seçin veya All Instances seçeneğini belirleyin. Üstteki All Instances açılır menüsünden hedef örneği seçin.
Create Route seçeneğine tıklayın.
Örnek içinden
Cloud-native API Gateway konsolu oturumunu açın. Sol gezinme bölmesinde Instance seçeneğini belirleyin. Üst menü çubuğundan bir bölge seçin.
Instance sayfasında hedef ağ geçidi örneğinin ID değerine tıklayın. Sol gezinme bölmesinde API seçeneğini belirleyin ve ardından hedef API'ye tıklayın.
Create Route seçeneğine tıklayın.
-
Create Route sayfasında parametreleri yapılandırın ve ardından Save veya Save and Publish seçeneğine tıklayın.
NotEşleşme kuralları mantıksal VE ile birleştirilir. Belirttiğiniz kural sayısı arttıkça eşleşme kapsamı daralır.
Rotaların eşleşme önceliği rota yapılandırma sayfasındaki görüntüleme sırasına karşılık gelir.
Parametre
Açıklama
Route Name
Rota için özel bir ad girin.
Route Description
Rota için bir açıklama girmek üzere Add Route Description seçeneğine tıklayın.
Domain Name
-
Rotanın eşleşeceği bir veya daha fazla alan adı seçin.
-
Yeni bir alan adı oluşturmak için Add Domain seçeneğine tıklayın ve görünen panelde oluşturun.
Path
Eşleştirilecek HTTP isteğindeki yol parametresini belirtir.
-
Aynı eşleşme kuralı türü için yol dizesi ne kadar uzunsa öncelik o kadar yüksektir.
-
Farklı eşleşme kuralı türleri için öncelik sırası şöyledir: Equals To > Prefix > Regular Expression Match.
-
Equals To: İstek yolu tam olarak eşleşmelidir. Örneğin, tam olarak
/userolmalıdır. -
Prefix: İstek yolu belirtilen ön ekle başlamalıdır, örneğin
/user. -
Regular Expression Match: İstek yolu belirtilen normal ifadeyle eşleşmelidir.
-
Method
Eşleştirilecek HTTP isteğindeki yöntem parametresini belirtir. Birden fazla HTTP yöntemi seçebilirsiniz. Varsayılan ANY'dir.
Header
Eşleştirilecek HTTP isteğindeki üst bilgi parametrelerini belirtir. Aynı eşleşme kuralı türü için daha fazla parametre içeren kuralın önceliği daha yüksektir.
Query Parameters
Eşleştirilecek HTTP isteğindeki sorgu parametrelerini belirtir. Aynı eşleşme kuralı türü için daha fazla parametre içeren kuralın önceliği daha yüksektir.
Instance
Rotanın etkili olacağı Cloud-native API Gateway örneğini seçin.
Scenario
Geçerli rota için hedef hizmet türünü seçin.
-
Temel: Single Service
-
Kademeli sürüm: By Percentage (Multi-service), Tag (Tag-based Routing)
-
Diğer: Mock, Redirect
Farklı hedef hizmet türleri hakkında daha fazla bilgi için bkz. Rotlar.
NotTüm ağırlıklı hedef hizmetler için trafik ağırlıklarının toplamı %100 olmalıdır.
Backend Services
İlişkili bir arka uç hizmeti ve bağlantı noktası seçin.
Not-
Kaynağı ve hizmeti panelde seçmek için Associated Service seçeneğine tıklayabilirsiniz.
-
Farklı kaynak türlerinin ekleyebileceğiniz kaynak sayısı üzerinde farklı sınırlamaları vardır.
-
Container Service for Kubernetes (ACK) için en fazla beş kaynak ekleyebilirsiniz.
-
Nacos veya Zookeeper kaynağından yalnızca bir tane ekleyebilirsiniz.
-
Timeout Period (seconds)
Zaman aşımı süresini girin. Varsayılan 60 saniyedir. 0 değeri zaman aşımı olmadığını gösterir.
Fallback
Bir yedekleme hizmeti belirtin. Bir rotanın arka uç hizmetinde kullanılabilir düğüm yoksa ağ geçidi orijinal isteği belirtilen yedekleme hizmetine yönlendirir.
NotŞu anda yedekleme özelliği yalnızca HTTP hizmetleri arasında desteklenmektedir.
Retry Times
Yeniden deneme sayısını girin. Varsayılan 2'dir. 0 değeri yeniden denemeleri devre dışı bırakır.
Retry Condition
Yeniden denemeyi tetikleyen koşulları seçin.
Retry Status Code
Yeniden denemeyi tetikleyen bir veya daha fazla durum kodu ekleyin.