Kong组件分享
2023-09-06 10:11:25 3 举报
AI智能生成
Kong组件分享
作者其他创作
大纲/内容
被代理角色通过这个代理访问目标角色完成一些任务的过程称为代理操作过程,如同生活中的专卖店,客人到某果专卖店买了一台手机,这个专卖店就是代理,被代理角色就是某果厂家,目标角色就是用户。
代理服务器
代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息。
对客户端访问授权,上网进行认证。
做缓存,加速访问资源。
访问原来无法访问的资源。
正向代理,它代理的是客户端,是一个位于客户端和原始服务器之间的服务器,为了从原始服务器获取内容,客户端向代理发送一个请求并指定目标(原始服务器)。然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
正向代理
负载均衡,通过反向代理服务器来优化网站的负载。
保证内网的安全,通常将反向代理作为公网访问地址,Web 服务器是内网。
客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。
多个客户端给服务器发送的请求,Nginx 服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx 扮演的就是一个反向代理角色。
反向代理
接收到的请求按照顺序逐一分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,Nginx 会自动将该服务器剔除出队列,请求受理情况不会受到任何影响。这种方式下,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率。
weight 轮询
每个请求按照发起客户端的 ip 的 hash 结果进行匹配,这样的算法下一个固定 ip 地址的客户端总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下 Session 共享的问题。
ip_hash
智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配。响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少,它是结合了前两者的优点的一种调度算法。但是需要注意的是 Nginx 默认不支持 fair 算法,如果要使用这种调度算法,请安装 upstream_fair 模块。
fair
按照访问的 URL 的 hash 结果分配请求,每个请求的 URL 会指向后端固定的某个服务器,可以在 Nginx 作为静态服务器的情况下提高缓存效率。注意 Nginx 默认不支持这种调度算法,要使用的话需要安装 Nginx 的 hash 软件包。
url_hash
负载均衡
Nginx高性能的HTTP和反向代理服务器IMAP/POP3/SMTP 代理服务器
Kong是一个基于Nginx Lua模块写的高可用、易扩展的开源API Gateway项目。由于Kong是基于Nginx的,所以可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求。
基础概念
在没有引入网关之前,为了保障交互的安全,每个服务都需要自己实现一套权限校验(Auth)、日志、限流、监控等方案。这样就不太好,各种成本很高。而在引入API网关之后呢,像鉴权、监控、安全、限流、日志、缓存等等方案都可以统一由网关实现。各个服务只需要专注于自己的业务实现就OK,可以帮助其实现敏捷开发,提升团队的迭代效率。
解决什么问题?
拦截请求/响应生命周期
扩展基础NGINX
可通过Lua编写脚本
OPENRESTY
久经考验的高性能的其础层
HTTP和反向代理服务器
处理底层的操作
NGINX
Nginx和OpenResty的意思是:kong是一款基于OpenResty (Nginx + Lua) 编写的高可用、易扩展的API Gateway。我们可以直接把Kong理解成是Nginx,但是Kong的功能不止于Nginx。
选择Cassandra或PostgreSQL
从终端扩展到全局集群
高性能的内存数据缓存
CLUSTERING &DATASTORE
kong的配置文件可以支持化的存储在NoSQL中,可选:cassandra、postgreSQL。
用Lua创建插件
自由扩展功能
与第三方服务集成
PLUGINS
如果想拓展kong的功能,只需要提供对应的插件就行。有一些现成的插件可以直接用,可以自定义插件。
通过RESTfulAPI管理Kong
自动化/编排CI/CD和DevOps
可通过插件扩展管理功能
RESTFUL ADMINISTRATION API
它支持通过Restful API的方式来操作操作和配置Kong(管理nginx的配置文件)。而且kong有专属的dashboard,支持在可视化的界面下和Restful API交互,实现对kong的可视化配置。
组件构成
Kong Gateway正在处理身份验证,因此该服务不需要自己的身份验证逻辑。
该服务仅接收有效请求,因此不会浪费周期来处理无效请求。
记录所有请求以集中查看流量。
默认情况下,Kong Gateway在其配置的代理端口8000和8443上监听流量。它评估传入的客户端API请求,并将其路由到适当的后端API。在路由请求和提供响应时,可以根据需要通过插件应用策略。
流量处理
数据蜂巢中的部署Kong组件时的注意事项
通过查看Kong日志排查问题
Kong
Kong组件分享
0 条评论
回复 删除
下一页