• 分享一个国内首个企业级开源的GO语言网关--GoKu API Gateway


    转载自:https://blog.csdn.net/qq_40579834/article/details/80250954

    在这里插入图片描述

    相关链接

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

    官网地址:https://www.eolinker.com

    前言:我们为什么要做Goku API 网关?

    我们 EOLINKER 自2017年成立以来,立志于做全球领先的 API 管理平台,我们先是做了目前国内最大的在线API管理平台(API Studio),然后在18年发布了支持API场景(多个API关联和数据传递)的API监控(API Beacon),今年我们在思考还能为企业客户提供什么更加深度的服务时,认为API网关是一个关键的环节,能够帮助企业综合管理企业内部的微服务API、更方便地对接第三方API以及更好地维护对外的API等。

    可以说API网关是我们在深入API管理领域几年之后自然而然要做的事情,而既然要做就努力往大了做,于是我们做了更加大胆的决定:将核心代码全部开源,并且不限制网关的节点,还提供了完整的管理界面,让用户可以部署完成后立即投入使用。

    可能有人不理解为什么开源代码是一个大胆的决定,首先我们是一个商业公司而不是公益开源基金会,开源意味着有一大部分收入的流失,其次放眼全球的开源产品几乎都是不盈利的,每年还需要投入大量的研发和维护成本等。

    那我们为什么还要将一个公司的核心产品开源?

    因为一个公司的力量实在有限,如果我们希望把 Goku API Gateway 做到全球一流的水平,将中国的技术产品输出到海外去,开源社区和开发者的力量是必不可少的,因此这产品里面包含着我们的希望和情怀,希望证明在中国,像我们一样专注基础技术领域的企业也能有好的未来。所幸的是我们并不孤独,在我们前面有 Dubbo、TiDB 等优秀的开源项目,相信他们也和我们一样抱有希望在做着类似的事情。

    因此我们将 Goku API Gateway 开源,正如它的中文名称 “悟空” 一般,能在开源社区和我们的共同努力下完成72变。

    Goku API Gateway CE 简介

    Goku API Gateway (中文名:悟空 API 网关)是一个基于 Golang 开发的微服务网关,能够实现高性能 HTTP API 转发、服务编排、多租户管理、API 访问权限控制等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界面,能够快速帮助企业进行 API 服务治理、提高 API 服务的稳定性和安全性。

    为什么要使用 Goku API Gateway?

    Goku API Gateway (悟空 API 网关)是运行在企业系统服务边界上的微服务网关。当您构建网站、App、IOT甚至是开放API交易时,Goku API Gateway 能够帮你将内部系统中重复的组件抽取出来并放置在Goku网关上运行,如进行用户授权、访问控制、流量监控、防火墙、服务编排、数据转换等。

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

    并且 Goku API Gateway 支持与 EOLINKER 旗下的 API Studio 接口管理平台结合,对 API 进行全面的管理、自动化测试、监控和运维。

    总而言之,Goku API Gateway 能让业务开发团队更加专注地实现业务。

    二. 产品特性

    • 控制台:通过清晰的UI界面对网关集群进行各项配置。
    • 集群管理:Goku网关节点是无状态的,配置信息自动同步,支持节点水平拓展和多集群部署
    • 热更新:无需重启服务,即可持续更新配置和插件。
    • 负载均衡:支持有权重的round-robin负载平衡。
    • 服务发现:从 Consul、Eureka 等注册中心发现后端服务器。
    • HTTP(S)反向代理:隐藏真实后端服务,支持 Rest API、Webservice。
    • 服务编排:一个编排API能够对应多个backend;编排API能够规定返回数据类型(如JSON),每个backend也能规定返回数据类型;backend的入参支持客户端传入,也支持backend间的参数传递;backend的返回数据支持字段的过滤、删除、移动、重命名、拆包和封包;编排API能够设定编排调用失败时的异常返回。
    • 数据转换:支持将返回数据转换成JSON或XML。
    • 多租户管理:根据不同的访问终端或用户来判断。
    • 访问策略:支持不同策略访问不同的API、配置不同的鉴权(匿名、Apikey、Basic)等。
    • 灵活的转发规则:支持模糊匹配请求路径,支持改写转发路径等。
    • IP黑白名单。
    • 自定义插件:允许插件挂载在常见阶段,例如before match,access和proxy。
    • 版本控制:支持操作的发布和多次回滚。
    • CLI: 使用命令行来启动、关闭和重启Goku。
    • Serverless: 在转发过程的每一个阶段,都可以添加并调用自定义的插件。
    • 请求日志(access log):仅记录转发的基本内容,自定义记录字段与排序顺序,定期自动清理日志。
    • 运行日志(system log):提供控制台和节点的运行日志,默认仅记录ERROR等级的信息,可将等级按实际情况调成INFO、WARN或DEBUG。
    • 可扩展:简单易用的插件机制方便扩展功能。
    • 高性能:性能在众多网关之中表现优异。
    • Open API:提供 API 对网关进行操作,便于集成。

    产品截图

    【首页】

    首页可以了解网关的基本信息,例如访问策略数、API数等,还可以了解请求和转发的情况,例如成功率等。

    在这里插入图片描述

    【网关节点】

    网关支持集群化管理,进入不同的集群可以管理相应的节点。

    在这里插入图片描述

    【服务注册方式】

    您可以通过静态或动态的方式来注册(发现)您的后端服务,创建好服务注册方式后,您可以在某个方式的基础上创建一个或多个负载(Upstream)。

    在这里插入图片描述

    【负载配置】

    配置API的转发目标服务器(负载后端),创建之后可以设置为 API 的转发地址 / 负载后端(Target / Upstream)。

    在这里插入图片描述

    【接口管理】

    支持新建普通API和编排API,并且支持导入EOLINKER的API文档。

    在这里插入图片描述

    【访问策略】

    您可以给不同的调用方或应用设置访问策略,不同的访问策略可以设置不同的 API 访问权限、鉴权方式以及插件功能等。

    在这里插入图片描述

    【扩展插件】

    插件系统除了提供官方插件,也可以添加自定义的网关插件。

    在这里插入图片描述

    【日志设置】

    提供详细的请求日志和系统运行日志,请求日志可以自定义记录字段;运行日志可以根据情况调整记录等级:ERROR、INFO、DEBUG等。
    在这里插入图片描述

    关于我们

    EOLINKER 是领先的 API 管理服务供应商,为全球超过3000家企业提供专业的 API 研发管理、API自动化测试、API监控、API网关等服务。是首家为ITSS(中国电子工业标准化技术协会)制定API研发管理行业规范的企业。

    官方网站:https://www.eolinker.com

    免费下载PC桌面端:https://www.eolinker.com/pc

  • 相关阅读:
    做数据库维修工、还是码农,讨论走下神坛的职业【摘自vage】
    4.4 Web存储
    4.3 createjs
    4.2 HTML Canvas标签
    4.2 拖放
    4.1 HTML5 音频
    3.2 JacaScript面向对象
    3.1 JavaScript基础
    2.7 CSS动画
    2.6 CSS基本操作
  • 原文地址:https://www.cnblogs.com/dc20181010/p/11841376.html
Copyright © 2020-2023  润新知