延吉湖北乐清贵港襄阳宜春
投稿投诉
宜春榆林
滕州锦州
襄阳晋中
泰州云南
贵港许昌
娄底河南
乐清寿光
阜阳汉中
湖北漳州
海口陕西
延吉东营
河源海南

开源API网关Goku简介和简单安装验证

6月2日 栀璃鸢投稿
  今天简单介绍下国人开发的开源API网关Goku,该网关基于Go语言进行开发,在前面介绍API网关的时候就谈到实际上当前主流的API网关基本都是采用Openresty或Go语言开发的。因此今天对Go语言开发的这个网关进行介绍。
  虽然这个网关现在已经有了收费和社区版本,但是对于开源版本仍然可以满足大部分的业务需求场景和使用,对于企业来说也完全可以先使用开源版本,如果在实施完成后对性能和易用性等都满意,再来考虑是否切换到社区版本。对API网关Goku简单介绍
  GoKuAPIGateway,中文名:悟空API网关,是eoLinker旗下、国内首个企业级开源的go语言API网关,帮助企业进行API服务治理与API性能安全维护,为企业数字化赋能。GoKu支持OpenAPI与微服务管理,支持私有云部署,实现API转发、请求参数转换、数据校验等功能,提供图形化界面管理,能够快速管理多个API网关,提高API业务安全性。Gitee地址:
  https:gitee。comeolinkergokuapigateway
  官网地址:
  https:www。eolinker。comproductapigateway
  GitHub地址:
  https:github。comeolinkergokuapigateway
  为什么要使用Goku网关?
  GokuAPIGateway(悟空API网关)是运行在企业系统服务边界上的微服务网关。当您构建网站、App、IOT甚至是开放API交易时,GokuAPIGateway能够帮你将内部系统中重复的组件抽取出来并放置在Goku网关上运行,如进行用户授权、访问控制、防火墙、数据转换等;并且Goku提供服务编排的功能,让企业可以快速从各类服务上获取需要的数据,对业务实现快速响应。
  GokuAPIGateway的社区版本(CE)拥有完善的使用指南和二次开发指南,代码使用纯Go语言编写,拥有良好的性能和扩展性,并且内置的插件系统能够让企业针对自身业务进行定制开发。并且GokuAPIGateway支持与EOLINKER旗下的APIStudio接口管理平台结合,对API进行全面的管理、自动化测试、监控和运维。
  产品关键特性说明控制台:通过清晰的UI界面对网关集群进行各项配置。集群管理:Goku网关节点是无状态的,配置信息自动同步,支持节点水平拓展和多集群部署。热更新:无需重启服务,即可持续更新配置和插件。服务编排:一个编排API对应多个backend,backend的入参支持客户端传入,也支持backend间的参数传递;backend的返回数据支持字段的过滤、删除、移动、重命名、拆包和封包;编排API能够设定编排调用失败时的异常返回。数据转换:支持将返回数据转换成JSON或XML。负载均衡:支持有权重的roundrobin负载平衡。服务发现:从Consul、Eureka等注册中心发现后端服务器。HTTP(S)反向代理:隐藏真实后端服务,支持RestAPI、Webservice。多租户管理:根据不同的访问终端或用户来判断。访问策略:支持不同策略访问不同的API、配置不同的鉴权(匿名、Apikey、Basic)等。灵活的转发规则:支持模糊匹配请求路径,支持改写转发路径等,可为不同访问策略或集群设置不同的负载。IP黑白名单。自定义插件:允许插件挂载在常见阶段,例如beforematch,access和proxy。CLI:使用命令行来启动、关闭和重启Goku。Serverless:在转发过程的每一个阶段,都可以添加并调用自定义的插件。请求日志(accesslog):仅记录转发的基本内容,自定义记录字段与排序顺序,定期自动清理日志。运行日志(systemlog):提供控制台和节点的运行日志,默认仅记录ERROR等级的信息,可将等级按实际情况调成INFO、WARN或DEBUG。可扩展:简单易用的插件机制方便扩展功能。高性能:性能在众多网关之中表现优异。OpenAPI:提供API对网关进行操作,便于集成。版本控制:支持操作的发布和多次回滚。监控和指标:支持Prometheus、Graphite。
  产品组成说明
  一套完整的GOKUAPIGateway由一个控制台和若干个网关节点组成。控制台与网关节点分别部署在不同的服务器上,一般一台服务器部署一个网关节点。若服务器上部署了多台虚拟机,则建议控制台、各节点分别部署在不同的虚拟机上。
  网关节点通过IP地址或者域名注册在控制台中,节点会通过主动获取控制台上的最新配置信息。
  GOKUAGW是一个开箱即用的集群,仅需将部署好的网关节点注册到现有的负载均衡器、F5、CDN等即可。网络请求经过上述负载均衡之后会到达网关节点,再通过网关节点转发到目标后端服务。
  开源版和社区版功能对比
  从开源版本和社区版本的功能对比来看,主要还是安全,流控,数据转换映射等一些高级特性在基础的开源版本不支持。开源版本对于关键的服务限流熔断,服务降级,数据缓存,格式转换,请求大小校验等能力是没有的,这些能力只在企业版本中提供。
  具体支持的插件区别如下:
  开源版支持插件:
  IP黑白名单、Basic鉴权、Apikey鉴权、参数映射、额外参数
  企业版支持插件:
  流量控制、Basic鉴权、Apikey鉴权、OAuth2。0鉴权、OAuth2。0第三方认证、JWT鉴权、AKSK认证、IP黑白名单、跨域、防重放攻击、返回头部、默认返回、参数映射、额外参数、熔断、服务降级、请求大小限制、数据缓存、请求xmljson转换、响应xmljson转换
  也就是说真正要上到企业级环境和应用,开源版本仍然有比较大的欠缺,需要购买社区版本,或者自己进行相关功能的扩展。特别是涉及到的安全特性和流控特性。
  性能测试对比
  以下是厂家公布的一个性能测试数据,2。50GHz12,48G内存,单节点,并且没有启用任何插件情况下进行的性能测试。
  从这个数据来看,和Kong网关的性能差别不大,实际上真正考验网关性能的地方还是在各类插件启用后具体的性能情况。对Goku网关初步分析
  下面我们结合官方网站介绍和帮助文档来对里面的一些关键内容做下说明
  集群化部署架构:整个部署架构图和常见的ESB总线或API网关产品类似,数据库可以采用Oracle或Mysql数据库,缓存采用Redis库进行缓存。前端通过F5或Ngnix进行负载均衡,本身网关节点是无状态的,支持集群化架构部署。但是这种情况下如何实现集群高可用,暂时没有看到进一步的细化材料。包括架构图也没有看到类似集群管理节点或zookeeper等部署。
  后端服务心跳监测:通过定期检查后端服务器的可用情况,智能识别可用后端、屏蔽不可用后端,减少服务器开销。这个实际类似对后端的业务服务进行心跳监测,出现问题后进行屏蔽或预警,后端服务不可用时候实际通过API网关封装暴露的新代理服务本身也处于不可用状态。
  负载均衡能力:对于后端的业务服务本身可以再通过类似Ngnix集群或K8s集群暴露集群IP地址接入,当然网关本身也支持直接将多个后端业务多节点接入到网关中,由网关对后端业务服务器阶段进行负载均衡,在采用了类似容器化和K8s或集群架构的后端来说,该功能往往并不会用到。
  API健康检查,文档编写完成之后,API定期检查节点运行状态,若节点出现异常则通过邮件或者API发送告警信息,并自动尝试重启修复节点。实际我们看到对于API的监控检查包括了两个方面,一个是通过网关封装后的API节点的监控检查,一个是后端业务API服务的监控检查。
  API断线重连:请求转发失败后,网关会进行一定次数的断线重连,防止因网络闪断等原因导致API访问质量下降。这个类似我们说的服务重试机制,传统ESB总线的标准能力。该功能还是有用,主要是为了防止网络闪断引起的服务访问异常。
  在网关里可以给不同的调用方或客户端设置访问策略,不同的访问策略可以设置不同的API访问权限、鉴权方式以及插件功能等。网关支持开放策略与普通策略:开放策略:系统自带访问策略,使用开放策略时不需要传递策略ID参数;普通策略:自定义访问策略,需要传递策略ID参数。
  网关的插件分为策略插件与API插件。策略插件包括:流量控制、鉴权、IP黑白名单等。API插件包括:参数映射、额外参数、熔断、服务降级等。
  如果不使用任何插件,AGW的使用流程大致是四个步骤:新建API,定义API分组,名称,请求方式等。新建访问策略和访问策略绑定。用户通过网关访问API。
  鉴权的对象为策略(Strategy),策略可表示为一个公司、一个业务部门或一个用户。开源版网关支持以下鉴权方式:Public、Basic、Apikey。暂时没有看到基于消费访问IP地址的服务访问鉴权,不清楚是否企业版由对应的IP认证鉴权支持。
  服务编排能力:服务编排在转发时可调用多个API,采用添加Step的方式,每个Step里可以配置转发地址,映射路径,转发方式,返回数据,重试次数,超时限制等信息。可以看到服务编排虽然不是可视化的方式,但是能够满足大部分的服务使用场景。
  参数映射:功能具备,但是使用起来会比较麻烦,暂时没看到图形化或者表格方式的参数映射界面。对于参数映射不一定完全的图形化,但是提供类似阿里云API网关的表格化映射是一种可行的方式。
  日志管理能力:网关系统的日志分为两大部分:请求日志(access。log)和系统运行时日志;运行时日志又分为:控制台的运行日志(console。log)、各节点的运行日志(node。log)。对于请求日志可以详细的配置日志存放路径,记录周期,具体记录的内容等。
  整体相对来说,当前网关提供的日志管理能够偏弱,特别是日志信息的查看,基于服务日志运行进行的API接口服务的运行分析统计等方面的能力。产品安装
  对于Goku网关分为了管理控制台和节点服务器引擎,因此需要分开安装。在官网可以看到有两种安装方法,一种是直接安装docker镜像,一种是直接下载安装包进行安装。
  在这里通过在github下载安装包进行安装。当前版本为3。1。3版本,下载后解压。可以看到里面有控制台和节点两个安装包文件。console3。1。3。linuxamd64。go1。12。4。tar。gz
  node3。1。3。linuxamd64。go1。12。4。tar。gz
  01控制台安装
  1。安装,这里安装到goku目录mkdirpgokumvconsole3。1。3。linuxamd64。go1。12。4。tar。gztmpcdtmptarxzfconsole3。1。3。linuxamd64。go1。12。4。tar。gzcdconsole3。1。3。install。shgokucdgoku
  2。编辑配置文件goku。conf,配置语法参照yamladminbind:绑定节点获取配置的地址,形如IP:Port,填写内网地址或本机地址listenport:管理后台监听端口,可以开放给外网访问dbtype:数据库类型,v3。1。0只支持sqlitedbpath:sqlitedb的文件路径
  在这里配置文件文件参考如下:listenport:7000adminbind:192。168。149。132:7005dbtype:sqlitedbpath:gokuconsoledb
  3。进入{installdir}console文件夹,运行run。sh文件以启动控制台
  首次运行:。run。shstart{configfile}管理员账号管理员密码
  示例:。run。shstartconfiggoku。confadmin123456
  非首次运行:。run。shstartrestart
  5。在浏览器输入服务器IP程序监听端口号,进入管理后台页面。在这里即是:http:192。168。149。132:7000即可以访问管理界面。
  02节点安装
  控制台安装完成后可以开始安装节点。我们将节点安装到gokunode目录mkdirpgokunodemvnode3。1。3。linuxamd64。go1。12。4。tar。gztmpcdtmptarxzfnode3。1。3。linuxamd64。go1。12。4。tar。gzcdnode3。1。3。install。shgokunodecdgokunode
  在节点安装完成后,登录到控制台,进入一级菜单选择网关节点,创建集群test:
  在集群创建好后进入相应的集群,为不同集群添加节点:
  注意节点创建需要填写监听地址和管理地址。
  其中网关文件路径填写node节点安装的路径,监听地址:用于监听节点程序;监听的端口号用于节点做请求转发,这里配为127。0。0。1:7702。管理地址:实质上是第三方软件监听节点监控数据的地址,即前面配置127。0。0。1:7005。
  在节点创建完成后,节点列表界面可以看到nodekey的值,这里是88e9e980186218e333786516fc838b4f,这个值在启动节点的时候需要使用。
  以上完成后进入到node3。1。1目录对节点启动,语法为:{installdir}run。sh{startstopreloadrestartforcereload}〔adminurl〕{nodeKey}
  在本次安装中为:{installdir}run。shstart127。0。0。1:700588e9e980186218e333786516fc838b4f
  在安装完成后可以进入到节点管理界面。如果节点当前状态是正常运行中,那么代表整个节点安装和配置成功。
  注意,在使用最新的3。1。3版本安装的时候出现问题无法解决,后续修改为采用3。1。1版本后正常,具体安装步骤完全一致,相关内容不再修改。服务接入验证
  对于简单的API接口服务代理转发,具体流程如下:
  下面还是用前面Konga网关的例子来进行接入测试。具体公网可以访问的地址为:
  https:api。binstd。comareaprovince?appkey
  第一步:新建项目
  这里建立一个test的项目,同时进入项目后,点击新建普通接口。
  第二步:新建接口
  第三步:新建策略并绑定到接口
  第四步:最后保存和发布配置即可。
  网关通过节点来转发请求,所以需要填写具体的节点IP或节点域名来访问请求,完整路径为节点IPURL。策略ID作为HeaderBodyUrl参数,参数字段均为:StrategyId。
