nature

nature is api gateway, just show you for how to bulid api gateway

View on GitHub

扯一扯技术选型

我们来了解一下业界网关的技术选型 (这里先简单介绍,部分技术名词有缘在未来介绍,如果无缘就只有搜索了,毕竟每一个都解释清楚是挺浩大的工程)

从零开始

这无疑是成本巨大的,除了开发成本之外,还有极大的信任成本,如何让别人能相信而采用编写的网关,特别是大家偏信“大厂背书”四字的时代?

信任成本无法估量,而开发成本大体可以从技术内容上估量

基于巨人肩上

理论所有开源的现成代理程序源码都是我们可以学习的巨人。

站在巨人肩膀上有两种方式:

后续如何开展构建网关的说明

相信经过这几篇非常简单的文章,除了少部分牛人之外,大家可能或多或少都发现仅仅技术概念就有很多不太了解的。

为了降低大家对于底层技术概念理解以及相关技术复杂的学习门槛,后续会基于openresty这样的巨人,以外置装甲的方式为大家介绍api gateway 如何建立。

选择openresty主要为以下两个原因:

  1. nginx 确实很强大,无论功能和性能都是业界顶尖,优秀的模块设计,无论patch或者扩展功能都很方便,并且业界的信任度高。
  2. 虽然需要学习lua这一小众语言,但是其学习成本非常低,语言非常小,比大家写c,或者了解go、c#等语言本身所需时间极少,这样大家可以更关注api gateway网关的本身的内容。

当然openresty并不是完美的,在有些方面也存在一些局限,这里简单列举两点:

  1. 多进程模型在很多方面比多线程编程复杂

    比如数据同步,原本简单地访问次数计数,多进程实现不得不借助进程间通信等复杂技术才能实现

  2. nginx 静态配置机制导致流量有损,特别在tcp情况特别麻烦

所以我们先通过openresty了解api gateway,未来有缘说不定也许大概还可以介绍其他技术

目录