这是依赖于一个数据源的天气服务,按照约定规范提供给客户端天气数据,且在服务端进行数据的预取与缓存,加速客户端获取天气的响应。
完全采用 Python 代码实现,线上运行数据是:每秒处理100个查询请求,CPU毫无压力;
网络库 netcore 是采用自己实现的 Epoll 事件模型+消息队列+多进程 Worker 的设计;
数据缓存直接采用 Dict 数据结构,Pickle 序列化的本地;
Worker 进程实现周期性预取,处理耗时的压缩、加密的操作。