一 網關的作用
反向代理,鑑權,流量控制,熔斷,日誌監控等等。二 創建自定義網關
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