微服务-分布式API网关初步了解

分布式API网关初步了解

1 背景

每个微服务常用的功能,例如鉴权,限流,日志,监控等功能放在一个地方实现,于是可以使用分布式API网关去实现,

在这里插入图片描述

2 传统和分布式API网关做法

在这里插入图片描述

将客户端以及service需要访问后端的服务,统一通过分布式API网关,将具体的请求进行代理到后端的web服务器

3 kong请求流程

  1. 总体流程

在这里插入图片描述

客户端请求发起然后到达分布式API网关,API网关进行安全校验鉴权等操作,再把具体的请求在路由到后端的微服务当中,理解为反向代理即可

  1. 架构设计

kong是在nginx基础上开发的,具体是nginx上层嵌入形成openresty,再上层进行一个开发变成kong
在这里插入图片描述

4 API网关功能

在这里插入图片描述

  1. 后端web服务器功能

work进程4个,connection是1024,http服务器中有server并且listen端口是7001,请求应答式

实现的功能是请求过来后,会打印出请求的远端的ip地址

在这里插入图片描述

启动下服务

在这里插入图片描述

  1. nginx

监听端口,转发上游服务器处理

在这里插入图片描述

在这里插入图片描述

  1. openresty

master进程结束后调用init_by_lua的接口,然后fork出四个不同的进程,初始化后调用init_worker_by_lua接口,现在就是openresty启动完毕

当客户端发起请求,nginx把http请求分成11个阶段,openresty就是在nginx上嵌入了一些lua代码,例如在握手阶段修改证书,设置具体属性,重写url,进行鉴权(黑白名单,用户认证token),而后才开始处理请求,请求内容本地生成(heade和body可以用来过滤),或者内容生成依赖于upstream上游服务器,转发给到上游服务器

最终打印日志

总结就是openresty在nginx上面嵌入了lua动态语言代码

在这里插入图片描述

lua协程

原来是需要主线程多次使用callback回调完成功能,通过协程可以一起实现

在这里插入图片描述

  1. kong

在openresty上实现应用

在这里插入图片描述

在这里插入图片描述

插件机制

在这里插入图片描述

kong的抽象

路由route,service,upstream,target
在这里插入图片描述

在这里插入图片描述

5 kong操作

  1. 配置upstreams

在这里插入图片描述

在这里插入图片描述

加一个target

在这里插入图片描述

  1. 配置services

在这里插入图片描述

填写route

在这里插入图片描述

  1. 配置插件plugins

在这里插入图片描述

  1. consumer

用于用户安全认证

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值