投诉 评论

王菲真输了吗?锋菲恋真的要落下帷幕谢霆锋与王菲的姐弟恋,一直颇受大家的热议,这一对兜兜转转,最终还是走在了一起!今天我们就来追溯一下,他们曲折的爱情史。1999年9月,王菲赴台宣传新专辑,谢霆锋恰好也赴台……开源API网关Goku简介和简单安装验证今天简单介绍下国人开发的开源API网关Goku,该网关基于Go语言进行开发,在前面介绍API网关的时候就谈到实际上当前主流的API网关基本都是采用Openresty或Go语言开……向往5张艺兴杨紫澄清堪称辟谣绯闻模板,华晨宇躺枪2021年是伴随着各种惊天大瓜开始的一年,随着一个一个尘埃落定的孩子的诞生,网友们将某社交平台的宣传语变成了随时随地,发现新孩子,用以调侃如今这个越来越匪夷所思的娱乐圈,表达着……EXO到底有多红?不知道为什么让我一个兴唯来回答这个问题我是一六年鸡条演唱会入羊坑的对这个团的认识仅限于他们是我爱豆在韩国的同事还有就是他们每次回归发新歌都要捆绑我家哥哥上热搜黑我家哥哥最近一次……陈都灵有几段感情,她的老公是谁?曾和谁传过绯闻增之一分则太长,减之一分则太短;施朱则太红,着粉则太白。柳叶眉,杏核眼,樱桃小口一点点,杨柳细腰赛笔管,说话燕语莺声。粉香处弱态伶仃。今天怡燃和大家聊得是干吃不胖的女星陈……汪曼熙父亲汪峰梅开三度,两任继母视我为亲生,生母让我忧愁汪峰大女儿汪曼熙作者娱酱酱2004年,汪峰在欧洲杯邂逅了葛荟婕。那年,汪峰33岁,而葛荟婕17岁。他凭借《爱是一颗幸福的子弹》等歌大火,是声名大噪的摇滚……今年七夕档警匪片比爱情片香2021年七夕档的电影票房成绩现已正式出炉,据灯塔专业版显示,8月14日在8部新片的加持下,全国共报收电影票房1。97亿元。然而,爱情片却并非是七夕档的票房主力,反而是动作犯罪……不配做父母?男子一个动作惹怒网友10月16日,湖北宜昌。一位家长骑着电动车等待红灯时起步太快,后座小孩不慎跌落,小孩在后面追着跑,家长浑然不知。后车司机狂按喇叭一路护送,幸好转角处家长停下。不料家……各种白酒成本到底是多少?这里所指的白酒,当然就是我们中国人常喝的白酒,只要大家不理解成什么白兰地威士忌或者伏特加以及路易十三就行。资深酒友们都清楚明白,一般大品牌的酒,花三两百块钱一瓶,很难买到……尔冬升的作品不合逻辑,人很风趣,执导水平不高《隐秘的角落》排名垫底,尔导甩锅演员今年的《演员请就位》请来了尔冬升导演,可能是第一次上综艺的原因,第一期就因为怼流量上了热搜,评论清一色都是夸尔导的,说他把自己一直想说……在新疆,你会点菜吗?点菜其实是一门学问,多少人吃饭、都有什么忌讳、打算花多少钱、有无老人和孩子以及女士、点的菜要荤素搭配和颜色风格等等,都是有讲究的。当然了,以上说的是内地的餐厅。而对于西北……小矮人夫妻不听劝硬生娃,孩子出生后父母泪目,网友太自私孩子对于家庭来说十分重要,每个人都希望自己的孩子可以平安健康,也盼望着孩子可以遗传到自己优秀的基因。然而遗传有好有坏,并不能人为决定,因此,父母在决定生孩子前,一定要考量清楚,……
我是特种兵播出10年,侯勇成国家一级演员,谷智鑫投身话剧大胡子导演张纪中的桃色江湖任贤齐台北演唱会忆师弟黄鸿升,唱我是一只小小鸟时泣不成声你微笑时很美引电竞行业众怒,许凯演技被批判,豆瓣开分2。9夜郎自大,印阿不平等条例,现如今塔利班提出异议江疏影把神话人物当演员,童瑶却接连入选飞天与金鹰奖,差距真大2021年去世的五位明星,他们的经典角色你一定知道张雨绮新戏开拍,扮演单亲妈妈,生活中却忙着谈恋爱鲜少晒孩子大暑,饮食宜清淡少油,要多给家人吃3白3黄3红3绿,安全过暑小区改造刚完成纷争又起少年的你校园欺凌的背后,是不容忽视的原生家庭问题盘点16对经典剧集中的姐弟恋,哪对最没有违和感,最合衬?吉林省长韩俊抓紧推进俄煤印尼煤蒙古煤等外采计划北京大妈去横店当群演,半个月挣108元,靠吃免费斋饭为生慎防儿童社交性退缩关注“天才神童”,舆论要有锋芒更要有温度在工厂做生产管理由于厂里面都是一些老员工不服从管理,现在还在恋爱角色请指定高甜开播失恋少女游戏解锁男友新人设自己学会修电脑办理2020年湖南中级职称(工程师)有什么用?如果让心理学家设计围巾他们会怎么做能不能通过手机号查定位免费(查询手机位置定位)以理想与信念为题的高中作文关于成长的作文父爱伴我成长

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利