网站开发的晋升晋升空间路径北京网络推广公司wyhseo
对微服务网关的一些总结
 一. 什么是网关
     网关是位于NGINX(或没有)与真实微服务间的转发服务。
     用户通过HTTP接口,连接到NGINX,然后NGINX反向到M个网关。
     网关根据[服务注册与发现],进行转发请求到具体的微服务上。
     由于网关可编码,对安全,扩容,认证等通用的需求,变得比较容易实现。
 二. 为什么用网关
     1. 聚合
        支持服务注册与发现,根据不同的服务前缀,转发请求到不同的微服务。
        与NGINX的反向代理功能类似.
     2. 负载均衡
        同类型微服务之间进行负载均衡,采用轮询算法。
        跟NGINX的负载均衡类似。
     3. 限流熔断
        跟NGINX类似,可以编码实现,逻辑可以更加细致,比较容易。
     4. 授权
        将通用的认证功能,放到网关实现。
     5. 安全       
        可代码实现具体的逻辑,完成类似于WAF的功能。
     相对于NGINX,微服务网关具备可编码的优势。
     可以做更多的功能。
     所以才有一些网关(Kong,NGINX-LUA)基于NGINX扩展了支持LUA.
     但是对于数据库的访问,缓存服务的访问等等,还是使用JAVA更具有优势。
 三. 怎么用网关
     网关有很多,Kong,Zuul,Gateway,等等。
     甚至可以用NGINX直接做动态配置更新。
     使用的时候,具体问题具体分析。
     结合当前的技术栈,与具体的项目需求,以及当前的现状,来做选择。
     如果业务比较单一,或者用量比较少,或者开发人员只有你一个的话,
     那么单体服务也没有问题,可以起多个实例,前面用NGINX做个负载均
     衡就可以了。
     实际多数的后端服务,瓶颈往往是数据库的IO。
 四. 技术实现
     (ZUUL.Gateway)
     过滤器的模式,当WEB服务获取到HTTP请求的时候,在三个处理阶段做处理。
     因此对应了三种过滤器类型:
     1. Pre
     2. Route
     3. Post
     将这些过滤器根据顺序组织好,然后挨个调用。
     共同组合成了网关的各个功能。
