OpenResty 官网:官网地址看这个介绍,OpenResty 的功能不止于网关功能,还有高性能动态 Web 应用和服务 。
github:OpenResty github
它内部集成了大量精良的 Lua 库,库地址。
有很多 Nginx API for lua,你可以自己用 lua 来编写相关功能 。
当然,它还提供一个企业级(收费服务)产品,提供了很多关于 API 网关功能,Web 界面的操作 。
没有找到与开源产品功能对比,只有企业级产品功能介绍 。
3.1.2 KongKong 网关介绍kong 是一个高性能高可用易扩展的 API 网关和 API 服务管理的软件,它基于 OpenResty(Nginx+Lua) 。
它可以在物理机上运行也可以在 kubernetes 上运行 。
kong 官网:官网地址kong 也提供了一张使用网关前后的对比图,可以直观看到使用 API 网关的变化,API 自身的功能明显减少,都集成到 kong 里面:
github地址:kong github
文章插图
?(来自:https://github.com/Kong/kong)
一些通用的功能都集成到 kong 里,而后面 API/RPC 只需要编写业务相关功能就可以了,简化了 API 开发 。
kong 架构kong 架构图:
文章插图
- Admin API:通过 admin api 来管理 kong 的功能
- Plugins:插件,默认插件和用户自定义插件
- Clustering & Database:存储 kong 集群节点信息,API 信息,插件信息等 。目前提供了 PostgreSQL 和 Cassandra 2 种支持,如果需要高可用建议使用 Cassandra 。
- OpenResty:处理插件、运行插件程序
- Nginx:处理底层操作
- 开源产品和企业产品功能对比
可以看到,企业级产品比开源产品提供了丰富得多的功能,这样才能给企业提供价值 。
对比来看,开源功能相对企业版较少(开源产品功能也挺多),但是开源产品功能已经足够小公司用,还能自定义插件功能 。如果你有预算费用可以使用企业版,这样更快还有官方咨询服务 。如果没有预算,那开源也足够用,也可自己开发插件 。
- 开源产品功能
包括 HTTP 基本认证、密钥认证、CORS、监控、文件日志、API 请求限流、请求转发、缓存、SSL设置等基本功能,这些功能都是通过插件机制实现 。还有一些其他重要功能特性:
在 kong 3.0.x 文档中,还看到了蓝绿部署、cluster等功能,更多功能可以看文档 。
- 集群
kong 支持单节点集群和多节点集群 。kong 也给用户提供了自定义插件的功能,如果你有需要,自己可以编写插件来扩展 kong 的功能 。
单节点集群:连接到数据库(Cassandra 或 PostgreSQL)的单个 Kong 节点创建一个节点的 Kong 群集 。通过此节点的 Admin API 应用的任何更改都将立即生效 。
多节点集群:多节点集群它是通过定期后台作业与其他节点进行数据同步 。可以通过配置参数 db_update_frequency(默认 5 秒) 更改频率,这个频率更新有点慢 。所以 kong 集群数据一致性是最终一致性 。
- 扩展功能-编写插件
kong 插件文档,默认用 lua 语言来编写插件,也可以用其它语言 。
经验总结扩展阅读
- 王者荣耀10月8日微信每日一题答案是什么
- 2022火影忍者10月8日微信每日一题答案是什么
- 小天才z7可以登微信吗_小天才z7能不能下载微信
- 王寨服务区是哪个省的
- 在恋爱关系中不会让自己卑微的星座
- 六塘服务区属于哪里
- 原本高傲自大,谈恋爱就卑微成狗的星座
- 爱得卑微,为了爱情没有底线的星座
- 王者荣耀10月9日微信每日一题答案是什么
- 黑色沙漠微信每日一题10.9答案是什么