随着zuul不再维护,spring官方有意推Spring Cloud Gateway为下一代网关,由于Spring Cloud Gateway是通过Webflux实现的,完全使用了响应式web框架,同时Webflux又是通过Reactor实现的,因此为了更好是使用Spring Cloud有必要学习一下响应式编程,Webflux,Reactor 响应式编程 开发人员一般都会写一些监控的脚本,通过定时的访问,来确定一写事件是否发生,发生的话将内容通过邮件发送。如果对时间粒度要求宽泛还好,如果要求比较严格,就要一直访问,造成不必要的资源浪费。为了解决这种命令式编程的痛点,响应式编程应运而生,通过设置消息的订阅者和消息的发送者来解决这个问题,通过事件驱动,一旦事件发生,发送者将消息推送给订阅者。 举个收外卖的例子: 你今天点了一个外卖,但是你不知道何时会送达,小区外卖进不来,你只能到小区门口去拿: 命令式:由于不知到几点到,你就每隔5分钟去小区门口看一下,如果外卖到了就拿回来,没到进入下个循环 响应式:小哥到了小区门口,打电话通知到小区门口去外卖 根据上面的例子明白响应式编程这种事件驱动的好处。 而且响应式将发和收拆开将同步过程拆成异步的过程,对合理利用资源提升效率更有帮助 Reactor 3介绍 Reactor 3框架是Pivotal(Spring 母公司)基于Reactive