Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 12431|Válasz: 0

Microservices Gateway Kong plug-ineket használ a hibavisszatérések testreszabására

[Linket másol]
Közzétéve 2019. 02. 14. 16:58:19 | | |
Kong plugin

A Kong pluginje négy dimenziót támogat, a végrehajtási sorrend felülről lefelé, és fontos megjegyezni, hogy ha ugyanazt a bővítményt különböző dimenziókban konfigurálják, csak egyszer hajtják végre:

  • Alkalmazzuk az API plus fogyasztói keveréket;
  • A fogyasztókra alkalmazva;
  • Az API-ban alkalmazva;
  • Globálisan alkalmazva;

Ráadásul nem minden plugin támogatja a fogyasztók meghatározását

Hozzáadj egy másik API-t teszteléshez
Új felület hozzáadása a cél:


{
    "created_at": 1515055457572,
    "strip_uri": igaz,
    "azonosító": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
    "név": "rugócsizm-konsul-szolgálat2",
    "módszerek": [
        "FOGD"
    ],
    "http_if_terminated": hamis,
    "preserve_host": hamis,
    "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
    "uris": [
        "/user"
    ],
    "upstream_send_timeout": 60000,
    "upstream_connect_timeout": 60000,
    "upstream_read_timeout": 60000,
    "Próbálkozás": 5,
    "https_only": hamis
}


Steamek hozzáadása


{
    "created_at": 1515055993113,
    "rendeléslista": [
        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
    ],
    "azonosító": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
    "név": "spring-boot-consul-service2.service.dc1.consul",
    "Slots": 100
}


Célpontok hozzáadása



Taget információk

{
    "összesen": 3,
    "adatok": [
        {
            "created_at": 1515056103599,
            "ID": "994e7886-3e48-45cb-80AD-3f7918ede007",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "cél": "192.168.0.186:17004",
            "súly": 15
        },
        {
            "created_at": 1515056109570,
            "ID": "03B477ee-A69D-49ee-9892-276F451C373C",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "cél": "192.168.0.185:17004",
            "súly": 15
        },
        {
            "created_at": 1515056112730,
            "ID": "8ACE8d83-4504-4334-AD04-F0B536963DF9",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "cél": "192.168.0.184:17004",
            "súly": 15
        }
    ]
}


Az API-k jelenlegi listája a következő:

{
    "összesen": 2,
    "adatok": [
        {
            "created_at": 1515055457572,
            "strip_uri": igaz,
            "azonosító": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
            "név": "rugócsizm-konsul-szolgálat2",
            "módszerek": [
                "FOGD"
            ],
            "http_if_terminated": hamis,
            "https_only": hamis,
            "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
            "uris": [
                "/user"
            ],
            "preserve_host": hamis,
            "upstream_connect_timeout": 60000,
            "upstream_read_timeout": 60000,
            "upstream_send_timeout": 60000,
            "Próbálkozás": 5
        },
        {
            "created_at": 1514995615974,
            "strip_uri": igaz,
            "azonosító": "b8431831-6a77-434e-ac4a-7e379550714f",
            "név": "rugós-csizma-konzul-szolgálat",
            "módszerek": [
                "FOGD"
            ],
            "http_if_terminated": hamis,
            "https_only": hamis,
            "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003",
            "uris": [
                "/service"
            ],
            "preserve_host": hamis,
            "upstream_connect_timeout": 60000,
            "upstream_read_timeout": 60000,
            "upstream_send_timeout": 60000,
            "Próbálkozás": 5
        }
    ]
}


A hozzáférési interfészek a következőket adják vissza:

{
    "SMS": "Oké",
    "dátum": {
        "Pontszám": 42,
        "név": "fa",
        "azonosító": 1,
        "életkor": 12,
        "nowTime": 1515060166929,
        "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004"
    },
    "kód": 200
}
{
    "SMS": "Oké",
    "dátum": {
        "Pontszám": 505,
        "név": "fa",
        "azonosító": 1,
        "életkor": 12,
        "nowTime": 1515060402392,
        "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003"
    },
    "kód": 200
}

Add hozzá a Key-Auth plugint

Nyisd meg a key-auth plugint


{
        "created_at": 1515066239000,
        "config": {
                "key_in_body": hamis,
                "run_on_preflight": igaz,
                "névtelen": "",
                "hide_credentials": hamis,
                "key_names": [
                        "Apikey"
                ]
        },
        "azonosító": "78c519d3-11f7-4cdf-b038-9f17f1a83427",
        "engedélyezve": igaz,
        "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
        "név": "kulcs-auth"
}

Ezután egy ilyen hibával lépj be az interfészhez:

KAPA hiperlink bejelentkezés látható.
#输出
{
    "message": "Nem talált API kulcsot a kérésben"
}

Távolítsd el a key-auth plugint



Nézd meg az API binding plugint

KAPA hiperlink bejelentkezés látható.
# Kimenet:
{
    "összesen": 0,
    "adatok": []
}

Add hozzá a sebességkorlátozó plugin sebességkorlátozást


Kimenet

{
    "created_at": 1515068825000,
    "config": {
        "perc": 10,
        "policy": "klaszter",
        "redis_timeout": 2000,
        "hide_client_headers": hamis,
        "második": 2,
        "limit_by": "fogyasztó",
        "redis_port": 6379,
        "redis_database": 0,
        "fault_tolerant": igaz
    },
    "azonosító": "482c627f-4041-4320-9b2f-0cc7722b92ea",
    "név": "sebességkorlátozó",
    "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
    "engedélyezve": igaz
}

Ha a hozzáférési felület meghaladja a határt, a következő visszajelzések érkeznek:


Visszatérés

{
    "message": "API sebességhatár túlmutatott"
}

Azonban vannak problémák is, mert az üzenetformátum fix, a kimeneti formátum nem konzisztens a háttérszolgáltatással, és egyedi üzenetformátumokat kell támogatni.

Kong módosítja a kivétel visszaküldési értékét
Például a szolgáltatás egységes üzenetformátuma a következő:

{
    "kód": 200,
    "SMS": "Oké",
        "data": {xxx}
}

Azt is szeretnénk, ha a Kong kivételes visszatérése ugyanazon a formátumban maradna, mint fent. Ezután közvetlenül módosíthatjuk a Kong forráskódját, ami valójában nagyon egyszerű.

Kezdd azzal, hogy letölti a forráskódot

#下载kong插件源码

git clonegit@github.com:kong/kong.git

Keresd meg a módosítandó kimeneti kódot

A kimeneti kód a kong/kong/tools/responses.lua oldalon található, nyisd meg szerkesztésre.



Mentsd meg, majd fordítsd

[root@tree81 kong]# Luarocks
A kong 0.11.2-0 most telepítve van /usr/local (licenc: MIT)

Indítás, próbáld újra

Frissítsd gyorsan a címet többször egymás után:A hiperlink bejelentkezés látható.Hibaüzenetet kap:

{
    "kód": 429,
    "msg": "API sebességhatár túlmutatott"
}

Kész, tökéletes :)




Előző:a jQuery betölt egy szövegdarabot az AJAX-on keresztül
Következő:init: function () jquery对象的构造函数
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com