几种部署Goku API Gateway的方式,最快一分钟可使用上网关
本文将介绍几种部署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)点击 新增节点 按钮,填写节点信息后点击 确定:
- 新建节点时的节点IP字段填写内网IP或本地IP
 - 若配置文件(goku.conf)中的admin_bind字段值IP部分为127.0.0.1或localhost,此处节点IP必须填写127.0.0.1
 
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
几种部署Goku API Gateway的方式,最快一分钟可使用上网关的更多相关文章
- 分享一个国内首个企业级开源的GO语言网关--GoKu API Gateway
		
一. 简介 GoKu API Gateway,中文名:悟空API网关,是国内首个开源go语言API网关,帮助企业进行API服务治理与API性能安全维护,为企业数字化赋能. GoKu API Gatew ...
 - 如何更快理解和运用服务编排?(使用Goku API Gateway实现)
		
上一篇博客 未来实现API管理系统的几个关键词 发布后,有不少读者私信我,让我写一篇实际运用的文章,我周末趁着有空写了这篇有关“服务编排”的文章.用的是Goku API Gateway进行演示, 希望 ...
 - [转载] 构建微服务:使用API Gateway
		
原文: http://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=206889381&idx=1&sn=478ccb35294c ...
 - 微服务实战(二):使用API Gateway
		
微服务实战(一):微服务架构的优势与不足 微服务实战(二):使用API Gateway 微服务实战(三):深入微服务架构的进程间通信 微服务实战(四):服务发现的可行方案以及实践案例 微服务实践(五) ...
 - 微服务实战-使用API Gateway
		
当你决定将应用作为一组微服务时,需要决定应用客户端如何与微服务交互.在单体式程序中,通常只有一组冗余的或者负载均衡的服务提供点.在微服务架构中,每一个微服务暴露一组细粒度的服务提供点.在本篇文章中,我 ...
 - 使用API Gateway
		
http://dockone.io/article/482 [编者的话]本系列的第一篇介绍了微服务架构模式.它讨论了采用微服务的优点和缺点,除了一些复杂的微服务,这种模式还是复杂应用的理想选择. Do ...
 - 微服务实战(二):使用API Gateway - DockOne.io
		
原文:微服务实战(二):使用API Gateway - DockOne.io [编者的话]本系列的第一篇介绍了微服务架构模式.它讨论了采用微服务的优点和缺点,除了一些复杂的微服务,这种模式还是复杂应用 ...
 - 使用Kylin构建企业大数据分析平台的4种部署方式
		
本篇博客重点介绍如何使用Kylin来构建大数据分析平台.根据官网介绍,其实部署Kylin非常简单,称为非侵入式安装,也就是不需要去修改已有的 Hadoop大数据平台.你只需要根据的环境下载适合的Kyl ...
 - ASP.NET MVC深入浅出系列(持续更新)  ORM系列之Entity FrameWork详解(持续更新)  第十六节:语法总结(3)(C#6.0和C#7.0新语法)  第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字  各种通讯连接方式   设计模式篇  第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借
		
ASP.NET MVC深入浅出系列(持续更新) 一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...
 
随机推荐
- spring源码分析系列2:Bean与BeanDefinition关系
			
接口表示一种能力,实现了一个接口,即拥有一种能力. BeanDefinition与Bean的关系, 就好比类与对象的关系. 类在spring的数据结构就是BeanDefinition.根据BeanDe ...
 - 刷新:重新发现.NET与未来
			
微软在比尔·盖茨手中创立并崛起, 成为PC互联网时代的霸主,很多70,80后都有MVP Ediwang的体验: 当时的微软对我来说就是神的存在.因为我认识电脑到使用电脑的一切几乎都离不开这家伟大的公司 ...
 - k8s运维记 - 如何让部署到k8s的kong网关托管自定义静态资源?
			
目的 使用kong作为目录/data/reports的静态资源服务器,为了测试,已于目录/data/reports下创建文件report.html,如下: <html> <head& ...
 - struts 2.3.28+spring 4.2.5.RELEASE+hibernate 5.1.0.Final整合maven构建项目基本配置
			
第一次写博客,主要也是记录给自己看的,可能很多比较熟的地方就没注释 用maven构建,ssh框架都是选用的最新的release版(感觉还是不要用beta),环境jdk1.8 tomcat8.0 mys ...
 - 原生js动态创建、获取、删除属性的几种方式
			
1.创建属性 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
 - Windows 10 更新后VMware Workstation pro无法运行 (无需卸载原版本VM)
			
问题 描述:当前Windows版本是win10-1903,VMware版本比较老旧是VMware Workstation Pro 15.0.4:国庆节后微软推送了一个新的更新补丁,10月10日更新之后 ...
 - JNDI-Injection-Exploit
			
介绍 最近把自己之前写的JNDI注入利用工具改了一下push到了github,地址:https://github.com/welk1n/JNDI-Injection-Exploit,启动后这个工具开启 ...
 - Django-debug-toolbar(调试使用)
			
Django-debug-toolbar django-debug-toolbar 是一组可配置的面板,可显示有关当前请求/响应的各种调试信息,并在单击时显示有关面板内容的更多详细信息. https: ...
 - mac专业视频剪辑软件 Final Cut Pro 10.4.6破解版
			
Final Cut Pro简称FCP,它是 Mac平台上最好的视频剪辑软件,可用来视频剪辑.后期特效等.可编辑从标清到4K的各种分辨率视频,ColorSync管理的色彩流水线则可保证全片色彩的一致性. ...
 - Windows系统调用中API从3环到0环(下)
			
Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html Windows系统调用中API从3环到0环(下) 如果对API在 ...