java 单机接口限流处理方案
370
2023-01-20
本文目录一览:
【快乐摸鱼】是一款基于Vue和Electron的开源接口管理工具。
GitHub地址
Gitee地址
完整文档
在线体验
最初构建这个项目的时候是为了学习Node.js和解决团队前后端协调问题。社区中有 YApi 、Rap2、Doclever、 Nei、Swagger、Apidoc等开源解决方案,同时也存在 Postman、Eolinker、ApiPost等商业解决方案。
在这之前团队尝试了YApi和Rap2等社区方案,服务器接口管理工具他们能够满足一些基本的需求,但是在深入使用以后,还是出现了一些影响效率的问题。当时使用这两个工具最大的问题就是接口无法支持多级嵌套,某些项目接口多了以后会导致检索效率大大降低。于是尝试从头开始写一款接口管理工具。
非常核心的一个功能,在前后端分离情况下,一套简洁的团队管理策略会大大提高分工效率。服务器接口管理工具我们将权限分为 只读、读写、管理员三类。
上面的三种角色可以满足大部分日常使用需求。在一些特殊情况下服务器接口管理工具你可能需要更加细粒度的权限控制,比如服务器接口管理工具:拥有读写权限的用户服务器接口管理工具你只希望他能编辑文档,但不希望他能导出全部文档。我们提供了自定义角色功能,可以精确到每一个接口和路由(一般情况下用不到)。
非常核心的一个功能,设计一个方便并且易使用的目录导航能够大大增强录入体验。我们从其他开源项目issue中总结了一些常见需求。
工具实现了上面的全部功能,同时也扩展了一些实用的功能。
标签导航是为了方便开发人员在多个接口之间快速切换,开源的产品这块做的并不是很完善,我们在实践中总结了这些需求。
大部分商用的接口工具都具备导航标签功能,但是开源产品这块大都不具备标签导航功能或者功能完成度不高
大部分的接口工具都会内置接口调试功能,这样开发人员只需要使用一个工具就能完成接口调试和接口录入。不过由于浏览器本身的限制(同源策略),直接在web端发起HTTP请求大概率会失败。这里列举了一些常见的解决方案。
从技术上来说,使用客户端来规避同源策略是一种比较好的实践,同时依托客户端强大的api还能完成很多web端无法完成的事情,当然安装客户端也会给用户带来一些不方便。目前主流的商业项目大都采用客户端的形式来为用户提供接口调试功能,部分工具甚至不提供web端的使用。我们采用了客户端的方式来实现接口调试,同时也保留了web端的使用功能,除了接口调试和Mock功能无法使用外,web端和客户端在功能上没有其他区别。我们也会在未来提供浏览器插件功能,这样用户就可以在web端使用接口调试功能了
我们总结一些常见的接口调试需求
对接口的增删改查是整个接口工具最核心的部分,常见的开源产品对 请求参数(Body),多个返回参数方面支持比较弱。我们总结了在典型业务场景下,接口录入应该包含以下核心模块。
【接口录入工作区】
除了完善必要的接口模块,工具还在录入效率方面想了很多办法。我们从Yapi、Rap2等开源项目issue中整理用户常见的录入需求。
目前市面上接口工具总类繁多,在处理导入的时候会有以下几个主要问题。
目前比较稳定和被普遍认可的规范是 OpenAPI 规范,很多商业化的工具都是支持这种规范的。postman这类工具拥有非常大的市场占有率,大部分工具也都支持这种类型数据导入。我们收集了一些常用的接口工具,并且列出了工具对导入的支持情况。
在常规导入需求上面,我们扩展了一些功能,提高了部分项目内迁移效率。
导出功能一方面是方便用户分享文档给第三方用户,另一方面也提供了一定的迁移和备份能力。下面是一些常见的导出场景
日志功能是团队管理和安全操作中非常重要的一环,工具对接口的每一步操作都做详细记录。
除了基本的记录以外,工具也提供非常丰富的检索。在某些操作上面用户可能希望获取更加详细的日志信息,例如:对于编辑文档,用户可能更希望知道具体改变了哪些内容。工具目前在这方面的支持度有限,未来会继续完善这块内容。
工具区分 接口录入 和 接口预览 两个状态,接口录入的目的是达到高效录入,接口预览的目的是达到高效检索。和其他工具导出数据不同,工具在检索和预览方面做了一些优化。
在实际项目开发的时候,联调人员更关心某某人修改的最近几条数据,通过过滤条件能够非常高效的进行数据检索。
相对于表格形式的json展示,下面这种呈现形式对开发人员来说是非常友好的。
可以使用Mock功能来进行快速开发,和大部分接口工具一样我们支持 Mock.js 语法,同时我们简化了整个mock过程你无需做任何额外的配置。工具会在本地启动一个Mock服务器,你可以简单的把这个服务器当作后端的服务器。
非常遗憾,目前还不支持这个功能,不过我们已经开始开发这个非常重要的功能了。
客户端技术栈
服务端技术栈
目前开源类的接口工具大都只提供使用以及部署文档,二次开发对于用户来说会比较困难。为了延长项目寿命,同时也为了吸引更多开发者参与,我们把完善 开发文档 和 产品设计思路 作为了最重要的开发任务之一。由于项目本身的复杂性,完善的开发文档将会占据大量的开放时间,文档会有一定的滞后性。
产品设计思路
开发文档
部署文档
我们希望给正在寻找接口管理工具的用户多提供一种选择,同时也不断完善产品设计和开发文档,希望吸引更多的人参与到项目中来。
其实哪个用习惯就会觉得好用,这里介绍两个用户比较多的WEB管理面板
一、WDCP
WDCP是老牌的管理面板了,很多早先网上的建站教程,只要是可视化面板的,基本都是用的这个
二、AMH
AMH也是老牌的管理面板了,不过开源免费版本已经三年多没更新了,现在用户比以前少多了
三、宝塔面板
这个估计是现在用户最多的面板了,因为上手方便,现在基本上用可视化面板的都用这个
IBMC是iMana的升级,功能增强,都是用于管理服务器web UI界面,基本功能一致。V3及以后版本叫iBMC。iBMC在处理芯片和软件上都做了升级,iBMC开始采用华为自研管理芯片。软件也做了重大修改,比以前的版本更加稳定。
它是面向服务器全生命周期的服务器嵌入式管理系统。提供硬件状态监控、部署、节能、安全等系列管理工具,标准化接口构建服务器管理更加完善的生态系统。iBMC基于华为自研的管理芯片Hi1710,采用多项创新技术,全面实现服务器的精细化管理。
功能分析
故障诊断与管理(FDM)是iBMC一系列诊断技术和工具的总称。FDM对服务器各类部件进行全面的监控,实现服务器关键部件的深度故障诊断和故障预测机制,有效定位率可达93%。
同时FDM 还提供了系列的故障辅助定位工具,为最终运维人员分析定位故障,带来极大的便利。通过动态能耗管理技术和休眠技术,使设备节能管理更加高效,平均可节约耗电15%~30%。结合服务器端到端的散热设计,可增加服务器在线服务时长30%以上。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~