说到网关市面上很多种,为什么市场有这么多网关?存在即合理。之前我有一个问题,为什么有了Spring-Gateway还要Nginx?回到负载均衡上去看,最开始的负载均衡在哪里做?
1.在DNS服务器上做,添加几个IP做轮询就可以了
2.服务器抗不住,衍生出了基于F5/LVS实现的四层负载均衡
3.基于成本性能等诸多方面的权衡,衍生除了Nginx/Apache这样的负载均衡软件
4.当SOA/微服务大行其道时,网关服务也随着而来
先看两张草图:当我们是一个微服务集群的时候是这个样子的:
当我们是多个微服务集群的时候,每一个业务单元业务属性不一样,多个微服务集群有可能技术栈不一样。不要手里面有一把锤子看什么都是钉子,也不要炫技耍酷用一些不务实的新技术。
这里说到了能力开放平台COP(Capability Open Platform),先聊一个COP,COP是一个围绕企业服务集成、接口托管和能力开放打造的稳定的、可靠的、可拓展的平台。
COP提供了API的全生命周期管理,包含创建、管理、调试、下线等功能;同时支持对API路由转发、认证鉴权、协议转换、流量控制等治理和安全方面的功能;更重要的是提供平台化的服务开放能力,提供API申请授权、安全控制等,将内部系统数据服务提供给外部合作伙伴使用。
COP可以快速实现新旧业务系统集成,以标准API的形式将系统服务开放给您;可以帮助企业轻松管理不同规模的API,提升研发协作效率。主要由两部分组成:API网关:作为业务网关提供了完善的API托管能力。涵盖API管理、治理、访问安全控制、审批授权等。能力开放平台:开放平台可以把内部API开放给内外部合作伙伴、第三方开发者使用。
说到能力,什么是能力呢?在一次培训的时候我听到过一个不错的解答:能力的定义:能力是能够顺利完成某些活动所必须具备的一组功能。通过将业务系统中的功能进行抽象和封装,形成业务能力,使之可以被其他的业务领域或应用系统所复用,从而减少重复开发,提高开发效率,促进业务协同,加速创新和数字化转型。包括:业务功能接口,业务组件接口,数据服务能力,公共工具组件,解决方案等。
我们经常听到微服务网关和API网关?微服务网关一般是微服务的套件,API网关既可以管理微服务的,也可以管理非微服务系统(单体系统、遗留系统等)。为什么要总的API网关?因为公司一旦大了,系统多了,跨区域协作的时候,就连微服务技术栈都用的不一样,何况还有遗留系统?你怎么搞? 推翻重来,技术栈统一吗?术业有专攻。
当然微服务网关可以用Nginx+Lua+OpenResty吗?可以的,只是注册不到注册中心上,岂不是调用业务接口验权和校验登录麻烦?如果流量大的网关,压根不会给你网络请求的机会,毕竟一次网络请求就是一次消耗,直接把数据推送到网关缓存。
当然一个系统可以有多个网关,每个网关处理自己擅长的也是可以的。不管是什么样的网关,适合自己业务系统就是最好的,网关只是客户端和服务端之间做链接的一个关口。因为我们系统在用APISIX,所以我接下来会系统的学一下,本篇梳理一下自己之前的疑问点,下一篇正式开始介绍APISIX网关。
精进自省:我们谁也改变不了,只能改变自己。学会松弛有度匀速发力付出努力,松弛有度每日进步一点点。