Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 12431|Antwoord: 0

Microservices Gateway Kong gebruikt plug-ins om foutretouren aan te passen

[Link kopiëren]
Geplaatst op 14-02-2019 16:58:19 | | |
Kong-plugin

Kongs plugin ondersteunt vier dimensies, de uitvoeringsvolgorde is van boven naar beneden, en het moet worden opgemerkt dat als dezelfde plugin in verschillende dimensies wordt geconfigureerd, deze slechts één keer wordt uitgevoerd:

  • Pas de API plus consumentenmix toe;
  • Toegepast op consumenten;
  • Toegepast in de API;
  • Wereldwijd toegepast;

Ook ondersteunen niet alle plugins het definiëren van consumenten

Voeg een extra API toe voor testen
Voeg een nieuwe interface toe:


{
    "created_at": 1515055457572,
    "strip_uri": waar,
    "ID": "A99919D1-0770-40A1-81A9-E3C31fd9d282",
    "naam": "veer-laars-consul-service2",
    "Methoden": [
        "GA"
    ],
    "http_if_terminated": onwaar,
    "preserve_host": onwaar,
    "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
    "URIS": [
        "/user"
    ],
    "upstream_send_timeout": 60.000,
    "upstream_connect_timeout": 60.000,
    "upstream_read_timeout": 60.000,
    "herkansingen": 5,
    "https_only": vals
}


Voeg stoom toe


{
    "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",
    "naam": "spring-boot-consul-service2.service.dc1.consul",
    "Slots": 100
}


Voeg doelen toe



Tagets-informatie

{
    "totaal": 3,
    "Data": [
        {
            "created_at": 1515056103599,
            "ID": "994e7886-3E48-45CB-80AD-3F7918ede007",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "doelwit": "192.168.0.186:17004",
            "gewicht": 15
        },
        {
            "created_at": 1515056109570,
            "ID": "03B477ee-A69D-49Ee-9892-276F451C373C",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "Doelwit": "192.168.0.185:17004",
            "gewicht": 15
        },
        {
            "created_at": 1515056112730,
            "id": "8ace8d83-4504-4334-ad04-f0b536963df9",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "Doelwit": "192.168.0.184:17004",
            "gewicht": 15
        }
    ]
}


De huidige lijst van API's is als volgt:

{
    "totaal": 2,
    "Data": [
        {
            "created_at": 1515055457572,
            "strip_uri": waar,
            "ID": "A99919D1-0770-40A1-81A9-E3C31fd9d282",
            "naam": "veer-laars-consul-service2",
            "Methoden": [
                "GA"
            ],
            "http_if_terminated": onwaar,
            "https_only": onjuist,
            "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
            "URIS": [
                "/user"
            ],
            "preserve_host": onwaar,
            "upstream_connect_timeout": 60.000,
            "upstream_read_timeout": 60.000,
            "upstream_send_timeout": 60.000,
            "herkansingen": 5
        },
        {
            "created_at": 1514995615974,
            "strip_uri": waar,
            "ID": "B8431831-6A77-434e-ac4A-7e379550714f",
            "naam": "veer-laars-consul-dienst",
            "Methoden": [
                "GA"
            ],
            "http_if_terminated": onwaar,
            "https_only": onjuist,
            "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003",
            "URIS": [
                "/service"
            ],
            "preserve_host": onwaar,
            "upstream_connect_timeout": 60.000,
            "upstream_read_timeout": 60.000,
            "upstream_send_timeout": 60.000,
            "herkansingen": 5
        }
    ]
}


De toegangsinterfaces geven het volgende terug:

{
    "msg": "oké",
    "date": {
        "score": 42,
        "naam": "boom",
        "id": 1,
        "leeftijd": 12,
        "nowTime": 1515060166929,
        "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004"
    },
    "code": 200
}
{
    "msg": "oké",
    "date": {
        "score": 505,
        "naam": "boom",
        "id": 1,
        "leeftijd": 12,
        "nowTime": 1515060402392,
        "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003"
    },
    "code": 200
}

Voeg de Key-Auth plugin toe

Open de key-auth plugin


{
        "created_at": 1515066239000,
        "config": {
                "key_in_body": onwaar,
                "run_on_preflight": waar,
                "anoniem": "",
                "hide_credentials": onwaar,
                "key_names": [
                        "Apikey"
                ]
        },
        "id": "78c519d3-11f7-4cdf-b038-9f17f1a83427",
        "ingeschakeld": waar,
        "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
        "naam": "sleutel-auth"
}

Vervolgens opent je de interface met een foutmelding als deze:

TOEVOEGENDe hyperlink-login is zichtbaar.
#输出
{
    "message": "Geen API-sleutel gevonden in verzoek"
}

Verwijder de key-auth plugin



Bekijk de API-binding-plugin

TOEVOEGENDe hyperlink-login is zichtbaar.
# Output:
{
    "totaal": 0,
    "Data": []
}

Voeg de rate-limiting plugin toe die de snelheid beperkt


Output

{
    "created_at": 1515068825000,
    "config": {
        "minuut": 10,
        "beleid": "cluster",
        "redis_timeout": 2000,
        "hide_client_headers": onwaar,
        "tweede": 2,
        "limit_by": "consument",
        "redis_port": 6379,
        "redis_database": 0,
        "fault_tolerant": waar
    },
    "ID": "482C627F-4041-4320-9B2F-0CC7722B92EA",
    "naam": "tariefbeperkend",
    "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
    "ingeschakeld": waar
}

Wanneer de toegangsinterface de limiet overschrijdt, worden de volgende retouren ontvangen:


Terugkeer

{
    "message": "API-snelheidslimiet overschreden"
}

Er zijn echter nog steeds enkele problemen, omdat het berichtformaat is opgelost, het uitvoerformaat niet consistent is met de backend-service en aangepaste berichtformaten ondersteund moeten worden.

Kong wijzigt de uitzonderingsretourwaarde
Het systeem van de dienst is bijvoorbeeld het geïntegreerde berichtformaat als volgt:

{
    "code": 200,
    "msg": "oké",
        "data": {xxx}
}

We willen ook dat de uitzonderingsterugkeer van Kong hetzelfde format blijft als hierboven. Dan kunnen we de broncode van Kong direct aanpassen, wat eigenlijk heel eenvoudig is.

Begin met het downloaden van de broncode

#下载kong插件源码

Git-kloongit@github.com:Kong/kong.git

Zoek de uitvoercode om aan te passen

De uitvoercode bevindt zich in kong/kong/tools/responses.lua, open deze voor bewerking.



Sla op, en compileer dan

[root@tree81 Kong]# Luarocks maken
kong 0.11.2-0 is nu geïnstalleerd in /usr/local (licentie: MIT)

Lanceren, probeer het opnieuw

Ververs het adres snel meerdere keren achter elkaar:De hyperlink-login is zichtbaar.Krijg een foutmelding:

{
    "code": 429,
    "msg": "API-snelheidslimiet overschreden"
}

Klaar, perfect :)




Vorig:jQuery laadt een tekststuk via AJAX
Volgend:init: function () jquery对象的构造函数
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com