current position:Home>Springcloud microservice (XXIII) - gateway gateway basic knowledge

Springcloud microservice (XXIII) - gateway gateway basic knowledge

2022-01-26 23:43:18 Huaguo shuilian

One 、GateWay What is it?

GateWay yes spring Cloud Important components in - gateway , stay 1.x In all versions Zuul gateway .

GateWay It aims to provide a simple and effective way to API Routing , And provide some powerful filtering functions , for example : Fuse 、 Current limiting 、 Retry etc. . In order to improve the performance of the gateway ,SpringCloud Gateway Is based on WebFlux Framework implementation , and WebFlux The bottom layer of the framework uses high-performance Reactor Mode communication framework Netty.

Two 、 effect

Reverse proxy


flow control


Log monitoring


3、 ... and 、 Where is the gateway in the microservice architecture

Four 、 Workflow

Client to spring Cloud Gateway Request . And then in Gateway Handler Mapping The route matching the request was found in , Send it to Gateway Web Handler.

Handler The request is then sent to our actual service to execute the business logic through the specified filter chain , Then return . The filters are separated by dashed lines because the filters may send proxy requests before ("pre") Or after ("post") Execute business logic .

Filter stay “pre” Type of filter can be used for parameter inspection 、 Authority check 、 flow control 、 Log output 、 Protocol conversion, etc. ,

stay “post” The filter of type can do the response content 、 Response header modification , Log output , Flow monitoring plays a very important role .

Core logic = Routing and forwarding + Execute the filter chain

5、 ... and 、 Code implementation

5.1 newly build module


5.2 modify pom file


5.3 modify application.yml file

  port: 9527

    name: cloud-gateway-server
        - id: payment_routh     # The routing ID, There are no fixed rules, but it is required to be unique 
          uri: # The routing address provided after matching 
            - Path=/payment/get/** # Assertion , Route with matching path 

        - id: payment_routh2
          uri: # The routing address provided after matching 
            - Path=/payment/lb/**

    fetch-registry: true
    register-with-eureka: true

5.4 Create a new main startup class

public class GateWayMain9527 {
    public static void main(String[] args)

6、 ... and 、 test

start-up Eureka7001, start-up payment8001, start-up GateWay9527

request :

Both requests succeeded .

copyright notice
author[Huaguo shuilian],Please bring the original link to reprint, thank you.

Random recommended