首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展系统及其数据库以进行10k请求处理。什么是适合分布式数据库的分片或微服务?

问扩展系统及其数据库以进行10k请求处理。什么是适合分布式数据库的分片或微服务?
EN

Stack Overflow用户
提问于 2020-06-13 16:40:31
回答 1查看 246关注 0票数 1

随着数据量的急剧增长,MySQL无法扩展超出一个节点的写入请求成为了一个致命的问题。MySQL的单块体系结构本质上迫使应用程序级的sharding.The开发和操作复杂性在这样的实例从1增加到1000秒时呈指数级增长,然后激增到1000 s。

所以,如果我使用切分来扩展应用程序,那么

  1. 我不能将数据库本身用于任何交叉碎片联接和事务。这似乎是真的,但,这是真的吗, ??
  2. 如何更好、更有效地扩展应用程序和数据库,比如10k并发请求等等。??我认为微型服务不是解决问题的办法,是吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-07 18:17:08

  1. 答案是微妙的,而不是简单的正确或错误。MySQL的水平切分解决方案(如Vitess (vitess.io) )确实允许您同时执行交叉切分联接和交易记录,但这并不意味着您应该这样做。如果您设计得很好并发挥它的优势,那么分片架构的性能将是最好的,例如,在任何单个事务中都倾向于单片定向写入。在Vitess中启用两阶段提交以支持交叉碎片写入是可能的,但将付出很大的性能代价。这种权衡是否值得--这在不同的应用程序中是不同的,一般来说,调整模式/工作负载被认为是更好的方法。
  2. 将微服务视为一种设计原则比将其看作是一种缩放技巧要好得多。该体系结构更适合于通过将单块部署分解为更松散耦合、孤立的元素来提高部署的弹性和灵活性。由于管理横向分片资源的复杂性与在微服务体系结构中管理资源的挑战密切相关,因此Vitess实际上非常适合容器编排环境,并且通常使用Kubernetes的Vitess运算符在容器中部署/管理。

简而言之,在微服务体系结构以及更传统的环境中,水平扩展MySQL是可行的,也是常见的。

另外,10K并发请求是相对模糊的度量。配置良好的单服务器MySQL安装每秒提供数十万次查询并不异常,因此请记住,您可能面临的任何缩放挑战也可以通过优化代码、查询、模式和/或MySQL配置来解决。

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

https://stackoverflow.com/questions/62362802

复制
相关文章

相似问题

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