当前位置: 首页 > 软件库 > Web应用开发 > 网站API >

Apinto

专为微服务架构设计的 API 网关
授权协议 Apache-2.0
开发语言 Google Go
所属分类 Web应用开发、 网站API
软件类型 开源软件
地区 不详
投 递 者 汲睿
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Apinto 是专门为微服务架构设计的开源 API 网关,完全由 Go 语言开发,拥有目前市面上最强的性能及稳定性表现,并且可以自由扩展几乎所有功能模块。 提供丰富的流量管理、数据处理、协议转换等功能,例如动态路由、负载均衡、服务发现、熔断降级、身份认证、监控与告警等。

Apinto 集合了配置和转发功能,使用者可以通过openAPI进行配置,也可通过可视化UI项目Apinto Dashboard进行配置,相关文档可点击Apinto Dashboard部署文档

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

Apinto具有以下优势:

  • 完全开源:Apinto 项目由 Eolinker 发起并长期维护。
  • 优异的性能表现:相同环境下,Apinto比Nginx、Kong等产品快约50%,并且在稳定性上也有所优化。
  • 丰富的功能:Apinto 提供了一个标准网关应有的所有功能,并且你可以快速连接你的各个微服务以及管理网络流量。
  • 极低的使用和维护成本:Apinto 是纯 Go 语言开发的开源网关,没有繁琐的部署,没有外部产品依赖,只需要下载并运行即可,极为简单。
  • 良好的扩展性:Apinto 的绝大部分功能都是模块化的,因此你可以很容易扩展它的能力。

产品特性

功能 描述
动态路由 可通过设置location、query、header、host、method等参数匹配对应的服务
服务发现 支持对接Eureka、Nacos、Consul
负载均衡 支持轮询权重算法
用户鉴权 匿名、Basic、Apikey、JWT、AK/SK认证
SSL证书 管理多个证书
访问域名 可为网关设置访问域名
健康检查 支持对负载的节点进行健康检查,确保服务健壮性
协议 HTTP/HTTPS、Webservice、Restful
插件化 流程插件化,按需加载所需模块
OPEN API 支持使用open api配置网关
日志 提供节点的运行日志,可根据日志设置的等级输出
多种日志输出 可将节点的请求日志输出到不同的日志接收器,如file、nsq、kafka等
Cli命令支持 通过Cli命令操控网关,插件安装、下载和网关的开启、关闭等操作均可使用一键命令操控
黑白名单 支持设置黑白名单IP,拦截非法IP
参数映射 将客户端的请求参数映射到转发请求中,可按需改变参数的位置及名称
额外参数 转发请求时,额外加上后端验证参数,如apikey等
转发重写 支持对 schemeurihost 的重写,同时支持对转发请求的请求头部header的值进行新增或者删除
流量控制 拦截异常流量

2022 年迭代计划

基准测试

 

  • Apinto 完全基于 Golang 开发,不基于现有第三方产品,因此具有外部依赖少,部署简单等特点。 各位可以通过以下方式进行部署: 下载官方提供的安装包安装(推荐) 1.下载安装包并解压, wget https://github.com/eolinker/apinto/releases/download/v0.12.1/apinto_v0.12.1_linux_amd64.tar.gz &&

 相关资料
  • 想要改进此问题?更新问题,以便它仅通过编辑这篇文章来关注一个问题。 我计划使用微服务架构来实现我们的网站。我想知道在服务之间共享数据库是否正确,或者为每个服务使用单独的数据库是否更好。在这方面,我可以考虑为所有服务使用一个通用数据库吗?还是它违反了微服务体系结构的本质?

  • Kubernetes 设计之初就是按照 Cloud Native 的理念设计的,Cloud Native 中有个重要概念就是微服务的架构设计,当将单体应用拆分微服务后, 随着服务数量的增多,如何微服务进行管理以保证服务的 SLA 呢?为了从架构层面上解决这个问题,解放程序员的创造性,避免繁琐的服务发现、监控、分布式追踪等事务,Service mesh 应运而生。 微服务 下图是Bilgin Ibr

  • 我读了一些文章,看了一些视频,但在为这些微服务提供服务方面,没有找到具体的建议。我的理解是,他们应该使用自己的应用程序服务器。 我的问题是它们应该部署在不同的服务器上,还是没关系。 当它们在同一台服务器(计算机)上提供服务时,不会有端口冲突吗?

  • 让我们讨论一下微服务环境的体系结构。我们正在公司内部进行讨论,我想得到一些反馈。我认真考虑的是编排层(代码复制、更多移动部件改变api)。 网络应用- 原料药- 在这种情况下,服务不允许相互对话。业务流程层中的聚合服务 网络应用- 原料药- 这里允许服务相互对话,这里存在聚合服务。 账单属于哪里

  • 我能想到的一个办法是: > 将我的一个sails.js应用程序分解为多个小的sails.js子项目/存储库。 在一个子项目中有一个控制器模型。例如,如果我们考虑具有用户、产品、订单等实体的简单电子商务应用程序,那么每个应用程序都将有单独的sails.js存储库,并具有各自的sails.js模型控制器。那么这个单一的子存储库将从我的一个微服务。 用SAIL.js实现服务间通信的最佳方法是什么?如果用

  • 本文向大家介绍详解Java 微服务架构,包括了详解Java 微服务架构的使用技巧和注意事项,需要的朋友参考一下 一、传统的整体式架构 传统的整体式架构都是模块化的设计逻辑,如展示(Views)、应用程序逻辑(Controller)、业务逻辑(Service)和数据访问对象(Dao),程序在编写完成后被打包部署为一个具体的应用。如图所示: 系统的水平扩展 如果要对系统进行水平扩展,通常情况下,只需要

  • 本文向大家介绍什么是微服务架构?相关面试题,主要包含被问及什么是微服务架构?时的应答技巧和注意事项,需要的朋友参考一下 在前面你理解什么是微服务,那么对于微服务架构基本上就已经理解了。 微服务架构 就是 对微服务进行管理整合应用的。微服务架构 依赖于 微服务,是在微服务基础之上的。 例如:上面已经列举了什么是微服务。在医院里,每一个科室都是一个独立的微服务,那么 这个医院 就是 一个大型的微服务架

  • 我正在构建一个基于Spring启动中的微服务架构的项目。该项目分为多个模块,我使用了 maven 依赖项管理。 现在我想在另一个模块中使用一个模块的服务。我有很多Spring申请。例如,我有两个名为A和B的应用程序。我想在B中使用A中的类,在A中使用B中的类。在这种情况下,我使用了maven依赖项,但这并不完全是在另一个应用程序中使用服务的方式,因为我面临循环依赖。 该如何解决这个问题?