• Apinto V0.9版本发布

    新特性

    1、支持websocket协议转发,在路由中启用即可生效

    2、Apinto访问地址标准化,引入广播地址,以支持docker容器、kubernetes pod间通信。
    旧配置

    listen:
      - 8099 # 服务端口
    ssl: # 服务端口的ssl配置
        listen:
          - port: 8099 ## 端口
            certificate: ## 证书配置
              - cert: ""
                key: ""
    admin: # 管理端口配置
      scheme: http
      listen: 9400
      ip: 0.0.0.0
      certificate:
        key: ""
        cert: ""
    
    certificate: # 证书默认目录
        dir: /etc/apinto/cert

    新版本配置(使用旧配置时会自动充血并初始化新配置)

    version: 2 # 配置版本,新版本为2,非 2 当做旧版本
    certificate: # 证书根目录
        dir: /etc/apinto/cert
    
    client:
      advertise_urls: # open api 服务的广播地址
      - http://192.168.3.110:9400
      - http://192.168.3.116:9400
      - http://10.8.0.15:9400
      certificate:  # 对 https 的证书配置
      - cert: 
        key: 
      listen_urls:
      - http://0.0.0.0:9400 # open api 服务的监听地址
    gateway: # 网关服务配置
      advertise_urls: # 广播地址
      - tcp://192.168.3.110:8081
      - tls://192.168.3.116:8081
      - tcp://10.8.0.15:8081
      listen_urls: # 监听地址
      - tcp://0.0.0.0:8081
      - tls://192.168.3.116:8081 
    peer: # 节点通信配置
      advertise_urls:
      - http://192.168.3.110:9401
      - http://192.168.3.116:9401
      - http://10.8.0.15:9401
      certificate: 
      - cert:
        key: 
      listen_urls: # 监听地址
      - http://0.0.0.0:94001 

    3、新增监控插件,并支持将请求记录输出到InfluxDB。

    4、修改网关连接上游服务默认最大连接数为10240,默认最大连接等待时间为60s,客户端请求体最大为100M

    5、输出器驱动新增作用范围配置(scope),默认支持scope:access_log、monitor。
    当access log插件output配置为空列表时,scope为access_log的输出器会默认生效。如下:

    Bug修复

    1、修复匿名应用删除后仍生效的问题

    2、修复路由禁用后,缺少提示的问题

    写在最后

    目前Apinto 及其周边项目已经开源,我们希望通过Apinto强大的插件拓展能力,用户可像乐高积木一样根据需要自行拓展Apinto的插件,以满足不同的业务市场需求。
    Apinto 目前属于萌芽阶段,我们希望集合广大开源爱好者的力量,与大家一起讨论方案,接受大家的批评指正,一起将产品打磨完善,做下一个端与端间的Traffic Middleware。
    这是一个开放和积极的项目,我们诚挚地邀请您一起参与到我们的项目开源工作中。每一个贡献都是有意义的,包括但不限于:

    • 查找bugs,取得性能上的提升

    • 帮助完善文档,提供用户操作体验

    • 提交你们的issue,让我们知道您的奇思妙想

    • 参与自定义插件的开发,丰富apinto的能力

    • ...

    欢迎各位开源爱好者参与到Apinto 项目中,和我们一起为开源事业贡献自己的力量。

    联系我们


  • Apinto企业版本试用用户招募

    Apinto企业版即将在12月初发布。

    Apinto企业版囊括了Apinto开源网关的所有功能,并在此基础上,提供了更加友好的用户体验、更加强大的管理功能,更好地满足企业安全需求。

    为了答谢社区用户对Apinto开源网关的长期支持,现从社区中招募Apinto企业版试用用户,名额有限,先到先得,报名立享优惠。

    填写完试用申请后,将会有专人联系您,提供试用部署及疑难解答服务。感谢各位的支持。

    联系我们


  • Apinto v0.8.5版本发布

    v0.8版本变更

    路由规则格式修改

    改动前:一个路由支持配置多组路由规则

    旧版路由规则配置(此处使用Apinto Dashboard示例)如下图所示:

    改动后:一个路由仅支持配置一组路由规则

    新版本路由规则配置(此处使用Apinto Dashboard示例)如下图所示:

    多协议底层支持

    通过对Eosc底层改动,Apinto支持端口协议复用,为后续Apinto支持gRPC、WebSocket、TCP等多种通信协议奠定底层基础。

    新增模块:插件模版

    该模块用于统一配置插件,生成可复用的插件模版。多个路由可以绑定同一个插件模版,以减少重复配置操作。

    插件模版配置示例如下:

    路由绑定插件示例如下

    新增模块:应用

    应用是对请求来源的抽象概念,其可以是一个客户端App,也可以是一个后端服务,还可以是Web App......

    请求达到网关时,会先进行鉴权检验,鉴权通过后,将匹配唯一应用,并进行应用设置的规定行为,包括但不限于流量限制、数据修饰(额外参数、格式转换等)、访问控制等。

    新增插件:应用(eolinker.com:apinto:plugin_app)

    该插件用于控制应用模块的生效范围,若需要使应用模块生效,则需要在全局插件中新增该插件,并设置插件生效范围(enableglobal )。

    删除模块:鉴权

    鉴权模块在v0.8.0中删除,鉴权相关操作将转移到应用模块中。

    删除插件:鉴权(eolinker.com:apinto:auth)

    鉴权插件在v0.8.0中删除,鉴权相关操作将转移到应用模块中。

    新增apinto version命令

    执行下列指令,即可看到apinto编译的相关信息

    修复输出器部分字段获取失败的问题

    字段涉及范围:

    • proxy_header
    • proxy_query
    • proxyheader 为前缀的字段
    • proxyquery 为前缀的字段
    • header_为前缀的字段
    • query_为前缀的字段

    修复当上游为https协议时,转发失败的问题

    写在最后

    目前Apinto 及其周边项目已经开源,我们希望通过Apinto强大的插件拓展能力,用户可像乐高积木一样根据需要自行拓展Apinto的插件,以满足不同的业务市场需求。

    Apinto 目前属于萌芽阶段,我们希望集合广大开源爱好者的力量,与大家一起讨论方案,接受大家的批评指正,一起将产品打磨完善,做下一个端与端间的Traffic Middleware。

    这是一个开放和积极的项目,我们诚挚地邀请您一起参与到我们的项目开源工作中。每一个贡献都是有意义的,包括但不限于:

    • 查找bugs,取得性能上的提升

    • 帮助完善文档,提供用户操作体验

    • 提交你们的issue,让我们知道您的奇思妙想

    • 参与自定义插件的开发,丰富apinto的能力

    • ...

    欢迎各位开源爱好者参与到Apinto 项目中,和我们一起为开源事业贡献自己的力量。

    联系我们


  • Goku_lite、Goku企业版、Apinto网关版本对比

    GoKu网关 提供企业版【EE】开源版【CE】 两个版本,满足不同阶段用户对于微服务的需求,两个版本均支持 私有云部署

    Apinto开源版本Goku 开源版【CE】的一次架构升级,经过前面几年的网关架构和客户需求的摸索,我们已经在微服务网关上面积累了大量的实践经验,现在我们抱着更加开放的心态,希望能够将过往的产品和技术经验重新整理并回馈技术社区,因此我们在今年3月开始了新的一轮重构。

    版本适用范围

    GoKu企业版: 适用于中大型企业,可加速企业数字化转型,是一个降低成本和提高灵活性的微服务解决方案;

    Goku开源版:适用于个人或小型团队,仅支持最基本的网关功能。获取仓库请点击Goku开源版

    Apinto开源版: 适用于个人或小中型团队,提供网关核心功能,拥有简易控制台。获取仓库请点击Apinto开源版

    免费试用企业版,申请地址 https://www.eolink.com/apply_ams_cloud/

    版本功能对比

    功能 描述 Goku开源版 Goku企业版 Apinto开源版
    控制台界面 全Web化配置,操作易用
    自带可视化界面

    自带可视化界面

    可视化界面仓库
    水平扩展 多集群、多节点
    容器部署 支持通过容器(Kubernets等)动态扩展
    节点异地多活 节点自动切数据源
    动态路由 根据请求参数、请求路径进行动态路由匹配,分配流量到指定服务,支持Header、Query、Location(Location指标类似Nginx的Location)等路由指标
    协议 通信相关协议,如HTTP/HTTPS、Webservice等 HTTP
    HTTPS
    Restful
    Webservice
    * SOAP
    HTTP
    HTTPS
    Restful
    Webservice
    * SOAP
    HTTP
    HTTPS
    Restful
    Webservice
    SOAP
    gRPC(后续接入)
    TCP(后续接入)
    WebSocket(后续接入)
    SSL证书 可为网关配置多个ssl证书
    访问域名 可为网关配置多个域名进行访问
    数据处理 请求内容与返回内容支持JSON与XML互转
    多租户 多个访问策略
    服务编排 把多个API封装成一个API提供服务,对返回数据做重新组装
    服务发现 支持对接Eureka、Nacos、Consul、Kubernetes等多个服务注册中心 Eureka
    Nacos
    Consul
    Kubernetes
    Eureka
    Nacos
    Consul
    Kubernetes
    Eureka
    Nacos
    * Consul
    负载均衡 根据权重动态分配流量,减小服务器压力
    健康检查 转发列表自动剔除异常后端,后端正常再恢复转发
    用户鉴权 匿名、Basic、Apikey、OAuth2、JWT、OAuth2第三方认证、AK/SK认证等多种鉴权 匿名
    Basic
    * Apikey
    匿名
    Basic
    Apikey
    OAuth2
    JWT
    OAuth2.0第三方认证
    * AK/SK认证
    匿名
    Basic
    Apikey
    JWT
    AK/SK认证
    流控控制 粒度可达API级别
    熔断API 熔断单个API
    服务降级 给某个API进行服务降级
    灰度发布 金丝雀发布
    API监控统计 监控数据输出到控制台,提供图表(请求数、响应时间等)查看;也可对接Pormetheus、Graphite等第三方组件
    API告警 告警粒度最细可达API级别,可发送告警邮件,也通过Webhook对接企业内部通知系统、短信API等
    日志分析 全面的请求日志、节点日志和控制台日志,方便排查问题和做统计分析,支持输出日志内容到 Prometheus、Graphite等第三方组件
    节点异常自启 节点异常重新拉起,并产生告警
    Redis告警 自动监控Redis,异常则产生告警
    插件化 基于Golang自行开发插件
    用户权限 给不同的用户添加不同模块的操作权限
    导入导出接口文档 Eolinker
    超时 API设置不同超时限制
    重试 为避免网络抖动的情况,API超时重新发送请求
    其他 OPEN API
    服务支持 规划方案、在线客服、产品培训

    GoKu网关开源版支持插件

    IP黑白名单、Basic鉴权、Apikey鉴权、参数映射、额外参数

    GoKu网关企业版支持插件

    流量控制、Basic鉴权、Apikey鉴权、OAuth2.0鉴权、OAuth2.0第三方认证、JWT鉴权、AK/SK认证、IP黑白名单、跨域、防重放攻击、返回头部、默认返回、参数映射、额外参数、熔断、服务降级、请求大小限制、数据缓存、请求xml/json转换、响应xml/json转换

    Apinto开源网关支持插件:

    请求重写、响应重写、Basic鉴权、Apikey鉴权、JWT鉴权、AK/SK认证、额外参数、参数映射、gzip压缩、流量控制、ip黑白名单、跨域、熔断、access日志


  • 如何Debug Apinto微服务网关

    前提

    操作系统:linux/mac

    Golang版本:1.17及其以上

    IDEA:Goland

    Linux

    1、安装最新的gops

    go install github.com/google/gops@latest

    2、编写启动配置

    上图红框处需要特别注意,需要和图中保持一致,此处设置了环境变量APINTO_DEBUG=true,开启Apinto的Debug模式。

    如果选择在命令行编译程序,则在编译需要携带-gcflags="all=-N -l"参数,如下

    go build -gcflags="all=-N -l" -o apinto

    此文不再说明命令行编译程序的debug方法。

    3、运行程序


    此处需要选择Debug的按钮

    4、Attach To Process

    在弹出的进程列表中选择需要Debug的进程即可

    注意 : Debug模式开启后,master进程名称为“apinto start”,当Debug模式关闭,master进程名称为“apinto: master”

    Windows

    由于Apinto 在实现restart、stop操作时,需要使用到linux系统的信号指令,Windows 上没有相关指令的支持,因此Apinto 不能直接在Windows 上编译运行。

    若想在Windows 上启动,则需要在Windows 上安装Ubuntu 子系统。

    安装ubuntu子系统

    1、安装部署WSL2:安装WSL(一定要升级到WSL2,否则会有些不兼容的问题)

    2、安装ubuntu可视化界面,具体教程请参考Ubuntu安装可视化界面

    3、Debug程序,Linux Debug方法一致

    MAC

    与Linux Debug方法一致,若在arm架构上attach失败,无法找到对应的apinto进程,可以先将gops删除,再重新安装。

    go install github.com/google/gops@latest

  • Apinto 七月归档

    事件一览

    一、发布Apinto 0.6.4版本

    0.6.4版本修复了0.6.3版本的一系列问题,详情如下:

    • 修改额外参数插件value类型

    • 修复cli命令操作失败无日志输出的问题

    • 修复output拓展缺少CheckSkill方法,导致apinto dashboard不能联动的问题

    二、发布Apinto V0.7版本

    • 升级raft算法,将kv存储替换成etcd内置的kv实现
      注意:由于raft算法升级,旧配置不兼容,若之前使用的 apinto为0.6.x及更老的版本,需要使用apinto-import进行升级

    • 修复文件日志驱动配置错误时,删除操作阻塞的问题

    • 新增proxy_rewrite_v2插件

    • 服务发现忽略scheme字段

    关闭的Issue

    在七月我们解决并关闭了Github 上的四个Issue,感谢 Github 用户 nonzzz 、Dot-Liu 、chen2eric 、strawcarb 的支持

    一、端口占用失败,程序未提示

    • 原因:Apinto在cli命令执行时未指定日志输出位置,导致日志输出失败。
    • 解决方案:新增初始化cli日志方法,并在程序启动时进行调用

    二、快速部署教程访问失败

    • 原因:apinto-dashboard教程上线,Readme文档中相关的链接未及时修改
    • 解决方案:修改Readme文档中的教程链接

    三、支持配置导入导出

    • 解决方案:官方提供导入工具apinto-import ,支持网关配置通过文件方式导入导出,具体可访问仓库https://github.com/eolinker/apinto-import

    四、安装包下载链接固定

    • 解决方案:不处理。文件的版本名可以有效减少信息差异,让使用者知道当前下载的版本号、适用的系统和架构。我们了解了其他相关项目,如NSQ和Nacos,他们也是这么做的。

    常见问题整理

    一、openApi的代码入口在哪?

    • 代码目录:github.com/eolinker/eosc/process-admin

    二、Apinto转发代码的入口

    • 代码目录:github.com/eolinker/apinto/router/router.go. 55行

    三、apinto和eosc的关系

    eosc是apinto依赖的底层框架,apinto更像是一个有多个拓展组装而成的程序,eosc实现了下述特性:

    • 多进程模型,使各个进程各司其职

    • cli命令实现

    • 可插拔的插件框架

    • raft集群同步机制

    • 定义程序的执行流程

    • 端口监听与流量通信机制

    • 环境变量机制

    • 日志模块底层实现

    • ......

    四、如何开启Debug模式

    Debug模式描述:

    • Apinto执行时只会输出error等级的日志,一般的使用已经满足

    • 对于开发调试来说,往往需要了解程序执行各个阶段的交互信息,此时可以开启Debug模式,输出更详细的执行信息

    • 由于Debug模式会输出较多日志,除了开发调试、排查程序执行失败等情况,其余时候不建议开启

    • Debug模式默认关闭

    开启步骤

    (1)在执行程序的服务器/系统设置环境变量

    export APINTO_DEBUG=true

    (2)启动程序(默认程序已停止运行)

    ./apinto start
    关闭步骤

    (1)在执行程序的服务器/系统设置环境变量

    export APINTO_DEBUG=false

    (2)启动程序(默认程序已停止运行)

    ./apinto start

    写在最后

    目前Apinto 及其周边项目已经开源,我们希望通过Apinto强大的插件拓展能力,用户可像乐高积木一样根据需要自行拓展Apinto的插件,以满足不同的业务市场需求。

    Apinto 目前属于萌芽阶段,我们希望集合广大开源爱好者的力量,与大家一起讨论方案,接受大家的批评指正,一起将产品打磨完善,做下一个端与端间的Traffic Middleware。

    这是一个开放和积极的项目,我们诚挚地邀请您一起参与到我们的项目开源工作中。每一个贡献都是有意义的,包括但不限于:

    • 查找bugs,取得性能上的提升

    • 帮助完善文档,提供用户操作体验

    • 提交你们的issue,让我们知道您的奇思妙想

    • 参与自定义插件的开发,丰富apinto的能力

    • ...

    欢迎各位开源爱好者参与到Apinto 项目中,和我们一起为开源事业贡献自己的力量。

    联系我们


  • 升级指南 | 如何从Apinto v0.6升级到v0.7

    前言

    Apinto v0.7版本已经发布,由于该版本主要是针对Raft协议的实现进行了一次升级,使用etcd的kv实现替换了eosc自研的kv实现,导致新旧版本数据不兼容,若直接使用0.7版本替换旧版本,会导致数据加载失败。

    Raft协议升级考虑

    • 由于早期选型时对etcd的源码调研不够完整,旧版本只使用了etcd的raft协议实现,eosc重新实现了kv的处理,该实现的可靠性、性能未经证明
    • 本次升级抛弃了eosc自己实现的kv,使用etcd内置的kv实现,该模型及代码经历过海量用户长时间、大规模的使用,可靠性、性能方面具有一定保证,并且方便以后同步升级到etcd的新版本

    为了确保前后数据可以正常迁移备份,官方提供工具库apinto-import进行数据的导入操作,确保数据正常迁移。升级操作分为单节点升级和集群升级两种情况,详细操作如下

    单节点升级

    1、将旧数据导出,浏览器访问接口:{ip}:{port}/export

    2、关闭旧节点

    ./apinto stop

    3、下载并解压新版本节点

    cd {存放目录} && wget https://github.com/eolinker/apinto/releases/download/v0.7.0/apinto-v0.7.0.linux.x64.tar.gz && tar -zxvf apinto-v0.7.0.linux.x64.tar.gz && cd apinto

    4、启动新节点

    ./apinto start

    5、下载并解压导入程序

    wget https://github.com/eolinker/apinto-import/releases/download/v1.0.0/apinto-import-v1.0.0.linux.x64.tar.gz && tar -zxvf apinto-import-v1.0.0.linux.x64.tar.gz && cd apinto-import

    6、导入配置数据(当前版本只支持zip类型文件)

    ./apinto-import import -path "{压缩包名称}" --apinto-address {apinto访问地址}

    示例:

    ./apinto-import import "export_2022-07-29 161215.zip" --apinto-address http://127.0.0.1:9400

    集群节点升级

    1、下载并解压导入程序

    wget https://github.com/eolinker/apinto-import/releases/download/v1.0.0/apinto-import-v1.0.0.linux.x64.tar.gz && tar -zxvf apinto-import-v1.0.0.linux.x64.tar.gz && cd apinto-import

    2、将旧数据导出,浏览器访问接口:{ip}:{port}/export

    3、进入任意节点服务器(下述描述为节点A),让该节点离开集群

    ./apinto leave

    4、关闭节点A

    ./apinto stop

    5、下载并解压新版本节点

    cd {存放目录} && wget https://github.com/eolinker/apinto/releases/download/v0.7.0/apinto-v0.7.0.linux.x64.tar.gz && tar -zxvf apinto-v0.7.0.linux.x64.tar.gz && cd apinto

    6、启动新节点A

    ./apinto start

    7、导入配置数据

    ./apinto-import import -path "{压缩包名称}" -apinto-address {apinto访问地址}

    示例:

    ./apinto-import import -path "export_2022-07-29 161215.zip" -apinto-address http://127.0.0.1:9400

    8、进入到剩余的其他节点,依次执行步骤3、4、5、6

    9、新节点加入节点A所在集群

    ./apinto join --ip {新节点广播ip} --addr={节点A请求地址}

    示例:

    ./apinto join --ip 10.18.0.1 --addr=10.18.0.2:9400

    写在最后

    目前Apinto 及其周边项目已经开源,我们希望通过Apinto强大的插件拓展能力,用户可像乐高积木一样根据需要自行拓展Apinto的插件,以满足不同的业务市场需求。
    Apinto 目前属于萌芽阶段,我们希望集合广大开源爱好者的力量,与大家一起讨论方案,接受大家的批评指正,一起将产品打磨完善,做下一个端与端间的Traffic Middleware。
    这是一个开放和积极的项目,我们诚挚地邀请您一起参与到我们的项目开源工作中。每一个贡献都是有意义的,包括但不限于:

    • 查找bugs,取得性能上的提升

    • 帮助完善文档,提供用户操作体验

    • 提交你们的issue,让我们知道您的奇思妙想

    • 参与自定义插件的开发,丰富apinto的能力

    • ...

    欢迎各位开源爱好者参与到Apinto 项目中,和我们一起为开源事业贡献自己的力量。

    联系我们


  • 更新|Apinto V0.7.版本发布

    更新说明

    1、该版本主要涉及到raft协议的升级,kv实现部分替换成etcd内置的kv实现

    • 升级原因:
      • 由于早期选型时对etcd的源码调研不够完整,旧版本只使用了etcd的raft协议实现,eosc重新实现了kv的处理,该实现的可靠性、性能未经证明
      • 本次升级抛弃了eosc自己实现的kv,使用etcd内置的kv实现,该模型及代码经历过海量用户长时间、大规模的使用,可靠性、性能方面具有一定保证,并且方便以后同步升级到etcd的新版本

    2、修复文件日志配置错误时,导致程序阻塞的问题

    配置错误包括以下场景:

    • 没有创建文件夹、日志权限

    • 文件目录不存在

    • 磁盘空间满,无法创建日志文件

    • ......

    3、新增proxy_write_v2 插件,提供更加灵活直观的转发重写配置,若先前已经使用了proxy_write 插件,可自行删除旧插件,重新配置proxy_write_v2 插件,相关教程请参考proxy_write_v2插件配置

    4、删除服务发现的scheme 字段

    注意事项

    当前版本由于替换了内置的kv实现,其数据和v0.6.4 及其之前版本不兼容,官方提供了数据导入工具apinto-import ,导入操作请点击Apinto升级指南了解具体升级细节

    版本预告(v0.8.0)

    1、会话机制升级,为多协议提供底层会话支持

    2、新增Websocket协议转发功能

    3、新增环境变量模块,支持使用环境变量配置网关转发信息,包括但不限于路由、上游服务、服务发现、鉴权、各类插件

    写在最后

    目前Apinto 及其周边项目已经开源,我们希望通过Apinto强大的插件拓展能力,用户可像乐高积木一样根据需要自行拓展Apinto的插件,以满足不同的业务市场需求。
    Apinto 目前属于萌芽阶段,我们希望集合广大开源爱好者的力量,与大家一起讨论方案,接受大家的批评指正,一起将产品打磨完善,做下一个端与端间的Traffic Middleware。
    这是一个开放和积极的项目,我们诚挚地邀请您一起参与到我们的项目开源工作中。每一个贡献都是有意义的,包括但不限于:

    • 查找bugs,取得性能上的提升

    • 帮助完善文档,提供用户操作体验

    • 提交你们的issue,让我们知道您的奇思妙想

    • 参与自定义插件的开发,丰富apinto的能力

    • ...

    欢迎各位开源爱好者参与到Apinto 项目中,和我们一起为开源事业贡献自己的力量。

    联系我们


  • 更新 | Apinto v0.6版本发布

    前言

    经过两个月的设计开发,Apinto v0.6版本于2022年6月12日正式发布

    本次更新与Apinto Dashboard同步更新上线,重写了openAPI渲染模版逻辑,大家可以选择使用开源的Apinto Dashboard进行可视化网关配置操作,也可以通过最新版的openAPI,开发属于自己的一套可视化UI界面。

    进程模型优化

    新增admin进程,提供openAPI及渲染模版内容

    进程名称及其作用如下:

    • master进程:
      • 类型:常驻进程
      • 作用
      • 守护进程,管理子进程的启停
      • 负责Raft集群的通信与同步
      • Cli命令交互
      • openAPI流量入口,监听管理端口
      • 将openAPI请求转发到leader节点的admin进程中处理
    • admin进程
      • 类型:常驻进程,仅当节点为leader时启动
      • 作用
      • 配置态进程,该进程缓存了worker进程运行所需要的所有信息
      • 处理openAPI请求,校验请求数据的合法性
      • 提供render模版,供dashboard渲染
    • worker进程
      • 类型:常驻进程
      • 作用
      • 网关核心进程,执行流量转发的工作流程
      • 支持加载外部插件
      • 当插件更新/重加载时,该进程会重启
    • help进程:
      • 类型:临时进程
      • 作用:
      • 由master启动,处理完临时任务后停止
      • 当执行安装/升级拓展时,会优先启动该进程校验拓展的可靠性及合法性

    raft集群模型优化,重写事件同步操作

    集群同步模型如下:

    丰富openAPI接口,支持页面渲染

    开发者可通过修改配置的tag 标签,生成相应格式的Json Scheme 渲染模版,tag 标签内容参考json-scheme标签说明

    Dashboard调用流程如下:

    删除全局插件类型(原“type”字段)

    插件不再区分生效阶段,生效顺序及生效阶段由开发者进行定义。
    插件执行顺序如下图:

    移除Cli操作拓展插件功能(包括安装、更新、卸载等)

    拓展安装、更新、卸载等功能将在下版本通过openAPI方式提供,与插件市场同步上线。

    写在最后

    目前Apinto 及其周边项目已经开源,我们希望通过Apinto强大的插件拓展能力,用户可像乐高积木一样根据需要自行拓展Apinto的插件,以满足不同的业务市场需求。
    Apinto 目前属于萌芽阶段,我们希望集合广大开源爱好者的力量,与大家一起讨论方案,接受大家的批评指正,一起将产品打磨完善,做下一个端与端间的Traffic Middleware。
    这是一个开放和积极的项目,我们诚挚地邀请您一起参与到我们的项目开源工作中。每一个贡献都是有意义的,包括但不限于:

    • 查找bugs,取得性能上的提升

    • 帮助完善文档,提供用户操作体验

    • 提交你们的issue,让我们知道您的奇思妙想

    • 参与自定义插件的开发,丰富apinto的能力

    • ...

    欢迎各位开源爱好者参与到Apinto 项目中,和我们一起为开源事业贡献自己的力量。

    联系我们


  • 虽迟但到,Apinto Dashboard v1.0 Beta版本正式发布🎉🎉

    让各位久等了,经过将近两个月的设计开发,Apinto Dashboard V1.0 Beta版本于2022年6月19日正式发布🎉🎉。

    此次发布的Apinto Dashboard是开源网关Apinto 的衍生项目,它为Apinto提供了可视化配置界面。

    从此,我们将告别繁复的命令行curl命令,只需要在ui界面轻轻一点,就可以自动生成配置,上手成本极低。我们可以快速将后端接口托管到网关中,并可以配置鉴权、流控等安全性操作,用Apinto构建安全可靠的服务Api。

    特性

    通过UI界面动态更新Apinto网关配置

    Apinto Dashboard与Apinto交互流程图

    动态加载模版,根据需要开启/隐藏相关界面

    修改文件config.ymlprofessions配置,即可在侧边栏中隐藏/显示

    配置信息:

    导航栏:

    Json Scheme交互,自动渲染界面,约束配置数据

    交互数据如下:

    界面渲染:

    提供丰富的操作日志,监控配置变更记录

    在Dashboard的所有都会记录在操作日志列表中,点击详情可以看到相关操作涉及的数据改动详情。我们也可以通过搜索功能,查找某个时间段的记录,这样我们以后排查问题的时候也能判断是否有非法操作。

    友好的操作体验,自动获取流程依赖

    Dashboard提供友好的操作体验,在我们配置插件的时候,可以自行选择直接输入完整json配置,也可以选择使用UI配置,配置完成后,json部分将自动同步,ui也是页面也是根据json-scheme语法自动生成。

    以后开发apinto的模块或者拓展时,只需要定义好配置的类型、label、最大值最小值等相关限制,就可自动生成页面。

    整个操作也是联动的,比如我们现在需要为路由新增一个鉴权,此时,只要在路由页面点击增加鉴权插件,然后在选择框里选择相应的鉴权,提交即可,这样,带有鉴权的路由便生成完成。

    相信大家已经迫不及待想去试用了,接下来我将给大家介绍下如何部署Apinto Dashboard。

    部署

    由于Apinto Dashboard 是Apinto 的可视化UI项目,因此在部署该项目前,需要确保Apinto项目已经部署完成。

    若未部署Apinto ,请参考教程Apinto部署

    1. 下载并解压安装包

    wget https://github.com/eolinker/apinto-dashboard/releases/download/v1.0.4-beta/apinto-dashboard-v1.0.4-beta.linux.x64.tar.gz && tar -zxvf apinto-dashboard-v1.0.4-beta.linux.x64.tar.gz && cd apinto-dashboard

    2. 启动程序

    nohup ./apinto-dashboard > logs/stdout_apinto-dashboard_"$(date '+%Y%m%d-%H%M%S')".log 2>&1 &

    该命令会将日志输出到logs 目录下以stdoutapinto-dashboard 为前缀的日志文件中

    3. 浏览器打开Apinto Dashboard 地址

    本示例在本地部署,因此ip为127.0.0.1,端口为8081,在浏览器中输入账号密码登录即可

    至此,Dashboard部署完毕,如果大家需要了解更多的使用信息,请点击更多

    写在最后

    • APINO 简介:Apinto是一个基于 Golang 开发的微服务网关,能够实现高性能 HTTP API 转发、多租户管理、API 访问权限控制等目的,拥有强大的自定义插件系统,用户可以自行扩展,能够快速帮助企业进行 API 服务治理、提高 API 服务的稳定性和安全性。接下来我们将提供插件市场,通过Apinto强大的插件拓展能力,用户可像乐高积木一样根据需要自行拓展Apinto的插件,丰富Apinto的能力。

    • 官网网址:https://www.apinto.com

    • Github 链接:https://github.com/eolinker/apinto

    • 论坛地址:https://community.apinto.com/

    • 帮助文档:https://help.apinto.com/docs

    • QQ群号:725853895

    • 微信群二维码:
      img