《基于 Redis 的应用间通信》 一文中介绍了基于 Redis 的应用间通信;同时,也实现了简单的任务队列功能。

为了更友好地作数据交换,需要对程序加以封装,这里我想到了 HTTP。

一个简单的 HTTP 请求,基本上由 Domain+Path+Parameters 组成;为了简化,这里假定了请求都用默认端口,Content-Type 均为 application/json 的 POST 请求。

于是,参考 HTTP 的设计,可以实现简单的应用后台服务器。部分语言不支持多线程,此处先实现单线程版。

基本设定(单线程版)

  • 持续监听消息,收到消息时处理并返回结果,而后继续监听
  • 每个服务程序有一个唯一 Domain,可自由实现多个 API,请求内容及响应统一均为 JSON 格式
  • 一个服务程序有且仅有一个队列,多开程序可达到并行处理的效果
  • 客户端可进行同步调用或异步调用,同步请求时,设有超时时间
  • 基于协议,可跨编程语言进行数据交换

Python 实现

PHP 实现