资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

如何进行Kong的原理分析-创新互联

这篇文章给大家介绍如何进行Kong的原理分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联不只是一家网站建设的网络公司;我们对营销、技术、服务都有自己独特见解,公司采取“创意+综合+营销”一体化的方式为您提供更专业的服务!我们经历的每一步也许不一定是最完美的,但每一步都有值得深思的意义。我们珍视每一份信任,关注我们的成都网站设计、网站制作、外贸营销网站建设质量和服务品质,在得到用户满意的同时,也能得到同行业的专业认可,能够为行业创新发展助力。未来将继续专注于技术创新,服务升级,满足企业一站式成都全网营销推广需求,让再小的高端网站设计也能产生价值!

概述

什么是Kong

Kong是一个在Nginx中运行的Lua应用程序,可以通过lua-nginx模块实现,Kong不是用这个模块编译Nginx,而是与OpenRestry一起发布,OpenRestry已经包含了lua-nginx-module,OpenRestry是Nginx的一组扩展功能模块。

为什么是Kong

Kong是一个Api Gateway,通过插件的形式提供负载均衡,日志记录,身份验证,速率限制,转换等功能。

Kong可以很轻松扩展功能,模块化,可以运行在任何基础设施上。

如何进行Kong的原理分析

术语

Route:是请求的转发规则,按照Hostname和PATH,将请求转发给Service。

Services:是多个Upstream的集合,是Route的转发目标。

Consumer:是API的用户,里面记录用户的一些信息。

Plugin:是插件,plugin可以是全局的,绑定到Service,绑定到Router,绑定到Consumer。

Certificate:是https证书。

Sni:是域名与Certificate的绑定,指定了一个域名对应的https证书。

Upstream:是负载均衡策略。

Target:是最终处理请求的Backend服务。

特性

  • 动态负载均衡

  • 基于散列的负载均衡

  • 断路器

  • 健康检查

  • Websockets

  • OAuth3.0

  • 日志记录

  • 安全性

  • Syslog

  • 监控

  • 转发代理

  • 认证

  • 速率限制

  • 故障检测和恢复

……

更多详情参考:https://docs.konghq.com/hub/

开源/企业对比

如何进行Kong的原理分析
如何进行Kong的原理分析
如何进行Kong的原理分析

架构

01架构图
如何进行Kong的原理分析

1.1版本以后支持无db模式

02执行流程

加入kong后,每个客户端对API的请求将首先到达Kong,然后被代理到最终API,在请求和响应之间,Kong将执行任何已安装的插件,扩展API功能集,Kong有效的成为每个API的入口点。

部署

Kong支持在任何基础设施上运行,支持docker、packages、vagrant、Homebrew、CloudFormation、AWS、Azure、Kubernetes等。

本次部署基于package方式,部署软件版本。

软件版本
Kong1.0.3
Postgresql9.6
Kong-dashboard3.5.0

01部署Postgresql

docker run 
--
name postgres 
-
e POSTGRES_PASSWORD
=
123456

-
p 
5432
:
5432

-
d postgres
:
9.6

02创建用户及数据库

  • 登陆

psql 
-
U postgres 
-
h 
10.20
.
1.190

-
p 
5432

#创建用户

create user kong 
with
 password 
‘
kong
’;

#创建数据库

create database kong owner kong
;

#退出控制台

\q

03下载安装包

wget:https://kong.bintray.com/kong-rpm/centos/7/:kong-1.0.3.el7.noarch.rpm

04安装配置

#安装rpm

yum install kong
-
1.0
.
3.el7.noarch
.
rpm

#拷贝配置

cp 
/
etc
/
kong
/
kong
.
conf
.
default

/
etc
/
kong
/
kong
.
conf

#配置

admin_listen 
=

0.0
.
0.0
:
8001
,

0.0
.
0.0
:
8444
 ssl

pg_host 
=

10.20
.
1.190

pg_port 
=

5432

pg_user 
=
 kong

pg_password 
=
 kong

pg_database 
=
 kong

保存并退出。

05启动kong

#数据库迁移,初始化表

kong migrations bootstrap

-
c 
/
etc
/
kong
/
kong
.
conf 
–
vv

#启动

kong start 
-
c 
/
etc
/
kong
/
kong
.
conf

06部署kong-dashboard

dashboard目前只支持kong版本1.0.3,kong最新版本不支持,使用pgbi/kong-dashboard镜像

#启动dashboard

docker run 
-
p 
8888
:
8080
 pgbi
/
kong
-
dashboard start 
--
kong
-
url http
:
//10.20.1.190:8001

使用

01upstream

如何进行Kong的原理分析

02target

如何进行Kong的原理分析

03service

如何进行Kong的原理分析

04routers

如何进行Kong的原理分析

05验证

如何进行Kong的原理分析

06插件

1.Base-auth

创建consumer

如何进行Kong的原理分析

创建Basic-auth-credential

如何进行Kong的原理分析

服务开启Basic-auth

如何进行Kong的原理分析

验证

未加用户信息,没权限,效果如下:

如何进行Kong的原理分析

加入用户信息后,效果如下:

如何进行Kong的原理分析

集成

01Dns SRV

Kong利用Dns轮询访问后端应用。

1.架构图

如何进行Kong的原理分析

2.检查服务域名

使用Dns做服务发现,查看boms-user-service服务如下:

# dig @10.20.11.118 -p 8600 boms-user-service.service.dc1.consul SRV

如何进行Kong的原理分析

含义解释:

如何进行Kong的原理分析

调用服务域名boms-user-service.service.dc1.consul,通过dns解析找到实例ip+port,如上例中10.20.11.118:8081。

3.修改kong配置

vim 编辑kong.conf,增加:

dns_resolver
:

127.0
.
0.1
:
8600

4.kong中使用

在kong中手动增加一个service,host填入服务域名,增加router,即可转发。

5.总结

需要手动在kong中创建服务,并且仅适用consul注册中心。

https://github.com/faizalpribadi/kongsul

02Agent 轮询

1.架构图

如何进行Kong的原理分析

agent负责监听注册中心,动态调用kong admin API创建upstream、target、service、router等资源。

用户通过boms平台调用admin API修改router信息,实现服务转发功能,在此数据基础之上在启用插件,丰富功能。

开发

01命令行

https://docs.konghq.com/1.0.x/cli/

02Admin API

https://docs.konghq.com/1.0.x/admin-api/

例如:

如何进行Kong的原理分析

关于如何进行Kong的原理分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页标题:如何进行Kong的原理分析-创新互联
标题路径:http://cdkjz.cn/article/ihooe.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220