~本人的案例是承接上面的需要朋友可以 访问这里~
微服务网关概述
在学习完前面的知识后,微服务架构已经初具雏形。但还有一些问题:
- 不同的微服务一般会有不同的网络地址
- 客户端在访问这些微服务时必须记住几十甚至几百个地址
- 这对于客户端方来说太复杂也难以维护。
- 微服务项目开发, 每一个功能都对应一个模块~
而每个模块又都是一个独立的小型项目工程:
具有独立的 ip 端口...
- 这种情况就会导致: 1.在某些场景下存在跨域请求的问题 2.加大身份认证的难度,每个微服务需要独立认证 3.客户端会请求多个不同的服务,需要维护不同的请求地址,增加开发难度
因此,我们需要一个微服务网关
- 介于客户端与服务器之间的中间层:
所有的外部请求都会先经过微服务网关。
- 客户端只需要与网关交互,只知道一个网关地址即可
这样简化了开发还有以下优点:
- 易于监控
- 易于认证
- 减少了客户端与各个微服务之间的交互次数
什么是微服务网关
- API网关是一个
服务器
, 是系统对外的唯一入口
客户端不需要在记录 大量的微服接口只需要记住一个 网关服务就行了, 通过它就可以找到需要的服务接口; - API网关方式的核心要点是: 所有的 客户端 和 消费端 都通过统一的网关接入微服务.
在网关层处理所有的非业务功能。
- 通常,网关也是提供
REST/HTTP的访问API
。服务端通过API-GW注册和管理服务。
作用和应用场景
网关具有的职责如:
身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。 当然,最主要的职责还是与“外界联系”。
常见的API网关实现方式
Kong
- 基于
Nginx
Lua
开发 `稍后整理Nginx笔记!` 优点:
性能高,稳定,有多个可用的插件(限流、鉴权等等)可以开箱即用。问题:
只支持Http协议;二次开发,自由扩展困难;提供管理API,缺乏更易用的管控、配置方式。