bl-mid-proxy,中间件

Mruos阅读(71)

bl-mid-proxy,中间件代理端

目前本中间件,主要实现mysql连接池redis连接池crontab任务定时器三大功能。

本中间件实质为一个服务端,通过http请求进行通信,任何编程语言都可以对接

提供简单的SDK(e、python、php、java),其他语言可自行组装http请求进行通讯。

初衷与目的:

  1. mysql数据库的增删改查基本是后端编程的核心代码,占据很大的代码工作量。开发者需要去找寻合适的支持库,在代码中引用支持库,建立与管理连接、特定语言框架还有数据库模型语法等等,对于初学者难于上手;

    本中间件为独立的http服务端,其内部有数据库连接池进行mysql管理,接受http请求执行sql,并返回json数据,方便各语言直接转成适用本语言的对象使用。

    开发者只需要把要执行的sql语句作为参数,发送一个post请求到本中间件即可执行并获得json数据结果。无需去管其他任何与数据库相关的代码,只需要知道日常使用的增删改查的sql语句即可;

  2. redis缓存与mysql同样的道理,开发者只需要知道redis的命令即可,无需去管所在的语言使用什么redis库,怎么引用库,如何操作等等;

  3. 定时器,程序总免不了存在定时执行、周期执行的任务。在以往的编程中,我们可能是创建一个线程来去定时 执行周期事件,或者死循环等等方式,对于一些语言(尤其解释型语言)来说,不当的方式可能代码逻辑上难处理,系统资源占用还高;

    本中间件提供类似Linux的crontab功能,可以通过http去回调周期代码、运行指定程序、执行sql语句等,完成定时执行功能;

优势:

  1. 应用服务端代码不需要再引入和编写比如数据库连接管理类代码,降低工作量。易于初学者上手,比如对于通常使用的数据库增删改查,你只需要知道sql语句怎么写即可;

  2. 便于对接,任何编程语言皆可,只要实现了http请求到本中间件,即可得到结果;

  3. 小巧,相较其他解释型编程语言实现本系列功能,本独立中间件效率更高、系统资源占用小,受环境依赖基本无(windows系统运行即可,无需任何依赖);

劣势:

  1. 因为本中间件通过http通信,而这必然有一个网络传输的过程。如果应用服务端与本中间件在本地同一IP下(同一电脑上)那么这个带来的时间损害极低(建议在一起)。如果是分布式分布,不在同一局域网中,便存在网络的影响,速度受网络条件影响;

  2. 可能存在技术盲区。比如数据库执行查询的sql语句存在字节集字段的,因为sql查询返回的是json数据,无法包含字节集数据,所以字节集字段无法使用(可考虑修改源码,对字节集进行base64成文本添加到返回json中或者以字节集文件形式等);

  3. 大型应用请自行测试本中间件是否够用,本中间件定为小型应用快速成型开发;

权限验证:

整个中间件程序仅有一个IP白名单。所以,终端用户直接与本中间件进行http通讯,将会使比如mysql等面临风险。(当前成品版要求必须有白名单,若自行修改源代码取消白名单限制,请注意风险!)

强烈建议,白名单仅限本机内网或指定IP进行连接。

推荐:

不知如何安装mysql、redis等,可通过phpstudy,一键安装启动。

phpstudy:https://www.xp.cn/

API示例:

其他示例请参考help说明。

url: /api/mysql (默认,修改后以修改为准)

method: POST

data:

{
    "sql":"select * from userinfo limit 0,2"
}

success:

{
    "errcode":200,
    "errmsg":"success",
    "data":[                          //  查询语句,将包含data数据结果
        {
            "id":1,
            "name":"小明",
            "age":10
        },
        {
            "id":2,
            "name":"小李",
            "age":14
        }
    ]
}

fail:

{
    "errcode":401,             // sql语句执行错误,返回401
    "errmsg":"1146:Table 'test_db.userinf' doesn't exist"
}
{
    "errcode":501,             // 中间件因为繁忙未能受理
    "errmsg":"server busy."
}

SDK:

提供e、python、php、java的SDK,内容较为简单,仅是封装了请求。其他语言自行参考help的请求方式发送post对接。

  1. e语言

  1. python

  1. php

  1. java

感谢:

  • 服务端组件:HPsocket 官网

  • redis:使用的是E2EE的redis同步客户端。 官网

  • crontab:使用的为vSpear所开源贡献的定时器。 主页

关于:

本程序遵从BSD开源协议,谢谢使用与参与改进,丰富功能。有问题欢迎留言,期望大佬们有使用到的不断完善与分享~

Github:https://github.com/Mruos/bl-mid-proxy

