什么是API网关?部署API网关有哪些方式?

知梧 393 2022-10-27


本文关于什么是API网关?部署API网关有哪些方式?

文将介绍几种部署Goku API Gateway的方式,最快一分钟可使用上为网关,详情请看全文。

什么是Goku API Gateway?

Goku API Gateway (中文名:悟空 API 网关)是一个基于 Golang 开发的运行在企业系统服务边界上的微服务网关。当您构建网站、App、IOT甚至是开放API交易时,Goku API Gateway 能够帮你将内部系统中重复的组件抽取出来并放置在Goku上运行,如进行用户授权、访问控制、防火墙、数据转换等;并且Goku 提供服务编排的功能,让企业可以快速从各类服务上获取需要的数据,对业务实现快速响应。

Goku API Gateway 的社区版本(CE)拥有完善的使用指南和二次开发指南,代码使用纯 Go 语言编写,拥有良好的性能和扩展性,并且内置的插件系统能够让企业针对自身业务进行定制开发。

使用 Goku API Gateway 能让业务开发团队更加专注地实现业务。

一套完整的 Goku API Gateway 由一个 控制台 和 若干个 网关节点 组成。节点通过IP地址注册在控制台中,控制台内的配置项会对所有节点生效。控制台用于配置网关的运行信息,例如访问策略、转发的API信息等等;节点用于实际的转发。当控制台上发布了最新的配置,所有节点都会主动更新自己的运行配置;在控制台发布的配置支持版本管理,可以手动发布和回滚。

Goku API Gateway支持管理多个网关节点的集群,实现让用户访问不同的集群从而访问不同的服务地址的目的。

下面是以两个DC(Data Center)为例的部署架构简图:

Goku的网关节点除了能够直接获取控制台的配置外,也支持采用直接读取配置文件的方式来使用。配置文件可以通过EOLINKER 官方提供的线上控制台来导出,线上控制台可让用户方便修改配置,修改完后导出配置文件,放到节点的服务器上即可。

线上控制台地址:http://goku-console.eolinker.com

使用线上控制台的话无法区分不同集群,如需使用更强功能建议还是部署自己的私有云控制台。

本文给出几种Goku API Gateway的部署方式:

一、节点docker+线上控制台

二、节点docker+线上控制台Docker

三、使用安装包直接安装

部署安装时需要用到的链接:

  • 节点Docker:https://hub.docker.com/r/eolinker/goku-api-gateway-ce-node

  • 控制台Docker:https://hub.docker.com/r/eolinker/goku-api-gateway-ce-console

  • 线上控制台:http://goku-console.eolinker.com

  • 安装包地址:https://github.com/eolinker/goku-api-gateway

一、节点Docker+线上控制台

Goku API Gateway提供节点Docker和控制台Docker,最快的方式就是仅部署节点Docker,然后通过线上控制台来配置网关信息,配置完成后导出文件并上传到节点服务器,最后启动节点Docker。

使用步骤

1、配置完毕后,在线上控制台的首页导出配置:

2、将配置上传到服务器,启动docker:

docker run -dt -p {转发端口号}:6689 \
-v {日志挂载地址}:/app/goku-ce/node/work \
-v {配置文件地址}:/app/goku-ce/node/work/goku-node.json \
eolinker/goku-api-gateway-ce-node

 

完整配置示例如下:

docker run -dt -p 6689:6689 \
-v /app/goku-ce/node/work:/app/goku-ce/node/work \
-v /app/goku-ce/node/versionConfig_b14a1af4-b961-4dfb-8bfe-d4d157dd651e.json:/app/goku-ce/node/work/goku-node.json \
eolinker/goku-api-gateway-ce-node

 

用户通过网关访问API地址为:{{节点IP:端口}}/{{转发URL}} 。

二、节点Docker+控制台Docker

(一)部署控制台

1、 创建goku-ce专属网络

docker network create --driver bridge --subnet=172.18.12.0/24 --gateway=172.18.12.1 goku-ce

 

2、运行控制台程序

docker run -dt -p {浏览器访问端口号}:7000 \
-v {sqlite数据库挂载地址}:/app/goku-ce/console/work \
-e GOKU_ADMIN_PASSWORD={控制台admin密码} \
--network=goku-ce \
--ip 172.18.12.2 \
--name goku-ce-console \
eolinker/goku-api-gateway-ce-console

 

完整示例启动如下:

docker run -dt -p 7000:7000 \
-v /app/goku-ce/work:/app/goku-ce/console/work \
-e GOKU_ADMIN_PASSWORD=123456 \
--network=goku-ce \
--ip 172.18.12.2 \
--name goku-ce-console \
eolinker/goku-api-gateway-ce-console

 

