Skip to content

mostdb是个golang编写的分布式KV数据库,基于goleveldb保存数据,分布式算法使用过半策略实现

License

Notifications You must be signed in to change notification settings

gotoeasy/mostdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 

Repository files navigation

mostdb

mostdb是个golang编写的分布式KV数据库,基于goleveldb保存数据,提供getsetdel等http接口。
分布式算法非常简单,使用过半策略,只要大部分节点成功就认为是成功,顾名思义mostdb

Docker Pulls GitHub release

特点

  • 使用goleveldb保存数据,适用于节省内存资源保存大量数据的场景
  • 基于过半策略的分布式集群支持,提供数据冗余性、高可靠性,配置部署极其简单
  • 提供getsetdel等http接口,开箱即用

docker集群部署模式简易示例

# 以下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

更新履历

开发版latest

  • 节点心跳监控
  • 配置参数更新
  • 审计日志
  • 看板管理页面

0.2.0

  • 性能提升,使用fasthttp大幅提高吞吐量
  • 修复改善,如网络抖动引起失败程序退出等问题
  • 增加MOSTDB_LOG_LEVEL配置,支持级别DEBUG/INFO/WARN/ERROR,默认INFO

0.1.0

  • 实现基本功能雏形
  • 使用goleveldb保存数据,适用于节省内存资源保存大量数据的场景
  • 基于过半策略的分布式集群支持,提供数据冗余性、高可靠性,配置部署极其简单
  • 提供http协议的rest服务接口/mostdb/set,存操作
  • 提供http协议的rest服务接口/mostdb/get,取操作
  • 提供http协议的rest服务接口/mostdb/del,删操作

About

mostdb是个golang编写的分布式KV数据库,基于goleveldb保存数据,分布式算法使用过半策略实现

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages