Huomautus: Se on ristiriidassa spring-webmvc:n riippuvuuksien kanssa, joten spring-webmvc on suljettava pois.
2. Kirjoita yml-asetustiedosto
server.port = 8088 on Yhdyskäytävän pääsyportti
kevät.sovelluksen.nimi on Nykyisen yhdyskäytäväpalvelun palvelun nimi
Reitityssäännöt on määritelty alla gateway.routes:
id on tämän reitityssäännön nimi. Sivulla gateway.routes voi olla monia reitityssääntöjä
url: Käytä nykyisen yhdyskäytävän palvelua, Mihin URL-osoitteeseen lähetetään?Ensinnäkin, en voi välittää kaikkia pyyntöjä yhdyskäytävälle. Tiettyjen ehtojen on täytyttävä.
predikaatit: milloin Pyyntö saavuttaa nykyisen yhdyskäytävän(Niin Tämän pyynnön on tuotava nykyisen yhdyskäytävän IP + portin numero. tiedot, jota seuraa vinoviiva /, jotta yhdyskäytävä voi oletuksena olla, että nämä tiedot ovat saatavilla,Tätä tietoa ei tarvitse ottaa huomioon predikaateissa),
Jos porttinumeron jälkeinen URL-osoite alkaa /order-serv/**,Niin Lähetä eteenpäin yllä olevan URL-osoitteen ip + -porttiin . ja kauttaviiva /Kaikkia myöhempiä polkuja ei poisteta, sitten se välitetään osoitteeseen http://localhost:8020/order-serv/order/add
(order-serv on palvelun nimi, jolla estetään tilauspalvelulla /order/add-alkuinen osoite ja varastopalvelulla myös /order/add-alkuinen osoite, joten Yhdyskäytävälle lähetetyissä pyynnöissä on edelleen välitettävän palvelun nimi.),mutta Tilauspalvelun vastaanottamassa pyynnössä ei ole /order-serv/., vain lähetetty pyyntö on http://localhost:8020/order/add, joten se voidaan vastaanottaa. Anna yhdyskäytävän poistaa ensimmäisen kerroksen polku, suodattimen etuliitteet suodattimien läpi
Jos väite ei täyty, raportoidaan 404-virhe.
Tässä olemme koodaaneet eteenpäin lähetetyt URL-osoitteet konfiguraatiossa, kun palvelin siirretään, IP-osoite muuttuu tai palvelin otetaan käyttöön klusterissa, ja kuormituksen tasapainotus on suoritettava nginxin kautta, mikä on erittäin hankalaa .
Voimme helposti ratkaista nämä ongelmat integroimalla yhdyskäytävän ja nacos
Integroi Nacos
1. Jatka nacos-riippuvuuksien lisäämistä
2. Jatka yml-asetustiedoston kirjoittamista
(1) Integroidaksesi nacos, rekisteröi vain nykyinen yhdyskäytäväpalvelu nacosiin ja kirjoita nacos-palvelun osoite ja tilin salasana
(2) Muuta välitettävän palvelun osoite reitityssäännöissä palvelun nimellä "order-service" (url: order-service), ja koska sinun on käytettävä nacosin mukana tulevan nauhan kuormituksen tasapainotusstrategiaa, joten Lisää lb:// eteen, lb tarkoittaa kuormituksen tasapainotusta.
gatewayYhdyskäytävä korvaa koko "tilauspalvelun" yhden tilauspalvelun IP-osoitteella (koska yhdyskäytävä hakee säännöllisesti nacosiin rekisteröityjen palvelujen IP-osoiteluettelon)
Tämä ratkaisee ongelman, että kun palvelinta siirretään, IP-osoite muuttuu tai palvelin otetaan käyttöön klusterissa, nginxiä on käytettävä käänteiseen välityspalvelimeen ja kuormituksen tasapainottamiseen.
Lyhennetyt reitityssäännöt: Sopimus on suurempi kuin määritys
(1) Kun nacos-palvelujen automaattinen tunnistaminen on otettu käyttöön, väitesääntöjä ei tarvitse kirjoittaa.
(2) Kun yhdyskäytävälle lähetetty pyyntö alkaa nacosiin rekisteröidyllä palvelun nimellä, se välitetään automaattisesti kyseisen palvelun palvelimelle ja ensimmäisen kerroksen polku suodatetaan automaattisesti pois (haitta: reitityssäännöt eivät ole joustavia tarpeeksi)
Tällä hetkellä, niin kauan kuin käytät sitä yhdyskäytävän osoitteen/mikropalvelun/käyttöliittymän muodon mukaisesti, voit saada onnistuneen vastauksen.
väitetehdas
Väitteiden tekeminen URL-osoitteen perusteella on yhdyskäytävän sisäänrakennettu väitetehdas.

Mukautetun reitityksen vahvistustehdas
Tässä oletetaan, että mukautat vahvistustehdasta kyselypyyntöparametrien perusteella, kopioit lähdekoodin sisällön ja muokkaat sitä sitten tarpeen mukaan.
muokata
Kyselypyyntöparametreihin perustuva väitetehdas,
Sinun on perittävä AbstractRoutePredicateFactory-luokka ja kirjoitettava uudelleen soveltamismenetelmän logiikka. Applikaatiomenetelmässä saat ServerHttpRequest-objektin Exchange.getRequest() kautta, jotta saat pyyntöparametrit, pyyntömenetelmän, pyynnön otsikon ja muut tiedot.
1. Sen on oltava jousikomponentti, eli papu
2. Luokka on lisättävä
RoutePredicateFactory
päätteeksi
3. On oltava peritty
AbstractRoutePredicateFactory
4. Sinun on määritettävä staattinen sisäluokka ja määritettävä attribuutit saadaksesi vastaavat väitetiedot asetustiedostoon.
5. On yhdistettävä
pikakuvakeFieldOrder
Sitoa
6. Käytä Apply-komentoa arvioidaksesi loogisesti, onko tosi onnistunut vai false epäonnistunut.
Suodata (suodata ensin ja sitten reitti)
(1) Käsittele ensin pyydetty URL-osoite suodattimen kautta tai lisää, poista ja muokkaa joitain tietoja, kuten pyyntöotsikoita, evästeitä jne.
(2) Reititä sitten vastaavalle palvelimelle nacos-palveluluettelon kautta
Suodattimen rooli: Kun pyyntö tulee yhdyskäytävälle, voimme käsitellä pyynnön liiketoimintalogiikalla.
esimerkiksi:
(1) Pujota suodatin etuosan läpiPoista ensimmäinen kerros polkuja
(2) Voit lisätä pyyntöotsikon kaikkiin yhdyskäytävään tuleviin pyyntöihin ja määrittää sen sisällön.
(3) Voit asettaa evästeen kaikille yhdyskäytävälle tuleville pyynnöille jne.
Lisätietoja kaikista sisäänrakennetuista suodattimista on virallisella verkkosivustolla
https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gatewayfilter-factories
Tässä muutamia koodiesimerkkejä:
Testiosoite lähetetään yhdyskäytävän yhdyskäytävälle
Reititä seuraavaan @GetMapping-osoitteeseen reittien kautta ja seuraava koodi vastaanottaaksesi pyynnön ja vastataksesi
esimerkki 1:
Esimerkki 2
Esimerkki 3
Edellinen URL-osoite lähetetään yhdyskäytävälle, suodatetaan ja etuliitteenä on /mal-order. Tällä hetkellä, jotta palvelin saisi vastauksen, se on asetettava niin, että kaikki lähetetyt pyynnöt kuljettavat / mall-order.Tällä tavalla palvelin voi normaalisti vastaanottaa yhdyskäytävän reitittämiä pyyntöjä.
Esimerkki 4
Nykyiseen yhdyskäytävään lähetetyt pyynnöt ohjataan Baidu-verkkosivustolle
302 on vastauksen tilakoodi uudelleenohjauksen jälkeen
Mukautetut suodattimet

globaali suodatin
Ero paikallisten ja yleisten suodattimien välillä:
Osittainen: Osittainen on tietylle reitille ja se on määritettävä reitillä.
Yleinen: Kaikkia reitityspyyntöjä ei tarvitse tehdäMääritetty määritystiedostossa, Kun se on määritelty, se otetaan käyttöön
Sisäänrakennetut globaalit suodattimet:
Jos lb sisältyy reititysosoitteeseen, kuormituksen tasapainotuskäytäntö otetaan automaattisesti käyttöön, mikä vastaa ensimmäistä yllä olevaa yleistä suodatinta.
Nämä maailmanlaajuiset suodattimet arvioidaan ja käsitellään automaattisesti ilman hallintaamme.
Muokatut yleiset suodattimet (avainkohdat)
Tallenna kaikki käyttöpyynnöt ja tallenna ne lokimuodossa. Voit käyttää mukautettuja yleisiä suodattimia.
Tai voit mukauttaa yleisiä suodattimia käyttäjien kirjautumisen ja käyttöoikeuksien määrittämiseksi.
Globaalien suodattimien mukauttaminen on erittäin helppoa
1. Määrittele luokka ja jätä se springIOC-säilöön hallintaa varten, eli lisää jousimerkintöjä. @Compenent
2.
Peri GlobalFilter-käyttöliittymän, jos haluat kirjoittaa suodatinmenetelmän uudelleen sisään, sinun tarvitsee vain kirjoittaa menetelmän runko sisälle.
3.
Parametrien vaihtosisään Sisältää Siirry tähän yhdyskäytäväänKaikki pyydetyt tiedot, poista URL-osoite, otsikot, evästeet, polkuparametrit ja muut tiedot ja suorita sitten vastaava liiketoiminnan käsittely
4. paluuketju.suodatin(vaihto) Vapauta pyyntö
Pyydä kirjaamista
Lisää tämä komento yhdyskäytävän mikropalvelussa tähän, jotta voit ottaa kirjauksen käyttöön ja tallentaa kaikki yhdyskäytävän kautta kulkevat pyynnöt, mutta se lähetetään vain konsoliin.

yhdyskäytävän verkkotunnusten välinen määritys
Verkkotunnusten välinen: Kun http-pyyntö ei ole samassa IP-osoitteessa + samassa portissa, sitä kutsutaan verkkotunnusten väliseksi.
(Vain samaa IP-osoitetta + samaa porttia kutsutaan samaksi toimialueeksi, ja molemmat ovat tyytyväisiä samaan toimialueeseen)
1. Määritä yml , määritetty yhdyskäytävän seuraavalle tasolle

Määrityssisältöä voi muokata verkkotunnusten välillä itse
2. Aseta konfigurointiluokan kautta
sentinel yhdistettynä yhdyskäytäväyhdyskäytävään
Yhdessä sentinelin kanssa suorita vuonhallinnan alentaminen yhdyskäytävälle lähetetyille pyynnöille.
Sentinel on jaettu kahteen osaan
Edellytys: lataa sentinel-asiakas etäpalvelimelta, asenna ja suorita se
Yhdyskäytäväpalvelu vaatii vain:
Yhdyskäytäväpalvelun konfigurointitiedosto sekä sentinel-asiakkaan IP + portti, tilin salasana
Tällä tavalla sentinelin virtauksen ohjauksen alentaminen integroidaan.
sentinelillä on erityisiä sääntöjä yhdyskäytäväpalveluille, sen liitäntä eroaa ohjaimen menetelmien (palvelusisääntulojen) virtauksenohjauksen alentamisliittymästä.
Voit rajoittaa virtaa näiden sääntöjen perusteella vahvistustehtaalla.
Kulkua voidaan rajoittaa tietyn IP-osoitteen, etäverkkotunnuksen, pyynnön otsikon, URL-osoitteen parametrien ja evästearvon perusteella.
Mukauta sentinelin vastaussisältöä yhdistettynä yhdyskäytävään
olla olemassaKun yhdyskäytäväkerros on alentanut tai puhallettu sentinel-vuonohjauksella, se vastaa seuraavan sisällön pyytäjälle.,

Jos tällainen sisältö ei ole sitä, mitä haluamme, meidän on mukautettava tapaa vastata poikkeuksiin.On kaksi tapaa
Tapa 1: (yksinkertainen)
Kirjoita yml-kokoonpanossa yllä oleva sisältö kerroksittain,
kevät
.
pilvi
.
vartija
.
scg
.
perääntyä
.
vastaus
‐
kehon
=
'{"code":403,"mes":"
Nykyinen raja
"}'
Vastaustekstin jälkeinen sisältö on mukautettua vastaussisältöämme (json-muodossa)
, kirjoitettu sisältö on vastauksen sisältö
Tapa 2:

Aseta vastauksen tilakoodi, vastauksen tyyppi (json-muodossa) ja vastauksen sisältö ("Vedetty!")
Gateway korkea saatavuus