Gitee:https://gitee.com/burnlord/bl-mid-proxy

by:Mruos

QQ/wechat:812465371

web:burnlord.com

软件、插件、APP、小程序、网站……,可联系~

【小程序】小觅捷径

Mruos阅读(149)

 

微信小程序,小觅捷径

用途:专业文献查询软件、便捷功能服务

特色:

1、拥有作者平台,用户可以注册为捷径作者;

2、内置一个自行开发的简单的jsonScript脚本解释器,捷径作者可快速上手制作捷径,然后发布,供其他用户使用,且捷径可以加密码局部使用;

 

 

 

 

服务端守护程序

Mruos阅读(640)

如下图,

主要为通过周期访问服务端的心跳地址来确认服务端程序是否在稳定运行,

如果连续3个周期未收到心跳数据返回则会重启服务端。

重启时会先尝试结束原程序(如果程序只是报严重错误还未退出的话),再启动程序。

程序请自行在启动后进行正常运行。

下载地址:

链接: https://pan.baidu.com/s/14Vv6gWbDFsWjtqtPmyd-Dw

提取码: yvbz 

【微信公众号】文献检索系统(sci-hub)

Mruos阅读(657)

学术、文献,世界科研前沿的大咖文章。寻找起来困难吗??

不难,一个机器人全部帮你搞定~

 

【全面】全方位搜索,微软、谷歌、scihub、doi、pmid、百度……

【亲和】QQ群内搜索、微信公众号搜索、甚至微信群

【强大】1、提供API接口供网站或其他app调用,可以扩展服务;

              2、持续不断的自我数据库完善,创建自己的文献系统;

              3、文献云储存进行备份,不怕丢失,不怕失效;

              4、RSS-feed,搜索维护;

              5、深度用户分析、找到你的兴趣点;

              6、用户分享、求助系统,人与人的扩展;

 

依托unts框架构建。支持QQ机器人、微信机器人、微信公众号、API接口、web

 

案例:

 

 

 

 

本系统为定制程序。

UrlGo,静态页面更新助手

Mruos阅读(629)

一、UrlGo 是做什么的

UrlGo,是为了方便快速的对数据网页进行更新而开发的在线页面更新工具。

简单理解:

如果你用过PicGo,就知道它多方便了。PicGo,是图片云床工具,可以便捷的把你的图片上传到自己的云储存中(如:七牛云、又拍云……),获得外链供其他网站、程序使用。

使用云图片,可以减少网站空间占用,其次云储存中图片都进行了CDN加速,可以有效提高你的网站效率,减少网站服务器压力。

本程序类似图片云床,只是它是把数据页面上传/更新到自己的云储存中。

如:

  1. 更新文件清单(update.json
  2. 应用公告(app.json
  3. 更新日志(updatelog.html
  4. css/js文件(wechatset.css

以及其他用于存放数据的静态简单页面。

二、程序运行

本小网站程序主要操作的仅有2个页面,为静态的可放在云储存中以便CDN加速打开。

示例站点:

创建:http://sup.burnlord.com/app/urlgo/creat.html

设置:http://sup.burnlord.com/app/urlgo/set.html

1、创建页

如下图,管理员可以通过管理员密码(授权码)来创建一个页面,并且可以为这个页面设置一个独立的密码(便于交给他人独立更新页面)。

本页面仅限管理员操作,用于便捷生成一个页面地址。

2、设置页

如下图所示,填写创建的url地址,创建时的密码(管理员密码也可)即可更新页面内容。

三、优势

1、创建页面、设置页面、数据内容页面都在upyun云储存,访问时皆被CDN进行了加速,速度快

2、页面都在云储存,不占自己网站的虚拟主机/服务器上空间

3、处理程序服务端是exe,布局简单,拖到云服务器使用即可。且可以任意设置端口,可不占用网站的80端口,不影响云服务器上其他程序

4、更新数据页面便捷了,这是重点!!!

四、附图

1、更新程序上的更新记录

2、服务端效果

五、价格

成品+免费搭建: 49¥     

建设需求:

  1. 一个域名且已备案;
  2. 又拍云开储存空间;
  3. 云服务器运行处理程序(exe);

成品服务端绑定云服务器,一次绑定即可。搭建请准备好所需条件(已备案域名、云服务器);

至于担心又拍云云储存费用,又拍云有免费额度,而且如果不放图片、视频等资源,免费的额度足够足够你平常使用。

下载程序     开通授权     搭建教程     upyun

所有源码: 99¥

如果需要自己扩展、学习,可买源码。程序不大,就算没有web基础,研究一下也可以上手改进。

联系作者QQ:812465371

插件 工具 机器人

联系我们