分布式系统数据库的问题

2014-05-13 11:33:44 +08:00
 yueyoum
多个server节点,跑的相同的逻辑,他们都需要数据库

如何整?

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


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

2 好处坏处与1相反



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

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

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

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

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


多个app对应多个数据库服务器,数据库服务器挂了,那这个app不就废了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/112312

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX