Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 12431|Odpoveď: 0

Microservices Gateway Kong používa plug-iny na prispôsobenie návratov chýb

[Kopírovať odkaz]
Zverejnené 14. 2. 2019 16:58:19 | | |
Kong plugin

Kongov plugin podporuje štyri rozmery, poradie vykonávania je od vrchu nadol a treba poznamenať, že ak je ten istý plugin nastavený v rôznych dimenziách, vykoná sa iba raz:

  • Aplikovať API plus spotrebiteľskú kombináciu;
  • Aplikované na spotrebiteľov;
  • Aplikované v API;
  • Aplikované globálne;

Tiež nie všetky pluginy podporujú definovanie spotrebiteľov

Pridať ďalšie API na testovanie
Pridajte nové rozhranie:


{
    "created_at": 1515055457572,
    "strip_uri": pravda,
    "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
    "meno": "spring-boot-consul-service2",
    "metódy": [
        "CHOĎ"
    ],
    "http_if_terminated": nepravda,
    "preserve_host": nepravda,
    "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,
    "opakovania": 5,
    "https_only": falošné
}


Add steams


{
    "created_at": 1515055993113,
    "Orderlist": [
        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",
    "meno": "spring-boot-consul-service2.service.dc1.consul",
    "Sloty": 100
}


Pridať ciele



Informácie o tagetoch

{
    "celkom": 3,
    "dáta": [
        {
            "created_at": 1515056103599,
            "id": "994e7886-3e48-45cb-80ad-3f7918ede007",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "cieľ": "192.168.0.186:17004",
            "váha": 15
        },
        {
            "created_at": 1515056109570,
            "ID": "03b477EE-A69D-49EE-9892-276F451C373C",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "cieľ": "192.168.0.185:17004",
            "váha": 15
        },
        {
            "created_at": 1515056112730,
            "ID": "8ace8d83-4504-4334-ad04-f0b536963df9",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "cieľ": "192.168.0.184:17004",
            "váha": 15
        }
    ]
}


Aktuálny zoznam API je nasledovný:

{
    "celkom": 2,
    "dáta": [
        {
            "created_at": 1515055457572,
            "strip_uri": pravda,
            "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
            "meno": "spring-boot-consul-service2",
            "metódy": [
                "CHOĎ"
            ],
            "http_if_terminated": nepravda,
            "https_only": nepravda,
            "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
            "uris": [
                "/user"
            ],
            "preserve_host": nepravda,
            "upstream_connect_timeout": 60000,
            "upstream_read_timeout": 60000,
            "upstream_send_timeout": 60000,
            "opakovania": 5
        },
        {
            "created_at": 1514995615974,
            "strip_uri": pravda,
            "ID": "b8431831-6a77-434e-ac4a-7e379550714f",
            "názov": "pružinová čižma-konzul-služba",
            "metódy": [
                "CHOĎ"
            ],
            "http_if_terminated": nepravda,
            "https_only": nepravda,
            "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003",
            "uris": [
                "/service"
            ],
            "preserve_host": nepravda,
            "upstream_connect_timeout": 60000,
            "upstream_read_timeout": 60000,
            "upstream_send_timeout": 60000,
            "opakovania": 5
        }
    ]
}


Prístupové rozhrania vracajú nasledovné:

{
    "MSG": "OK",
    "date": {
        "skóre": 42,
        "meno": "strom",
        "id": 1,
        "vek": 12,
        "terazTime": 1515060166929,
        "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004"
    },
    "kód": 200
}
{
    "MSG": "OK",
    "date": {
        "skóre": 505,
        "meno": "strom",
        "id": 1,
        "vek": 12,
        "nowTime": 1515060402392,
        "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003"
    },
    "kód": 200
}

Pridajte plugin Key-Auth

Otvorte plugin na overenie kľúča


{
        "created_at": 1515066239000,
        "config": {
                "key_in_body": nepravda,
                "run_on_preflight": pravda,
                "anonymous": "",
                "hide_credentials": nepravda,
                "key_names": [
                        "Apikey"
                ]
        },
        "id": "78c519d3-11f7-4cdf-b038-9f17f1a83427",
        "povolené": pravda,
        "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
        "meno": "key-auth"
}

Potom pristupte k rozhraniu s chybou ako táto:

DOSTAŤPrihlásenie na hypertextový odkaz je viditeľné.
#输出
{
    "message": "V požiadavke sa nenašiel žiadny API kľúč"
}

Odstráňte plugin na overenie kľúča



Pozrite si plugin na viazanie API

DOSTAŤPrihlásenie na hypertextový odkaz je viditeľné.
# Výstup:
{
    "celkom": 0,
    "dáta": []
}

Pridajte plugin obmedzujúci rýchlosť


Výstup

{
    "created_at": 1515068825000,
    "config": {
        "minúta": 10,
        "politika": "cluster",
        "redis_timeout": 2000,
        "hide_client_headers": nepravda,
        "druhý": 2,
        "limit_by": "spotrebiteľ",
        "redis_port": 6379,
        "redis_database": 0,
        "fault_tolerant": pravda
    },
    "ID": "482C627F-4041-4320-9B2F-0cc7722B92EA",
    "názov": "obmedzujúca rýchlosť",
    "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
    "povolené": pravda
}

Keď prístupové rozhranie prekročí limit, dostanú sa nasledujúce výsledky:


Návrat

{
    "message": "Limit API prekročený"
}

Napriek tomu však stále existujú určité problémy, pretože formát správ je pevne daný, výstupný formát nie je konzistentný so službou na pozadí a je potrebné podporovať vlastné formáty správ.

Kong upravuje hodnotu návratu výnimky
Napríklad formát jednotnej správy služby je nasledovný:

{
    "kód": 200,
    "MSG": "OK",
        "data": {xxx}
}

Chceme tiež, aby výnimka návratu kongu zostala v rovnakom formáte ako vyššie. Potom môžeme priamo upraviť zdrojový kód Kong, čo je vlastne veľmi jednoduché.

Začnite stiahnutím zdrojového kódu

#下载kong插件源码

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

Nájdite výstupný kód na úpravu

Výstupný kód sa nachádza v kong/kong/tools/responses.lua, otvorte ho na úpravu.



Ulož, potom skompiluj

[root@tree81 Kong]# Luarocks vyrábajú
kong 0.11.2-0 je teraz nainštalovaný v /usr/local (licencia: MIT)

Spustiť, skúsiť znova

Rýchlo obnovte adresu niekoľkokrát za sebou:Prihlásenie na hypertextový odkaz je viditeľné.Zobrazí sa chybová správa:

{
    "kód": 429,
    "msg": "Limit API prekročený"
}

Hotovo, perfektný :)




Predchádzajúci:jQuery načíta text cez AJAX
Budúci:init: function () jquery对象的构造函数
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com