网关: 后端
第一层:接入层。主要负责一些长短连接的接入、限流、黑白名单、路由、负载均衡、容灾切换等。这一层所采用的技术是Nginx+lua的方式。缓存
第二层:分发层(或者叫:网关的业务层)。它更多的是NIO+Serviet3异步的技术。负载均衡
在这一层会作一些数据校验:签名的校验、时间的校验、和版本、方法等。异步
缓存的技术,线程隔离、熔断等技术也都是在这一层实现的。性能
第三层:后端各类各样的业务API(业务接口)。这些接口经过网关对外进行暴露。lua
降级线程
首先,降级开关要集中化管理,好比经过zookeeper推送到各个应用服务。接口
经过多维度的流量控制和降级的策略,好比按照单个API或API+地域、运营商等维度进行控制。一旦出问题了,咱们会把多种组合方式进行降级,还能够根据秒/分钟级等不一样维度进行流量控制,从而达到精细化流量管理。内存
熔断路由
后端系统出现问题了,达到某个阀值了,系统就可以自动进行关闭降级,这是熔断的大致思路。
灵活的配置
好比当某个接口接连三次访问超时或返回错误的话就自动熔断;
好比连续三次这种方法调用的性能都超过了50毫秒,就会自动对这个方法进行熔断;
熔断以后就至关于降级了,再次调用的话会返回失败,就是直接拒绝返回了。
熔断恢复
好比5秒或一分钟以后出来一个半打开状态,再次醒来以后,它会去试探一下当天这个服务是否已经OK了,若是没有问题了,它就会去把你以前熔断的API业务再次打开,可以正常对外提供服务。
监控
第一层:硬件监控。好比系统的CPU内存、网卡等。
第二层:自定义监控。好比直接报警。
第三层:性能监控。好比每一个接口的TP指标,TP999 TP99 TP90 TP50四种性能指标做为SLA的参考标准,还有可用率等,这个对于网关来讲相当重要。
第四层:心跳监控。网关系统线上有不少机器,每一个机器如今的状况怎样?有没有存货等。
第五层:业务层监控。好比咱们会有一些JVM监控,监控Nginx链接数等。
https://mp.weixin.qq.com/s/6nYROabwFT1o9ppH2TbPhA