V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yueyoum
V2EX  ›  程序员

分布式系统数据库的问题

  •  1
     
  •   yueyoum ·
    yueyoum · 2014-05-13 11:33:44 +08:00 · 3391 次点击
    这是一个创建于 3848 天前的主题,其中的信息可能已经有所发展或是发生改变。
    多个server节点,跑的相同的逻辑,他们都需要数据库

    如何整?

    1: 一个数据库服务器。 所有的server节点都链接这个数据库
    2: 各自节点都有自己的数据库。


    1 好处 数据便于统一管理,备份 。 当有server节点要合并的时候,没有迁移数据库的工作
    坏处 数据库压力大。 单点。 数据库挂了,所有server都跟着挂

    2 好处坏处与1相反



    大伙给点建议
    6 条回复    2014-05-13 14:42:09 +08:00
    lu18887
        1
    lu18887  
       2014-05-13 11:38:59 +08:00
    考虑数据库集群。多个读节点,多个写节点,多个读写节点。依赖于协调节点进行协调的要注意协调节点的高可用性。
    kevinv
        2
    kevinv  
       2014-05-13 12:18:27 +08:00
    CAP原理
    对于一个分布式计算系统来说,不可能同时满足以下三点:
    一致性(Consistency)(所有节点在同一时间具有相同的数据)
    可用性(Availability)(保证每个请求不管成功或者失败都有响应)
    分隔容忍(Partition tolerance)(系统中任意信息的丢失或失败不会影响系统的继续运作)

    你说的第一点的单店问题可以通过两个数据库来解决。

    建议在对一致性要求不高的情况下,使用按用户段区分或者按区域区分。如果使用一个数据库服务器会有跨网段访问请求的问题。
    xiawinter
        3
    xiawinter  
       2014-05-13 12:25:20 +08:00
    从我的经验来看,如果你还在和我们讨论这个问题, 那你暂时还不涉及到分布式数据库的问题。 你可以先做起来再说,把这个问题留给能解决的人。
    yueyoum
        4
    yueyoum  
    OP
       2014-05-13 12:29:51 +08:00
    @xiawinter

    确实是这样, 同时感谢LS两位的回答。 我没回复就是 我不涉及到分布式数据库

    我的系统是分布式的, 并不是要一个分布式的数据库。
    jckwei
        5
    jckwei  
       2014-05-13 12:47:34 +08:00
    1
    一主,其他server从(缓存或落地缓存,目的是减少主数据库压力和防止主数据库挂了还能使用一些读服务)
    cevincheung
        6
    cevincheung  
       2014-05-13 14:42:09 +08:00
    还是建议使用至少两台数据库服务器,中间使用atlas类似的中间件可以对程序实现透明访问。即便master挂了slave还能用。slave挂了master还能用。两台同时挂的可能性太低了。


    多个app对应多个数据库服务器,数据库服务器挂了,那这个app不就废了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2810 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 07:24 · PVG 15:24 · LAX 23:24 · JFK 02:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.