1.微服务网关层的高可用架构:
网关层是直接对外提供服务操作,对应需要设置高可用。网关层其本质是一个web服务的。
可以使用nginx做7层的高可用架构的。
upstream gateway {
server 127.0.0.1:9002;
server 127.0.0.1:9003;
}
location / {
proxy_pass http://gateway;
}
nginx上层可以做4层的高可用的。这样就可以构建出来出来一个高可用的网关层服务了。
对应的可以采用这样的架构设计微服务网关层的服务的。
网关层具体可以执行的功能是可以参考文档:https://zhuanlan.zhihu.com/p/289161648相关的理解的。
2.网关层的熔断和降级支持
网关层作为外部流量的入口,承担了所有的压力来源的。需要解决网关层的请求积累问题和快速响应的问题,这样的话,网关层才可以实现更加及时和快速的响应请求的。可以按照如下的流程来理解相关的网关层的熔断和降级机制的。
2-1:spring-cloud采用了webflux的reactor响应机制的,底层类似与netty的。是异步非阻塞的io模型的。天然的适合处理大量的数据请求的。
2-2可以将geteway层增加hystrix组件来实现熔断和降级的支持的。
org.springframework.cloud
spring-cloud-starter-netflix-hystrix
server:
port: 8089
spring:
application:
name: spring-cloud-gateway
cloud:
gateway:
routes:
- id: service_customer
#下游服务地址
uri: http://127.0.0.1:8083/
order: 0
#网关断言匹配
predicates:
- Path=/gateway/**
filters:
#熔断过滤器
- name: Hystrix
args:
name: fallbackcmd
fallbackUri: forward:/defaultfallback #降级策略,特定的页面处理降级
- StripPrefix=1
#熔断器配置
hystrix:
command:
default:
execution:
isolation:
strategy: SEMAPHORE
thread:
timeoutInMilliseconds: 3000
shareSecurityContext: true
#网关日志输出
logging:
level:
org.springframework.cloud.gateway: TRACE
org.springframewo