Kong-plugin
Kongs plugin støtter fire dimensjoner, kjørerekkefølgen er fra topp til bunn, og det bør bemerkes at hvis samme plugin er konfigurert i forskjellige dimensjoner, vil den bare bli utført én gang:
- Bruk API-en pluss forbrukerblandingen;
- Anvendt på forbrukere;
- Anvendt i API-et;
- Anvendt globalt;
Dessuten støtter ikke alle plugins definerende konsumenter
Legg til et nytt API for testing Legg til et nytt grensesnitt:
{ "created_at": 1515055457572, "strip_uri": Sant, "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "navn": "fjær-støvel-konsul-tjeneste2", "metoder": [ "GÅ" ], "http_if_terminated": falskt, "preserve_host": falskt, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "URIS": [ "/bruker" ], "upstream_send_timeout": 60 000, "upstream_connect_timeout": 60 000, "upstream_read_timeout": 60 000, "Retrys": 5, "https_only": falsk
}
Legg til damp
{ "created_at": 1515055993113, "ordreliste": [ 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", "Navn": "Spring-boot-consul-service2.service.DC1.Consul", "Slots": 100
}
Legg til mål
Tagets-informasjon
{ "totalt": 3, "Data": [ { "created_at": 1515056103599, "id": "994e7886-3e48-45cb-80AD-3f7918ede007", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "mål": "192.168.0.186:17004", "Vekt": 15 }, { "created_at": 1515056109570, "id": "03b477ee-a69d-49ee-9892-276f451c373c", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "mål": "192.168.0.185:17004", "Vekt": 15 }, { "created_at": 1515056112730, "id": "8ace8d83-4504-4334-ad04-f0b536963df9", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "mål": "192.168.0.184:17004", "Vekt": 15 } ]
}
Den nåværende listen over API-er er som følger:
{ "totalt": 2, "Data": [ { "created_at": 1515055457572, "strip_uri": Sant, "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "navn": "fjær-støvel-konsul-tjeneste2", "metoder": [ "GÅ" ], "http_if_terminated": falskt, "https_only": falskt, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "URIS": [ "/bruker" ], "preserve_host": falskt, "upstream_connect_timeout": 60 000, "upstream_read_timeout": 60 000, "upstream_send_timeout": 60 000, "Retries "Retrys": 5 }, { "created_at": 1514995615974, "strip_uri": Sant, "id": "b8431831-6a77-434e-ac4a-7e379550714f", "Navn": "fjær-støvel-konsul-tjeneste", "metoder": [ "GÅ" ], "http_if_terminated": falskt, "https_only": falskt, "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003", "URIS": [ "/tjeneste" ], "preserve_host": falskt, "upstream_connect_timeout": 60 000, "upstream_read_timeout": 60 000, "upstream_send_timeout": 60 000, "Retries "Retrys": 5 } ]
}
Tilgangsgrensesnittene returnerer følgende:
{ "msg": "ok", "date": { "poengsum": 42, "Navn": "Tre", "id": 1, "alder": 12, "nowTime": 1515060166929, "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004" }, "kode": 200
} { "msg": "ok", "date": { "poengsum": 505, "Navn": "Tre", "id": 1, "alder": 12, "nowTime": 1515060402392, "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003" }, "kode": 200
} Legg til Key-Auth-pluginen
Åpne nøkkelautentiseringspluginen
{ "created_at": 1515066239000, "config": { "key_in_body": falskt, "run_on_preflight": Sant, "anonym": "", "hide_credentials": falskt, "key_names": [ "Apikey" ] }, "id": "78c519d3-11f7-4cdf-b038-9f17f1a83427", "aktivert": Sant, "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "Navn": "Key-Auth"
} Deretter får du tilgang til grensesnittet med en feilmelding som denne:
Fjern key-auth-pluginen
Sjekk ut API-binding-pluginen
Legg til den ratebegrensende plugin-hastighetsbegrensningen
Produksjon
{ "created_at": 1515068825000, "config": { "minutt": 10, "policy": "klynge", "redis_timeout": 2000, "hide_client_headers": falskt, "andre": 2, "limit_by": "forbruker", "redis_port": 6379, "redis_database": 0, "fault_tolerant": Sant }, "ID": "482C627F-4041-4320-9B2F-0CC7722B92EA", "navn": "prisbegrensende", "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "aktivert": sant
} Når tilgangsgrensesnittet overstiger grensen, mottas følgende returer:
Retur
{ "melding": "API-hastighetsgrense overskredet"
} Det er imidlertid fortsatt noen problemer, fordi meldingsformatet er fikset, utdataformatet ikke er konsistent med backend-tjenesten, og tilpassede meldingsformater må støttes.
Kong endrer unntaksreturverdien For eksempel er tjenestens enhetlige meldingsformat som følger:
{ "kode": 200, "msg": "ok", "data": {xxx}
} Vi ønsker også at unntaksreturen til Kong skal forbli i samme format som ovenfor. Deretter kan vi direkte endre kildekoden til Kong, som faktisk er veldig enkel.
Start med å laste ned kildekoden
#下载kong插件源码
Git-klonegit@github.com:Kong/kong.git
Finn utgangskoden som skal endres
Utdatakoden ligger i kong/kong/tools/responses.lua, åpne den for redigering.
Lagre, og kompiler deretter
[root@tree81 kong]# luarocker lager kong 0.11.2-0 er nå installert i /usr/local (lisens: MIT) Start opp, prøv igjen
Oppdater adressen raskt flere ganger på rad:Innloggingen med hyperkoblingen er synlig.Får en feilmelding:
{ "kode": 429, "msg": "API-hastighetsgrense overskredet"
} Ferdig, perfekt :) |