精易论坛

标题: 【开源】bl-api-cloud,可扩展轻云服务端框架 [打印本页]

作者: Mruos    时间: 2019-2-22 13:20
标题: 【开源】bl-api-cloud,可扩展轻云服务端框架
本帖最后由 Mruos 于 2019-2-22 13:53 编辑

bl-api-cloud,轻云服务端


为轻量级可扩展的API服务端框架,主要用于响应http请求,开发者可通过开发自己的功能插件(.dll)进行加载以达到扩展。


丨前言


之前发过帖子《【框架】bl-api-cloud,高性能可扩展的API服务器》 https://125.confly.eu.org/forum.php?mod=viewthread&tid=14191272&extra=

且获得了不少网友的认可,最近几天就行了大的优化、更新,并全部开源出来。




丨用途


为其他程序、应用,提供便捷的http接口搭建功能,开发者从而不再需要使用大型、复杂框架。

(毕竟很多时候为了一个小接口不值得用主流语言的比如java的Spring或python的Flask去搭建服务端)

举个最简单的例子,有时在授权、防破解等应用中,我们需要获取准确的北京时间。一般我们为了方便会通过第三方来获取:

  • 找个提供北京时间的第三方web页面;
  • 写个模块或DLL,提取页面里的北京时间;

弊端:如果第三方页面出现问题,或web页面源码有变动,那么获取就会失败,进而影响了所有使用了此模块/DLL的程序。

其实,很简单,我们让自己的服务器自动同步了时间(一般都默认开启着),然后提供一个http接口即可,用自己的最稳定。

