無廢話7小時學會使用Spring Cloud Alibaba(5)GateWay網關

一 網關的作用

反向代理,鑑權,流量控制,熔斷,日誌監控等等。二 創建自定義網關

import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

import java.util.Date;

@Component
@Slf4j
public class MyGateWayFilter implements GlobalFilter, Ordered {

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        log.info("start access gateway:  "+new Date());

        String token = exchange.getRequest().getQueryParams().getFirst("token");
        log.info("token: "+token);

        if(token == null)
        {
            log.info("token不能爲空");
            exchange.getResponse().setStatusCode(HttpStatus.NOT_ACCEPTABLE);
            return exchange.getResponse().setComplete();
        }

        return chain.filter(exchange);

    }

    @Override
    public int getOrder() {
        return 0;
    }
}

三 nginx負載均衡到網關

(1).將網關微服務上傳到192.168.1.1,192.168.1.2,192.168.1.3 服務器,通過命令啓動。

nohup java -jar cloudalibaba-gateway.jar >log.file 2>&1 &


(2). nginx.conf配置文件 

upstream 192.168.1.13{
        server 192.168.1.1:9004;
        server 192.168.1.2:9004;
        server 192.168.1.3:9004;
    }

    server {
        listen       9004;
        server_name  192.168.1.13;
        location / {
           proxy_pass http://192.168.1.13;
        }
}


四 下訂單微服務通過網關訪問

http://192.168.1.13:9004/order/save?userId=1&productId=1&amount=1&token=1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章