mostdb是个golang编写的分布式KV数据库,基于goleveldb保存数据,提供get、set、del等http接口。
分布式算法非常简单,使用过半策略,只要大部分节点成功就认为是成功,顾名思义mostdb
- 使用
goleveldb保存数据,适用于节省内存资源保存大量数据的场景 - 基于过半策略的分布式集群支持,提供数据冗余性、高可靠性,配置部署极其简单
- 提供
get、set、del等http接口,开箱即用
# 以下3台以集群方式启动,配置本节点地址及关联节点地址即可,无中心节点,部署极其简单
# (也可以不配置MOSTDB_SERVER_URL,仅配置MOSTDB_CLUSTER_URLS为不含本节点的其他节点地址即可)
# 节点1
docker run -d -p 5379:5379 MOSTDB_SERVER_URL=http://172.27.59.51:5379 \
-e MOSTDB_CLUSTER_URLS=http://172.27.59.51:5379;http://172.27.59.52:5379;http://172.27.59.53:5379 \
gotoeasy/mostdb
# 节点2
docker run -d -p 5379:5379 MOSTDB_SERVER_URL=http://172.27.59.52:5379 \
-e MOSTDB_CLUSTER_URLS=http://172.27.59.51:5379;http://172.27.59.52:5379;http://172.27.59.53:5379 \
gotoeasy/mostdb
# 节点3
docker run -d -p 5379:5379 MOSTDB_SERVER_URL=http://172.27.59.53:5379 \
-e MOSTDB_CLUSTER_URLS=http://172.27.59.51:5379;http://172.27.59.52:5379;http://172.27.59.53:5379 \
gotoeasy/mostdb# 接口例子(值仅支持字符串类型)
# 1)保存
curl -X POST -d '{"key":"ping","value":"pong"}' 'http://172.27.59.51:5379/mostdb/set'
# {"code":200,"success":true}
# 2)获取
curl -X POST -d '{"key":"ping"}' 'http://172.27.59.51:5379/mostdb/get'
# {"code":200,"success":true,"result":{"key":"ping","value":"pong"}}
# 3)删除
curl -X POST -d '{"key":"ping"}' 'http://172.27.59.51:5379/mostdb/del'
# {"code":200,"success":true}
# 4)异常:不足过半节点成功
curl -X POST -d '{"key":"ping"}' 'http://172.27.59.51:5379/mostdb/get'
# {"code":500,"message":"NotMost","success":false}
# 5)异常:不存在
curl -X POST -d '{"key":"xxx"}' 'http://172.27.59.51:5379/mostdb/get'
# {"code":500,"message":"NotFound","success":false}-
MOSTDB_STORE_ROOT数据存储目录,默认/opt/mostdb -
MOSTDB_SERVER_PORT服务端口,默认5379 -
MOSTDB_SERVER_URL本机节点服务地址,默认“” -
MOSTDB_CLUSTER_URLS集群节点服务地址,默认“”,默认时等同于单机方式 -
MOSTDB_LOG_LEVEL配置,支持级别DEBUG/INFO/WARN/ERROR,默认INFO
- 节点心跳监控
- 配置参数更新
- 审计日志
- 看板管理页面
- 性能提升,使用
fasthttp大幅提高吞吐量 - 修复改善,如网络抖动引起失败程序退出等问题
- 增加
MOSTDB_LOG_LEVEL配置,支持级别DEBUG/INFO/WARN/ERROR,默认INFO
- 实现基本功能雏形
- 使用
goleveldb保存数据,适用于节省内存资源保存大量数据的场景 - 基于过半策略的分布式集群支持,提供数据冗余性、高可靠性,配置部署极其简单
- 提供
http协议的rest服务接口/mostdb/set,存操作 - 提供
http协议的rest服务接口/mostdb/get,取操作 - 提供
http协议的rest服务接口/mostdb/del,删操作
