zuul1與spring-cloud-gateway的區別
Zuul:
是netflix公司的專案,本質上是web servlet,基於JavaEE Servlet技術棧,使用阻塞API,處理的是http請求,沒有提供非同步支援,不支援任何長連線,比如websocket。
依賴:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
yml配置:
#java www.fhadmin.cn
server:
port: 10000
spring:
application:
name: user-service-zuul
eureka:
instance:
prefer-ip-address: true
ip-address: 127.0.0.1
client:
register-with-eureka: true
service-url:
defaultZone: http://eureka:7000/eureka,http://eureka01:7001/eureka,http://eureka02:7002/eureka
zuul:
routes:
zuul-path:
path: /zuul-path/**
#連線:http://localhos:10000/zuul-path/findUserInfo/1
spring-cloud-gateway:
Spring Boot和Spring Webflux提供的Netty底層環境,不能和傳統的Servlet容器一起使用,也不能打包成一個WAR包,使用非阻塞API,支援websocket。
依賴:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
yml配置:
#java www.fhadmin.cn
# 應用名稱
spring:
application:
name: ticket-gateway
cloud:
nacos:
discovery:
server-addr: localhost:8848
gateway:
routes:
- id: user-route
uri: lb://user # 負載均衡方式訪問user服務
predicates: # 匹配條件
- Path=/api/user/**
filters:
- StripPrefix=2
# ==> http://{user地址}/{**代表的實際路徑}
# 埠
server:
port: 10000
#連線:http://ip地址/請求路徑?引數
zuul1與spring-cloud-gateway的區別:
1、gateway對比zuul多依賴了spring-webflux,內部實現了限流、負載均衡等,擴充套件性也更強,但同時也限制了僅適合於Spring Cloud套件。
zuul則可以擴充套件至其他微服務框架中,其內部沒有實現限流、負載均衡等。
2、zuul僅支援同步,
gateway支援非同步。
3、gateway執行緒開銷少,支援各種長連線、websocket,spring官方支援,但運維複雜,
zuul程式設計模型簡單,開發除錯運維簡單,有執行緒數限制,延遲堵塞會耗盡執行緒連線資源。
本作品採用《CC 協議》,轉載必須註明作者和本文連結