网页_访问 (“http://192.168.1.1:6680/api/sup/bjtime/10”)

我自己使用本框架已应用的领域:



丨特色


1、通讯组件使用的为HPsocket,强大、稳定

HP-Socket,是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统。

其Server 组件:基于IOCP / EPOLL通信模型,并结合缓存池、私有堆等技术实现高效内存管理,支持超大规模、高并发通信场景。

应用程序能够根据不同的容量要求、通信规模和资源状况等现实场景调整 HP-Socket 的各项性能参数(如:工作线程的数量、缓存池的大小、发送模式和接收模式等),优化资源配置,在满足应用需求的同时不必过度浪费资源。
   

2、双服务端支持(http、https)

服务端启动端口自定义,默认http服务端80端口,https服务端443。当然本框架出发定性小众领域使用,可以设置其他端口,以免占用重要的web框架接口。



3、扩展便捷

扩展(插件)为DLL文件,只需放入根目录下的/plugins即可。DLL支持热加载与释放,无需终止服务端主程序即可进行DLL更新。

开发模板简单,一目了然,因为全部开源,开发者依然可以自主向插件传递更多可操作的主程序指针(通常模板自带功能足够使用了)。
每个插件都有自己的http访问请求处理域且可以是多个,插件之间不会互相冲突;

在两个示例demo中,对于/api/sup/bjtime根址的http请求,服务端只push到了bjtime.dll插件,对于/web的http请求,服务端只push到了web-demo.dll插件。


提供有2个扩展开发模板demo:

(1)bjtime

示例如何返回Get请求,功能性代码不足20行即可实现;



(2)web-demo

示例web页面返回,提供Get静态web目录文件回执和向服务端Post数据处理示例;

1、访问页面(http与https)



2、post数据



4、集成实用便捷功能

自带集成多色日志输出、debug消息模式、访问频率保护等功能;

(1)多色日志输出

主程序的日志消息窗口,可以对应不同的日志显示不同的颜色,方便开发者一目了然的找到查看消息。如:

灰色(gray)的为debug消息;
红色(red)的为异常或错误信息;
绿色(green)的为收到的事件;
黄色(yellow)为重要系统消息;

当然可以自己设置其他颜色,以及如何输出。

注意: 多色输出使用的是超级编辑框组件,在高并发下是否对程序效率影响有待考证(组件可能拖累程序),请自行进行取舍、替换。


(2)日志记录

主程序集成一个简单日志记录模块,主程序运行每一次运行后都会在/log目录创建一个日志文件(名称以运行开始时间-运行结束时间.txt为名,方便开发者查找时段消息)。

开发者也可以在自己开发的插件中加入独立的日志记录。


(3)debug消息模式

主程序启动后通过输入sys debug on、sys debug off可开关debug模式,在debug模式下,会输出显示更多的日志消息(修改主程序文件可以自己定义显示什么内容为debug类型的消息),以便于程序调试。

(4)访问频率保护

主程序自带了一个频率保护功能,可以自行设置频率。如对于同一IP的访问限制在最近n秒内不可以超过i次。此功能用的自己简单设计的一个Belt模型,小众使用足够,高度使用下,开发者可根据实际需求决定是否自己去设计类似功能。

5、心跳包异常监测

为了应对服务端布局在云服务器上异常退出的情形,用户可以通过发送Get心跳包的请求来确认服务端运行状态,发生异常可重启它。本框架目录下有个示例demo。

用户可以自己设置心跳包地址,默认/api/this/heart



6、web服务端

可以用于构建简单web页面,与web页面交互,理论上只要你精通web前端及后端处理逻辑,可以搭建(不过有这能力肯定不是用易语言搭建了)。

示例开发demo(plug-demo-web.e)提供了一个示例参考,可以搭建web页面,当然专业web设计等请移步使用主流语言的成熟框架。

参考上面图片。


7、命令行式操作

最大化简化了服务端的UI界面(毕竟后端的东西),提供命令行式命令输入操作,除了系统前缀的命令,其他可推送到每个插件;

开发者可以在自己的插件里获取主程序输入的命令,然后进行相关处理。


8、开发难度低

完整开源,包含主程序在内上手难度极低,代码注释齐全,结构明晰;也可以作为网络应用、DLL插件类型热加载释放等学习参考项目。




丨使用协议


本框架遵从BSD开源协议

可以任意使用本框架及代码进行二次开发,开发后产品可以闭源,开发源码主文件需要注释版权引用说明;
不可以使用本框架作者信息进行推广、营销;


丨下载





丨案例贴图


1、微信公众号后台程序





2、网络验证系统,用户登录


丨其他


by: Mruos

QQ/微信: 812465371[qq]812465371[/qq]

QQ群: 465021903

web: www.burnlord.com

使用问题、建议、Bug反馈,跟踪更新等欢迎加群交流~

本程序依然存在不足之处,欢迎各大佬批评、指出,一起完善。




丨支持一下,给个打赏~







作者: 小小小Baby    时间: 2019-2-22 15:22
开源必须支持,顶作者
作者: guaika    时间: 2019-2-22 17:42
支持开源,,,,
作者: 毛超    时间: 2019-2-22 17:55
感谢分享!!!!!!!

作者: jxxypxh    时间: 2019-2-22 18:01
来学习下,谢谢

作者: 泠淼姬sama    时间: 2019-2-22 18:19
大佬,感谢分享

作者: hgy19880905    时间: 2019-2-22 18:24
#在这里快速回复#支持开源~!感谢分享
作者: zlqjwang    时间: 2019-2-22 18:55
好高端的感觉

作者: 汉族    时间: 2019-2-22 20:11
看着介绍不错啊 赞一个
作者: 59hdvj    时间: 2019-2-22 20:20
支持一下楼主              

作者: Decat    时间: 2019-2-22 20:39
看看是什么

作者: 人气猫    时间: 2019-2-22 20:44
看看。。。。。。。。。。


作者: 猜度    时间: 2019-2-22 21:01
支持上传文件?
作者: 2987363174    时间: 2019-2-22 21:40
下载看看2333333


作者: sunmoonstar    时间: 2019-2-22 22:07
一定要下来学习学习

作者: 美女じ打屁屁ジ    时间: 2019-2-22 22:29
一定要下载 下 看看 才好 啊
作者: szwwltl    时间: 2019-2-22 22:53


作者: static101    时间: 2019-2-22 22:56
NP,很强大啊Σ(っ °Д °;)っ
作者: leiwawa001    时间: 2019-2-22 23:00
谢谢分享。
作者: jt0106    时间: 2019-2-22 23:11
看看 学习一下
作者: jiang8125    时间: 2019-2-22 23:22
参与/回复主题

作者: 740949011    时间: 2019-2-22 23:34
不错不错,谢谢分享!!!
作者: kagari    时间: 2019-2-23 00:15
        支持开源~!感谢分享
作者: huxian    时间: 2019-2-23 05:47
看不懂,不知道楼主要表达的意思
作者: huxian    时间: 2019-2-23 05:48
楼主的意思难道是用自己的电脑做服务器吗?
作者: freexx    时间: 2019-2-23 08:34
这个必须支持一个
作者: Mruos    时间: 2019-2-23 09:21
huxian 发表于 2019-2-23 05:48
楼主的意思难道是用自己的电脑做服务器吗?

本地电脑一般都连在路由器里,如果做服务端,需要进行端口映射。

所以,这是后端服务器,肯定主要布局在服务器上的
作者: Mruos    时间: 2019-2-23 09:22
gauss 发表于 2019-2-22 21:01
支持上传文件?

在服务端进行了相关协yi头处理就可以
作者: 网络注册会员    时间: 2019-2-23 09:32
支持一下支持
作者: Joniak    时间: 2019-2-23 09:52
感谢分享,支持创新

作者: xslyhk    时间: 2019-2-23 10:24
谢谢分享哦
作者: 我会让你抓狂    时间: 2019-2-23 11:34
学习一下!!

作者: 1025    时间: 2019-2-23 11:43
支持开源,感谢分享。

作者: gys497    时间: 2019-2-23 14:00
感谢发布原创作品,精易因你更精彩!
作者: gudandexuan    时间: 2019-2-23 16:23
下载下来 学习学习 感谢分享

作者: KEN    时间: 2019-2-23 17:10
学习一下,谢谢

作者: 枫眼    时间: 2019-2-24 04:13
66666666666666666
作者: 撩唇笔    时间: 2019-2-24 08:21
66666666666666666
作者: 初柚    时间: 2019-2-24 09:23
感谢发布原创作品,精易因你更精彩!
作者: zhu798542746    时间: 2019-2-24 10:06
支持一下!!!!!!

作者: 衰而不爱    时间: 2019-2-24 11:55
刚好正在开发类似的,下载学习学习。
作者: 1456417373    时间: 2019-2-24 13:13
可扩展轻云服务端框架

作者: wxmthh    时间: 2019-2-24 13:24
看看楼主是怎么弄的
作者: 怪兽叔叔    时间: 2019-2-24 15:25
正需要这个东西,谢谢楼主了
作者: 司祭    时间: 2019-2-24 15:56
好像很不错,下载学习了
作者: 闪闪    时间: 2019-2-24 18:29
吊吊吊
作者: 安陆华硕专卖    时间: 2019-2-24 19:21
支持开源~!感谢分享

作者: mier001    时间: 2019-2-24 19:39
支持一下。。。。。
作者: chenuqiang    时间: 2019-2-24 19:42
支持开源~!感谢分享
作者: 幸福不是幸福    时间: 2019-2-24 20:28
DLL插件类型热加载释放等学习参考项目。

作者: 努努    时间: 2019-2-24 20:53
感谢分享~~

作者: 晴雯晴雯    时间: 2019-2-24 21:00
你是太原的吗?



作者: kk1028438062    时间: 2019-2-24 21:37
谢谢大佬!!!
作者: xcj94    时间: 2019-2-24 21:39
好东西谢谢分享,辛苦了。

作者: yes123    时间: 2019-2-24 21:40
学习一下,谢谢
作者: WWII    时间: 2019-2-24 21:44
来看看吧

作者: Terrell    时间: 2019-2-24 21:48
我的天啊,大佬啊,这东西太好了
作者: ww2510095    时间: 2019-2-24 21:55
下载学习....................

作者: 六升臣    时间: 2019-2-24 21:59
        支持开源~!感谢分享
作者: neysummer    时间: 2019-2-24 22:05

感谢分享~~
作者: nekaka    时间: 2019-2-24 22:19
好东西!!
作者: anner    时间: 2019-2-24 22:27
来看看  吧
作者: yinliming8    时间: 2019-2-24 22:38
谢谢楼主的分享。


作者: baih123    时间: 2019-2-24 22:46
感谢分享~~
作者: 加盐白咖啡    时间: 2019-2-24 23:14
回复看看~~

作者: laji520jn    时间: 2019-2-24 23:27
优秀,学习一下谢谢
作者: 不靠谱    时间: 2019-2-24 23:47
真是太需要了。

作者: haoajc    时间: 2019-2-24 23:50
先下载研究一下
作者: 6125092    时间: 2019-2-25 01:31
下载学习一下啊啊啊啊啊啊
作者: sinue9528    时间: 2019-2-25 02:24
看看
作者: Mata    时间: 2019-2-25 02:28
下载看看啊

作者: pasyou1    时间: 2019-2-25 04:23
不错,学习了!!!!
作者: linqing4    时间: 2019-2-25 08:45
谢谢分享,膜拜大佬
作者: BigBoss007    时间: 2019-2-25 10:34
下载看一下.

作者: 2686467151asd    时间: 2019-2-25 12:15
6666666666666666666666666666666666666666666666666666666666666

作者: xiaoye77    时间: 2019-2-25 13:41
给力d

作者: 以小兵    时间: 2019-2-25 14:26
感谢分享,支持开源。

作者: 张大仙    时间: 2019-2-25 14:27
支持开源!!!

作者: CherishAYH    时间: 2019-2-25 14:52
支持开源,让国产语言发扬光大
作者: 可乐cl    时间: 2019-2-25 15:10
正需要先拿走

作者: qck易语言    时间: 2019-2-25 15:26
天哪,我才研究,你都出了
作者: 萧敬腾    时间: 2019-2-25 16:25
谢谢分享···

作者: jspengcf    时间: 2019-2-25 16:51
我正在开发公众后台   参考一下

作者: 傻妞    时间: 2019-2-25 19:31
不错,支持一下先


作者: 1097506135    时间: 2019-2-25 19:34
支持开源~!感谢分享
作者: lilina    时间: 2019-2-25 19:36
看看看看看看看看看看看看看看看看看看看看看看看看看看看看

作者: f100long    时间: 2019-2-25 19:43
努力学习,天天向上


作者: 轻风影    时间: 2019-2-25 20:58
看看啥样子效果。
作者: 瘦瘦的小四    时间: 2019-2-25 22:07
太牛逼了,感谢分享

作者: z949056360    时间: 2019-2-25 22:57
666666感谢大佬
作者: z949056360    时间: 2019-2-25 22:57
66666666666
作者: lqdefeng    时间: 2019-2-25 23:08
看看啥样子效果。
作者: anass    时间: 2019-2-25 23:58
kkkkkkkkkkkkkkkkkkkkkkkkkkkkk

作者: 啊基德    时间: 2019-2-26 00:07
感谢楼主的无私奉献

作者: 醉酒成梦°    时间: 2019-2-26 01:19
学习一下。

作者: KB科技    时间: 2019-2-26 06:48
貌似开发API 这个挺好的
作者: 15887059803    时间: 2019-2-26 09:12
感谢分享支持开源
作者: SoloCat    时间: 2019-2-26 09:15
开源?瞧瞧什么黑科技

作者: 酷易自绘    时间: 2019-2-26 09:18
好强大的感觉,原来易语言也能这么用

作者: 15659132033    时间: 2019-2-26 10:23
好强大,学习





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4