3、 登录控制台

打开浏览器,输入 域名/IP+浏览器访问端口号,进入控制台页面,输入用户名(admin)及密码(启动设置的admin密码)进行登录:

(二)部署网关节点

1、进入控制台,新建节点

节点IP需要和启动节点docker容器时绑定的IP 一致:


2、在控制台生成并发布配置

发布配置后,节点会读取控制台的最新配置来运行。

3、启动节点docker容器

docker run -dt -p {转发端口号}:6689 \
--network goku-ce \
--ip {节点IP} \
-v {日志挂载地址}:/app/goku-ce/node/work \
-e GOKU_ADMIN_ADDRESS={控制台IP}:7005 \
eolinker/goku-api-gateway-ce-node

 

完整示例如下:

docker run -dt -p 6689:6689 \
--network goku-ce \
--ip 172.18.12.3 \
-v /app/goku-ce/work:/app/goku-ce/node/work \
-e GOKU_ADMIN_ADDRESS=172.18.12.2:7005 \
eolinker/goku-api-gateway-ce-node

 

4、查看节点运行状态

进入节点管理页面,若节点的状态显示为运行中,则节点正常启动:

三、通过安装包直接部署

安装准备:到Github上下载最新的Release包。

项目地址:https://github.com/eolinker/goku-api-gateway

(一)安装控制台

1、安装命令:

  mkdir -p {install dir}
  mv console-{version}.tar.gz {tmp}/
  cd {tmp}/
  tar -xzf console-{version}.tar.gz
  cd console-{version} && ./install.sh {install dir}
  cd {install dir}

 

2、首次安装进入{install dir}/console/config文件夹,编辑配置文件内容,配置语法参照yaml。

goku.conf 如下:

admin_bind: 绑定节点获取配置的地址,形如IP:Port,填写内网地址或本机地址
listen_port: 管理后台监听端口,可以开放给外网访问
db_type: 数据库类型,v3.1.0只支持 sqlite
db_path: sqlite db的文件路径

 

3、进入{install dir}/console文件夹,运行run.sh文件以启动控制台。

首次运行:

./run.sh start {config file} 管理员账号 管理员密码

 

示例:

./run.sh start config/goku.conf admin 123456

 

非首次运行:

./run.sh start|restart

 

4、在浏览器输入服务器IP+程序监听端口号,进入控制台页面

注:程序监听端口号为goku.conf的配置项listen_port的值

(二)、节点安装

1、安装命令:

  mkdir -p {install dir}
  mv goku-node-{version}.tar.gz {tmp}/
  cd {tmp}/
  tar -xzf goku-node-{version}.tar.gz
  cd goku-node-{version} && ./install.sh {install dir}
  cd {install dir}

 

2、在控制台新建节点

(1)登录控制台,一级菜单选择网关节点,创建集群:

(2)进入相应的集群,为不同集群 添加节点:

(3)点击 新增节点 按钮,填写节点信息后点击 确定:

(a)监听地址:用于监听节点程序;监听的端口号用于节点做请求转发

(b)管理地址:用于监控组件获取监控数据和对节点做健康检查等

3、启动节点程序:

 {install dir}/run.sh {start|stop|reload|restart|force-reload} [admin url] [port]

 

此处的admin url值与配置文件(goku.conf)中的admin_bind字段值一致。

示例:

 {install dir}/run.sh start 127.0.0.1:7005 7702

 

4、检查节点是否正常运行:

进入控制台的网关节点页面,若节点的状态显示为运行中,则节点正常启动:

最后,你也可以通过编译Github上Master分支的代码,编译最新的内容来安装,编译教程:https://help.eolinker.com/#/tutorial/?groupID=c-372&productID=19

相关链接

节点Docker:https://hub.docker.com/r/eolinker/goku-api-gateway-ce-node

控制台Docker:https://hub.docker.com/r/eolinker/goku-api-gateway-ce-console

新上控制台:http://goku-console.eolinker.com

项目地址:https://github.com/eolinker/goku-api-gateway

项目官网:https://www.eolinker.com

上述就是小编为大家整理的什么是API网关?部署API网关有哪些方式?

国内(北京、上海、广州、深圳、成都、重庆、杭州、西安、武汉、苏州、郑州、南京、天津、长沙、东莞、宁波、佛山、合肥、青岛)Eolink系统分析、比较及推荐。



版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:高级网络工程师 系统工程师
下一篇:Java7和Java8中的ConcurrentHashMap原理解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~