配合《【架构】分布式服务架构与微服务架构》阅读更佳。
1)网关
1.1 什么是网关?
广义上,只要是进入某个网的"入口",都可以叫做网关,即只要连接两个不同的网络都可以叫网关。
- 在软件架构中,网关这个词的含义已被扩展到了应用与服务层面。
- 比如,在提供 Restful API 的服务接口,一般被称作“应用网关”。
- 这里,网关作为一个对外提供应用服务的媒介,一方面对外提供接口服务,接受请求并给予应答,另一方面,又屏蔽内部实现细节,只暴露黑盒调用方式与函数,保护了内部逻辑与结构。
- 比如,在提供 Restful API 的服务接口,一般被称作“应用网关”。
*注意区分网关和网桥
- 网桥:工作在数据链路层,在不同或相同类型的 LAN 之间存储并转发数据帧,必要时进行链路层上的协议转换。可连接两个或多个网络,在其中传送信息包。
- 网关:是一个大概念,不具体特指一类产品,只要连接两个不同的网络都可以叫网关。
- 网桥一般只转发信息,而网关可能进行包装。
1.2 为什么需要网关?
随着单体应用程序架构向分布式架构 / 微服务等架构演变,对网关的需求逐渐产生:
- 然而,随着需求的不断增加, 越来越多的人加入开发团队,代码库也在飞速地膨胀。慢慢地,单体应用变得越来越臃肿,可维护性、灵活性逐渐降低,维护成本越来越高。
分布式应用
中级架构,分布式应用:中间层分布式 + 数据库分布式。
- 是单体架构的并发扩展,将一个大的系统划分为多个业务模块,业务模块分别部署在不同的服务器上,各个业务模块之间通过接口进行数据交互。
- 数据库也大量采用分布式数据库,如redis、ES、solor等。
- 通过LVS/Nginx代理应用,将用户请求均衡的负载到不同的服务器上。
- 架构图:
- 该架构相对于单体架构来说,提供了负载均衡的能力,大大提高了系统负载能力,解决了网站高并发的需求。
微服务架构
微服务架构主要是中间层分解,将系统拆分成很多小应用(微服务),微服务可以部署在不同的服务器上,也可以部署在相同的服务器不同的容器上。
- 单应用的故障不会影响到其他应用,单应用的负载也不会影响到其他应用,其代表框架有Spring cloud、Dubbo等。
- 架构图:
- 微服务中的网关通常指的是 API Gataway,即将所有API的调用统一接入API网关层,由网关层负责接入和输出。
API Gateway的出现:
举例来说:
- 微服务将原来的单体应用进行微服务化。将原来集中于一体的功能(如商品、订单服务)进行拆分,每个功能模块又有各自的自成体系的发布、运维等功能:

- 原先IOS、Android、PC客户端调用服务的地方,需要多个URL地址,有订单的、商品的、用户的。微服务化后就必须有统一的出入口,这种情况下,API Gateway就出现了。
API Gateway很好的解决了微服务下调用、统一接入等问题,如下图所示:




最低0.47元/天 解锁文章
2003

被折叠的 条评论
为什么被折叠?



