背景
最近突然喜欢上了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服务,
并且大部分都是基于HTTP协议&rest构建的API服务,每个服务都会有各种各样频率、权限的控制,绝大部分就会产生了下面这个图结构:
Kong
的出现就是为了解决上面的问题,来看看Kong
的架构图(右边):mashape
公司就是解决这样的问题而产生的,看到这个图是不是有继续想了解Kong
的架构了😄.
Kong介绍
- 编程语言: Nginx + Openresty + Lua
- 存储: Cassandra 分布式Nosql数据库
- 提供Rest API接口
- 每个节点是无状态的也就是说可以动态扩容
- 提供Authentication、Security、Traffic Control、Transformations的插件&很容易自定义插件
- 可以根据自己的业务需求定制开发
资料来源
- 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
...