KONG

KONG_第1张图片

背景

最近突然喜欢上了Openresty的这个开源项目,然后就开始了解&学习Openresty这个项目,发现基于Openresty做API开发也是蛮好玩的(我觉得业务不复杂的话真的可以玩,其实复杂的话也可以用),所以决定以后自己写的小东西就全部用这玩意(谁叫我的阿里云主机配置比较低呢)。Openresty是基于Nginx 与Lua 的高性能Web 平台,官方所有的Lua库都阻塞,难怪性能那么高,况且Nginx对内存的管理&使用是极其小气的(哈哈),Openresty这一层做权限控制&日志收集&web渲染很不错的。废话说完了,该说说主角Kong了,这是什么玩意,官方介绍:Open-Source, Microservice & API Management Layer built on top of NGINX,管理微服务&API的一个东东,它背后的公司Mashape做了一件这样的事情,就是做API&微服务的中间商,其实类比一下角色就是淘宝,只不过淘宝是交易商品,而这个是API的交易。现在的互联网的世界里,运行着由各种语言提供的各种各样API服务,

KONG_第2张图片
编程语言词云-侵权必删

并且大部分都是基于HTTP协议&rest构建的API服务,每个服务都会有各种各样频率、权限的控制,绝大部分就会产生了下面这个图结构:

KONG_第3张图片
从上图可以看出,其实有很多都是很通用的比如权限认证,频率限制,日志、缓存等, Kong的出现就是为了解决上面的问题,来看看 Kong的架构图(右边):
KONG_第4张图片
右边的图看来是不是清晰好多了,所以 mashape公司就是解决这样的问题而产生的,看到这个图是不是有继续想了解 Kong的架构了.

Kong介绍

  1. 编程语言: Nginx + Openresty + Lua
  2. 存储: Cassandra 分布式Nosql数据库
  3. 提供Rest API接口
  4. 每个节点是无状态的也就是说可以动态扩容
  5. 提供Authentication、Security、Traffic Control、Transformations的插件&很容易自定义插件
  6. 可以根据自己的业务需求定制开发

资料来源

  • https://github.com/Mashape/kong
  • http://stackshare.io/mashape/how-mashape-manages-over-15000-apis-and-microservices
  • https://getkong.org/docs/
  • http://nginx.org
  • https://github.com/openresty/openresty
  • https://www.lua.org/
  • https://www.wikiwand.com/zh/Cassandra

Next

  • Kong的自定义插件的开发
  • Kong的数据流
  • Todo
    ...

你可能感兴趣的:(KONG)