• TreodeDB测试及总结


    参考资料:http://treode.github.io/store/ 官方网站

    实际测试环境:3台有公网IP的服务器,一台阿里云,另两台公司内部

    1host IP地址 IP1
    java -jar server.jar -init -serve -host 0xF47F4AA7602F3857 -cell 0x3B69376FF6CE2141 store.db
    2host IP地址 IP2
    java -jar server.jar -init -serve
        -com.twitter.finatra.config.port :7071
        -com.twitter.finatra.config.adminPort :9991
        -host 0x4A348994B2B21DA3
        -cell 0x3B69376FF6CE2141
        -port 6279
        -hail 0xF47F4AA7602F3857=IP1:6278
        store2.db
    3host 未使用   
    java -jar server.jar -init -serve
        -com.twitter.finatra.config.port :7072
        -com.twitter.finatra.config.adminPort :9992
        -host 0x4FC3013EE2AE1737
        -cell 0x3B69376FF6CE2141
        -port 6280
        -hail 0xF47F4AA7602F3857=IP1:6278
        store3.db    
        
    这时进行数据操作都是会直接返回500错误的,因为未将服务器编组,谁也不知道由谁来进行操作,即服务器启动是没有主次之分的.虽然有先后的区别
        
    编组
    curl -i -w' ' -XPUT -d@-
        -H'content-type: application/json'
        http://IP1:7070/atlas << EOF
    [ {"hosts": ["0xF47F4AA7602F3857"] } ]
    EOF

    给一台机器插入数据
    curl -w' ' -i -XPUT
        -H'content-type: application/json'
        -d'{"v":"antelope"}'
        http://IP1:7070/table/0x1?key=apple

    另一台机器也可以查询到    
    curl -w' ' -i http://IP1:7070/table/0x1?key=apple

    搞定

    将三台服务器都设置进来.
    curl -w' ' -i -XPUT -d@-
        -H'content-type: application/json'
        http://IP1:7070/atlas << EOF
    [ { "hosts": ["0xF47F4AA7602F3857", "0x4A348994B2B21DA3", "0x4FC3013EE2AE1737"] } ]
    EOF



    给机器2插入数据
    curl -w' ' -i -XPUT
        -H'content-type: application/json'
        -d'{"v1":"antelope"}'
        http://IP2:7071/table/0x1?key=apple1

    另一台机器也可以查询到    
    curl -w' ' -i http://IP1:7070/table/0x1?key=apple1

    这时关掉机器1上的程序
    给机器2插入数据,两台机器时就访问不了了,500错误 报超时
    curl -w' ' -i -XPUT
        -H'content-type: application/json'
        -d'{"v2":"antelope"}'
        http://IP2:7071/table/0x1?key=apple2

    重新启动机器1,机器2应用
    给机器1插入数据
    curl -w' ' -i -XPUT
        -H'content-type: application/json'
        -d'{"v3":"antelope"}'
        http://IP1:7070/table/0x1?key=apple3

    另一台机器也可以查询到    
    curl -w' ' -i http://IP2:7071/table/0x1?key=apple3

    关掉机器2上的应用
    给机器1插入数据
    curl -w' ' -i -XPUT
        -H'content-type: application/json'
        -d'{"v4":"antelope"}'
        http://IP2:7071/table/0x1?key=apple4

    查询不到,看样子需要启动机器3测试   
    curl -w' ' -i http://IP2:7071/table/0x1?key=apple4


    给机器1插入数据
    curl -w' ' -i -XPUT
        -H'content-type: application/json'
        -d'{"v5":"antelope"}'
        http://IP1:7070/table/0x1?key=apple5

    另一台机器也可以查询到    
    curl -w' ' -i http://IP1:7072/table/0x1?key=apple5
    curl -w' ' -i http://IP2:7071/table/0x1?key=apple5

    关掉机器2
    机器1,机器3仍然能查询到数据
    curl -w' ' -i http://IP1:7072/table/0x1?key=apple5
    curl -w' ' -i http://IP1:7070/table/0x1?key=apple5

    给机器插入数据,以验证服务器的断线数据同步
    curl -w' ' -i -XPUT
        -H'content-type: application/json'
        -d'{"v6":"antelope"}'
        http://IP1:7070/table/0x1?key=apple6


    curl -w' ' -i http://IP1:7072/table/0x1?key=apple6
    机器2启动后进行查询,可以看到数据是同步的.
    curl -w' ' -i http://IP2:7071/table/0x1?key=apple6

    总结

    1 安全性接口缺失,从目前的接口来看,没看到安全性控制类接口,全凭key就可以获取.商业化运行必须考虑这些.
    2 数据访问类接口,可用,但读写速度并不均衡,在2MS~5000MS(最高值有可能受网络状况影响)
    3 设备,主机操作类接口基本可用
    4 对主机依赖性较大,且正常模式必须保持一主一备的模式运行.其余备机断线基本不受影响,
      主机断线备机则无法再提供服务,即使主机重启也不行,说明主备模式切换有可能存在问题

     
     
     
  • 相关阅读:
    Java中RuntimeException和Exception
    RuntimeException和Exception的区别
    Spring事务异常回滚
    iOS 卖票中多线程分析;
    凝视转换(部分)
    HDU 5386 Cover(模拟)
    iOS开发之软键盘使用小技巧
    【每日算法】高速幂
    CKEditor高级编辑器
    iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍)
  • 原文地址:https://www.cnblogs.com/decwang/p/4062351.html
Copyright © 2020-2023  润新知