首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高并发、高写入DB的基础结构

高并发、高写入DB的基础结构
EN

Database Administration用户
提问于 2011-12-14 22:32:29
回答 5查看 7.6K关注 0票数 20

我的要求是:

  • 3000个连接
  • 70-85%的写和读

目前,我们正在使一个高CPU,超大实例在700个连接.所有8个核心都是最高的。我们认为这是并发连接的数量,因为内存很好。写作本身非常简单(验证速度慢)。要扩展到3000,我们需要使用多台服务器,当前的选项:

  • MySQL切分
  • MongoDB集群
  • 卡桑德拉
  • Hadoop & MySQL (Hadoop缓存,单转储到MySQL)
  • MongoDB & MySQL (而不是Hadoop,我们使用mongo作为缓存)

要处理这个数目的连接,有以下几个问题:

  1. MySQL分片能处理并发连接吗?
  2. 任何一个主程序都能处理这些并发的连接,或者像Mongo这样的多头机是一个更好的选择吗?

如果我没有很好地描述我的问题,我很抱歉。请提出问题。

EN

回答 5

Database Administration用户

发布于 2011-12-19 17:27:35

如果您使用MySQL作为主数据库,您可能需要考虑通过MySQL复制使用星空拓扑。

现在,在你说MySQL复制,ROFL和OMG之前,听我说。

星型拓扑允许您写入一个DB服务器(称为Distribution DM),并将这些命令发送到多个DB服务器。如何设置这样的DB基础结构?

下面是描述

您有5个DB服务器(服务器A、B、C、D、E)

服务器A

  • 在MySQL复制设置中,它将是母版
  • 作为DM的特殊角色
  • 服务器主机B、C、D、E
  • 所有表都使用存储引擎黑洞(/dev/null)
  • 只存储二进制日志。
  • 裸金属机
  • 效益
    • 写得非常快,因为DM上的所有表都使用黑洞。
    • 网络延迟不是一个问题,因为读取是DB活动的15-30%。
    • 所有奴隶都严格地从DM更新。

服务器B、C、D、E

  • A的奴隶
  • 服务器是大量选择的基础。
  • 服务器可以是虚拟的,也可以是裸金属
  • 对于用户表使用存储引擎InnoDB 的所有服务器
    • 它可以作为一个温备用数据库服务器来服务
    • 可以针对它运行非侵入性备份。

  • 对于用户表使用存储引擎MyISAM 的所有服务器
    • 设置为只读oprion
    • 表可以将其行格式重做以加速读取。

我以前也写过这方面的文章

将MySQL复制保持在顶部形状

票数 5
EN

Database Administration用户

发布于 2011-12-19 12:50:13

MySQL群集可能是另一种切分方法。这里的支票邮寄

我也非常喜欢Cassandra,但这在很大程度上取决于您的数据模型和您想要执行的查询。卡桑德拉写得很快,因为它们总是顺序在磁盘上。

票数 2
EN

Database Administration用户

发布于 2011-12-22 20:28:00

如果你要去多头(你可能需要,如果你真的需要3K活动连接),我可能会看看里亚克或卡桑德拉。这确实取决于你的应用程序对这些应用程序的适应程度如何,但从你所描述的情况来看,我认为它会适合像Riak这样的应用程序。

尽管如此,如果您能够找到一种分割数据的好方法,并且可以将对交叉碎片的需求降到最低,那么分片的方法似乎是可行的。我会远离mysql中的任何一种环/星/ mmm的东西,只需坚持直接切分即可。实际上,如果您愿意使用Postgres,您可以很容易地在heroku这样的地方使用模式进行原型,然后在数据库开始超过单个节点时分叉和拆分数据库。

哦,虽然我认为您可以尝试垂直地缩放这样的东西(处理所有3K conns的单个节点),但我不认为您可以在云中进行。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/9189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档