目录
看完相关的书籍,简单做了总结,感觉还蛮有意思的,就记录下来了。
为什么需要微服务网关?
1.单体应用程序时代
客户端(web或者移动端)通过向后端应用程序发起一起restful调用来获取数据,负债均衡器(或者负载均衡层)将请求路由给n个相同的应用程序实例中的一个,然后应用程序会查询各种数据库库表,并响应返回给客户端。
2.微服务架构时代
单体应用被切割成多个服务,如果将所有微服务直接对外暴露,则会引发出一些问题
1)客户端需求和每个微服务暴露的细粒度api不匹配
2)部分服务使用的协议不是web友好协议;可能使用thrift 二进制的rpc,也可能使用amqp消息传递协议,这些api无法暴露出去
3)微服务难以重构。如果合并2个服务,或将一个服务拆分成2个或者更多服务,这类重构就非常困难了。
这时就需要微服务网关,网关在微服务架构中作用就是保护、增强和控制外部请求对于api服务的访问。
微服务架构总览
微服务架构中,网关位于接入层和业务服务层之间。微服务网关是微服务架构中的一个基础服务,其封装了系统内部架构,为每个客户端提供定制的api用来保护、增强和控制对微服务的访问。微服务网关是一个处于应用程序或者服务之前的系统,这样微服务就会被微服务网关保护起来,对所有调用者透明。