刷新系统结构
1. 现有系统缺陷
1. 无灾备
2. 由于leveldb锁定磁盘的缘故, nginx无法reload也无法开启多进程
3. nginx上现有线程模型复杂, 没有好好利用nginx本身的异步访问
4. 数据库与web逻辑处理之间耦合高
5. nginx上开发更多查询接口难度高, 异常情况下无法人工介入leveldb进行调整
6. nginx没有可参考的api文档
2. 新结构
采用一款叫做ssdb的数据库, 重新规划结构. ssdb是一款使用leveldb做存储, 使用与redis兼容的
socket接口协议的数据库, 其用户包括奇虎360, 百度, 汽车之家等等.
3. 特点
1. 将业务处理逻辑与数据库解藕
2. ssdb比leveldb好使
1. 有多种数据库之间同步的模式
2. 使用socket接口, 并且有命令行client, benchmark工具可以人工介入数据库进行
操作等等. 而且方便开发更多工具用于操作数据库
3. 可以设置数据过期时间
4. 扩容方便, 磁盘甚至可以在其他设备上进行部署
5. 可以在线备份数据库
3. 使用lua来进行访问控制, api简单而且有优秀的文档, 容易使用
4. ssdb功能验证
功能点 方法 判断
测试结果
设置后等待1秒, 取数据超时 使用setx接口, 设置数据1秒超时 通过 数据无法取到
在两台设备上部署数据库并启动. 在设备A上数据库之间通取消iptables
后, 通过.(大概使用iptables DROP掉来自B设备的数据. 在信断开, 恢复后在设备A上查询对应3s后才能查设备B上对数据库进行增加, 删除操作. 取消屏同步 记录的情况 询到) 蔽
两数据库, 一个在两台设备上部署数据库, 启动设备A的数据启动B数据库以后, 进程down掉, 库, 进行增加, 删除操作. 然后启动设备B上启能查询到对应记录的通过 恢复后同步 动数据库. 情况