Apinto 是专门为微服务架构设计的开源 API 网关,完全由 Go 语言开发,拥有目前市面上最强的性能及稳定性表现,并且可以自由扩展几乎所有功能模块。 提供丰富的流量管理、数据处理、协议转换等功能,例如动态路由、负载均衡、服务发现、熔断降级、身份认证、监控与告警等。
Apinto 集合了配置和转发功能,使用者可以通过openAPI进行配置,也可通过可视化UI项目Apinto Dashboard进行配置,相关文档可点击Apinto Dashboard部署文档。
Apinto是运行在企业系统服务边界上的API网关。当您构建网站、App、IOT甚至是开放API交易时,Apinto 能够帮你将内部系统中重复的组件抽取出来并放置在Apinto网关上运行,如进行用户授权、访问控制、防火墙、数据转换等;并且Apinto 提供服务编排的功能,让企业可以快速从各类服务上获取需要的数据,对业务实现快速响应。
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等 |
转发重写 | 支持对 scheme 、uri 、host 的重写,同时支持对转发请求的请求头部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依赖项,但这并不完全是在另一个应用程序中使用服务的方式,因为我面临循环依赖。 该如何解决这个问题?