uri: Välityspalvelimen osoite. id ja uri vaaditaan, predikaatti ja suodatin ovat valinnaisia
Predikaatti: voidaan käyttää yhdistämään yhdyskäytävään käytettävä uri.
Suodatin: GatewayFilterin ilmentymä, joka lisää logiikkaa ennen välityspalvelinta tai sen jälkeen mahdollisimman joustavasti
Käsittelykulku
Ensin Handler Mapping käsittelee URL-osoitteen ja antaa sen sitten Web Handlerille. Kun käsittely on valmis, se kutsuu varsinaista välityspalvelinta suodattimen toisesta puoliskosta. Palauta tulos WebHandleriin, sitten HandlerMappingiin ja lopuksi asiakkaalle
Jos luettelon elementeissä on useita kenttiä, tarvitset "-" ja kaksoispisteen kunkin kentän ja arvon määrittämiseen, jos kenttiä on vain yksi, voit erottaa ne pilkuilla.
Objektityypin konfigurointi, jokainen kenttä voidaan määrittää "-"- ja kaksoispisteen avulla
Karttatyyppi: avain, arvo erotettuna kaksoispisteellä
predicates:
- Path=/sendOrder
- Query=name,ma.
- name: Query
args:
param: id
regexp: d+
#predicates是List, 它的元素是
public class PredicateDefinition {
@NotNull
private String name;
private Map<String, String> args = new LinkedHashMap<>();}
等号分割转成对象的写法不是yml内置支持的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
predikaatti
Predikaattikonfiguraatio on List, jonka elementit voivat olla tietyssä muodossa olevia merkkijonoja tai objekteja. Merkkijonon kirjoitusmenetelmä: jaettu yhtäläisyysmerkillä, ensimmäinen osa on predikaatin nimen nimi, toinen osa args erotetaan pilkuilla, arvo tallennetaan Map-arvoon ja Map-avain luodaan automaattisesti. Objektin kirjoitusmenetelmä: PredicateDefinition
Jos itse arvoissa on pilkkuja ja kaksoispisteitä, merkkijonomuotoa ei voi käyttää
ShortcutType-menetelmä määrittelee args-parametrien jäsennysmenetelmän DEFAULT:lle: shortcutFieldOrder poistaa kentän nimen ja vastaa parametrin args arvoa GATHER-LISTA : pilkuilla erotettu luettelo, mutta viimeinen Arvo on Boolen arvo, joka lopulta muunnetaan 2 avaimen kartaksi. Ensimmäisen avaimen arvo on List Boolen arvon edessä ja toinen avain on Boolen arvo.
Käytetään yhdistämään yhdyskäytävään liittyvät pyynnöt (kuten uri, kyselyparametrit, pyynnön otsikot), nykyinen reitti tulee voimaan.
GatewayPredicate-toteutusta vastaava toteutusluokka on RoutePredicateFactory:n toteutusluokka. Toteutusluokan nimeäminen on esimerkiksi: PathRoutePredicateFactory.
Predikaatin nimi vastaa tehtaan toteutusluokan luokan nimen etuliitettä, ja predikaattiparametri args vastaa tehdasasetusta ConfigClass.
Useita predikaatteja onjaSuhde
Kun predikaatti ei läpäise, yhdyskäytävä palauttaa 404
Polku
Vastaa polkuja, tue muurahaisvastaavuutta ja poimi uriVariables kautta {}
Kysely
Onko olemassa vastaava http-pyyntöparametrin nimi. Arvo voi olla säännöllinen?
nimi on kiinteä kysely, argsilla on 2 arvoa, param ja regexp, jotka vastaavat kyselyparametrin nimeä ja arvoa
Kun vain nimi on määritetty, se tarkoittaa, että niin kauan kuin pyyntöparametri on olemassa, se välitetään.
Otsikko
HeaderRoutePredicateFactory
Vastaa pyynnön otsikon nimi ja arvo. Todellinen pyynnön otsikon arvo voi olla useita.
Menetelmä
Vastaa HTTP-pyyntömenetelmää, kokoonpanon tulee olla isoilla kirjaimilla ja erotettu pilkuilla.
RemoteAddr
Pyyntöä vastaava asiakkaan IP, tarkemmin sanottuna viimeisen verkon välityspalvelimen IP, voi olla useita pilkuilla erotettuina
Isäntä
Vastaa isäntäpyynnön otsikossa olevaa isäntäosan arvoa (porttia lukuun ottamatta).
Käytä AntPathMatcheria täsmäämiseen, ja polun erotin on "."
Eväste
Yhdistä evästeen nimi ja arvo. Arvo voidaan täsmäyttää säännöllisesti.
Paino
Käytetään eri reittien kuormituksen tasapainottamiseen. Saman ryhmän reitit kuormataan painon mukaan.
Voit määrittää kaksi pilkuilla erotettua arvoa, jotka ovat ryhmittely ja paino.
WeightCalculatorWebFilter: Kun käynnistetään, kaksikerroksinen kartta luodaan paino-määrityksen perusteella. Ensimmäinen kerros on ryhmän nimi ja toinen kerros reititystunnus. ja kullekin ryhmälle valitaan reititystunnus.
WeightRoutePredicateFactory: Predikaattisuodatuksessa suodatetaan ryhmän ja reittitunnuksen perusteella
suodattaa
Konfiguroinnin kirjoitustapa on sama kuin predikaatti. Merkkijonon kirjoitustapa: jaettu yhtäläisyysmerkillä. Ensimmäinen osa vastaa suodatintehtaan GatewayFilterFactory-luokan nimeä ja toinen osa on parametri.
Suodattimia käytetään pyyntöjen ja vastausten muokkaamiseen
AddRequestHeader
Lisää pyyntöotsikot, jotka taustajärjestelmä voi saada
Pyynnön otsikon arvo tukee dynaamista hankintaa uriVariablesista
StripPrefix
On vain yksi kokonaislukuarvo n Kun olet jakanut pyydetyn polun "/":llä, poista etuliite n
rajoittava
Verkkotunnusten välinen
spring.cloud.gateway.globalcors:
cors-configurations:
'[/**]':#跨域的uriPattern
allowedHeaders: "*"
allowedOrigins: "*"
allowedMethods:
- POST
- OPTIONS
- GET
1
2
3
4
5
6
7
8
9
Palvelin määrittää, onko kyseessä verkkotunnusten välinen pyyntö, sillä pyynnön otsikko Origin ja pyynnön URL-osoitteen malli, isäntä ja portti ovat samat.
On oltava verkkotunnusten välinen määritys, ja pyydetty uri vastaa verkkotunnusten välisen määrityksen uriPattern-osoitetta. Jos se on verkkotunnusten välinen, se sallii verkkotunnusten väliset pyyntöotsikot. lähteet, pyyntömenetelmät ja todelliset pyynnöt verkkotunnusten välisessä määrityksessä, vastaavatko pyynnön otsikkoa, lähdettä ja pyyntömenetelmää, jos ne kaikki vastaavat, suorita verkkotunnusten välinen käyttö, muussa tapauksessa palauta 403Forbiden.
Tukee palvelutunnuksen hankkimista palvelunhaun kautta ja luo automaattisesti reititysmääritykset palvelutunnuksen perusteella.Oletusreititysmäärityksen uri on lb://serviceId, predikaatti on /serviceId/** ja suodatin on Rewritepath poistaa serviceId.
globaali suodatin
ReactiveLoadBalancerClientFilter
Prosessoidaksesi reititys-URI:n lb-mallilla, hanki ensin palveluinstanssi palvelun nimen mukaisesti ServiceInstanceListSupplierin kautta ja sitten kuormitustaso ReactorLoadBalancer-esiintymän kautta.
RouteToRequestUrlFilter
Tee 2 asiaa: 1. Tue 2-kerroksisia malleja, tallenna ulompi malli GATEWAY_SCHEME_PREFIX_ATTR:ään ja poista se sitten. 2. Käytä sisäistä shemeä, isäntää ja porttia korvataksesi todellisen pyydetyn URI:n edelleenlähetyksen saavuttamiseksi.