前言
当我们的网关Gateway程序开发完成之后,需要部署到生产环境,这个时候你的程序不能是单点运行的,肯定是多节点启动(独立部署或者docker等容器部署),防止单节点故障导致整个服务不能访问,网关是对客户端的入口与出口,在生产运行中极为重要,哪怕是简单的重启也会导致部分请求的丢失。
网关的路由配置这个时候就是一个大问题,是代码里面编写还是配置文件配置?他们都有一个致命的缺点,当有新的程序需要接入到网关进行路由或者有服务需要下线时候需要修改代码或者配置,然后重启整个网关程序,导致其他正常的服务路由受到了影响。
所以在实际生产环境中为了保证高可靠和高可用,是尽量要避免重启网关,所以实现动态路由是非常有必要的;
本文主要介绍Spring Cloud Gateway 实现的思路,并且把路由信息存放在外部源中,这粒以Nacos为数据源来讲解。
1.三重心智模型
先给大家科普一个概念,“三重心智模型”。
认知科学家斯坦诺维奇,将人的心智模式,分成了三个部分。
第一层是自主心智,自主心智是我们通过进化与内隐学习获得。比如,我们看到蛇就会害怕,情绪反应,以及文气,车感,网感这些说不清道不明的内隐知识,都是被自主心智所控制。
第二层是算法心智,算法心智就是传统意义上智力测验,考察的能力是记忆、处理速度、逻辑推理等等。
第三层是反省心智,反省心智关注系统目标、与目标相关的信念、以及基于当前系统目标和信念的最优化行动。