Kong eklentisi
Kong'un eklentisi dört boyut destekler, yürütme sırası yukarıdan aşağıya ve aynı eklenti farklı boyutlarda yapılandırılırsa sadece bir kez çalıştırılacağı belirtilmelidir:
- API ve tüketici karışımını uygulayın;
- Tüketicilere uygulanmıştır;
- API'de uygulanmıştır;
- Küresel olarak uygulanmıştır;
Ayrıca, tüm eklentiler tüketici tanımlamayı desteklemez
Test için başka bir API ekleyin Yeni bir arayüz ekleyin:
{ "created_at": 1515055457572, "strip_uri": doğru, "ID": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "isim": "spring-boot-consul-service2", "yöntemler": [ "AL" ], "http_if_terminated": yanlış, "preserve_host": yanlış, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "uris": [ "/kullanıcı" ], "upstream_send_timeout": 60000, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "Denemeler": 5, "https_only": yanlış
}
Buhar ekle
{ "created_at": 1515055993113, "Sipariş Listesi": [ 41, 28, 44, 14, 79, 38, 30, 69, 15, 88, 72, 53, 89, 47, 81, 43, 60, 91, 92, 100, 98, 55, 12, 40, 9, 31, 84, 24, 36, 39, 96, 74, 6, 8, 93, 99, 78, 34, 49, 37, 61, 76, 33, 35, 32, 77, 70, 26, 52, 87, 73, 23, 57, 25, 17, 90, 62, 82, 19, 75, 50, 4, 51, 42, 65, 66, 63, 3, 1, 68, 94, 67, 20, 80, 54, 7, 5, 16, 85, 13, 46, 10, 97, 22, 48, 11, 27, 86, 18, 59, 83, 21, 56, 95, 2, 64, 58, 71, 45, 29 ], "id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "isim": "spring-boot-consul-service2.service.dc1.consol", "slotlar": 100
}
Hedefler ekle
Tagets bilgisi
{ "toplam": 3, "veri": [ { "created_at": 1515056103599, "id": "994e7886-3e48-45cb-80AD-3f7918ede007", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "hedef": "192.168.0.186:17004", "ağırlık": 15 }, { "created_at": 1515056109570, "ID": "03B477ee-A69D-49ee-9892-276F451C373C", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "hedef": "192.168.0.185:17004", "ağırlık": 15 }, { "created_at": 1515056112730, "ID": "8ACE8D83-4504-4334-AD04-F0B536963DF9", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "hedef": "192.168.0.184:17004", "ağırlık": 15 } ]
}
Mevcut API listesi aşağıdaki gibidir:
{ "toplam": 2, "veri": [ { "created_at": 1515055457572, "strip_uri": doğru, "ID": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "isim": "spring-boot-consul-service2", "yöntemler": [ "AL" ], "http_if_terminated": yanlış, "https_only": yanlış, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "uris": [ "/kullanıcı" ], "preserve_host": yanlış, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "upstream_send_timeout": 60000, "Denemeler": 5 }, { "created_at": 1514995615974, "strip_uri": doğru, "ID": "B8431831-6A77-434E-AC4A-7E379550714F", "isim": "yay-bot-konsol-hizmeti", "yöntemler": [ "AL" ], "http_if_terminated": yanlış, "https_only": yanlış, "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003", "uris": [ "/servis" ], "preserve_host": yanlış, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "upstream_send_timeout": 60000, "Denemeler": 5 } ]
}
Erişim arayüzleri aşağıdaki sonuçları geri getirir:
{ "mesaj": "tamam", "date": { "Puan": 42, "isim": "ağaç", "id": 1, "yaş": 12, "nowTime": 1515060166929, "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004" }, "kod": 200
} { "mesaj": "tamam", "date": { "puan": 505, "isim": "ağaç", "id": 1, "yaş": 12, "nowTime": 1515060402392, "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003" }, "kod": 200
} Key-Auth eklentisini ekle
Key-auth eklentisini aç
{ "created_at": 1515066239000, "config": { "key_in_body": yanlış, "run_on_preflight": doğru, "anonim": "", "hide_credentials": yanlış, "key_names": [ "apikey" ] }, "id": "78c519d3-11f7-4cdf-b038-9f17f1a83427", "etkinleştirildi": doğru, "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "isim": "key-auth"
} Sonra arayüzü şu şekilde bir hatayla açın:
Key-aut eklentisini kaldırın
API bağlama eklentisine göz atın
Hız sınırlayıcı eklenti hız sınırlayıcısını ekleyin
Çıktı
{ "created_at": 1515068825000, "config": { "dakika": 10, "politika": "küme", "redis_timeout": 2000, "hide_client_headers": yanlış, "ikinci": 2, "limit_by": "tüketici", "redis_port": 6379, "redis_database": 0, "fault_tolerant": doğru }, "ID": "482c627f-4041-4320-9b2f-0cc7722b92ea", "isim": "hız sınırlayıcı", "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "etkinleştirildi": doğru
} Erişim arayüzü sınırı aştığında, aşağıdaki ifadeler alınacaktır:
Dönüş
{ "message": "API hız sınırı aşıldı"
} Ancak, mesaj formatı sabitlendiği, çıktı formatının arka uç hizmetiyle tutarlı olmadığı ve özel mesaj formatlarının desteklenmesi gerektiği için bazı sorunlar hâlâ vardır.
Kong, istisna dönüş değerini değiştiriyor Örneğin, servisin birleşik mesaj formatı şu şekildedir:
{ "kod": 200, "mesaj": "tamam", "data": {xxx}
} Ayrıca Kong'un istisna dönüşünün yukarıdaki formatta kalmasını istiyoruz. Sonra Kong'un kaynak kodunu doğrudan değiştirebiliriz, ki bu aslında çok basit.
Kaynak kodunu indirerek başlayın
#下载kong插件源码
git klonugit@github.com:Kong/kong.git
Değiştirmek için çıktı kodunu bulun
Çıktı kodu kong/kong/tools/responses.lua adresinde bulunuyor, düzenleme için açın.
Kaydet, sonra derle
[root@tree81 kong]# luarocks Kong 0.11.2-0 artık /usr/local (lisans: MIT) içinde kuruludur Fırlat, tekrar dene
Adresi arka arkaya birkaç kez hızlıca yenileyin:Bağlantı girişi görünür.Bir hata mesajı alın:
{ "kod": 429, "msg": "API hız sınırı aşıldı"
} Bitti, mükemmel :) |