跳转到主要内容
Chinese, Simplified

Citus将Postgres扩展为可水平扩展的数据库。水平扩展是指数据分散在多台计算机上,您不仅可以扩展存储,还可以扩展内存和计算,从而提供更好的性能。无需使用Citus之类的工具即可将PostgreSQL转换为分布式数据库,请确保您可以添加只读副本以进行扩展,但是您仍将维护数据的单个副本。当您遇到Postgres数据库的扩展问题时,添加只读副本并将某些流量分流到只读副本是降低速度的一种常见的创可贴,但这只是时间问题,直到它失效为止再进一步。而使用Citus,向外扩展数据库就像拖动滑块并重新平衡数据一样简单

只读副本对水平可伸缩数据库是否仍然有用?


但这留下了一个问题,只读副本仍然有用吗?好吧,可以肯定。

在Citus Cloud(我们的完全托管数据库即服务)中,我们支持只读副本,在我们的情况下称为追随者。追随者群集利用了我们与叉式利用相同的许多基础灾难恢复基础架构,但是它们支持非常不同的用例集。

之前,我们讨论过如何在Citus Cloud中使用forks来将生产数据集转移到暂存阶段,以帮助测试迁移,重新平衡或SQL查询优化。叉子通常在短时间内用作一次性物品。相比之下,关注者通常是长期运行的Citus数据库集群,可以成为运行业务的关键机制,可帮助您在需要时获取见解。

追随者群集通常仅比主数据库群集落后几秒钟(如果有)


跟随者群集以异步方式从主Citus群集接收所有更新。追随者通常仅比主数据库集群落后几秒钟(如果有的话),尽管有时可能会滞后几分钟。关注者拥有您数据的完整副本,但位于单独的群集中。这意味着您将拥有数据的单独副本,并拥有自己的计算能力,内存和磁盘。

关于跟随者形成的有趣事实,您也可以跨区域创建它们。是否要在另一个区域中拥有数据库的完整副本,以便在发生灾难时可以进行故障转移?是否希望为不同地理位置的特定读取提供较低的延迟?跨区域的Citus追随者可以提供帮助。

追随者=有助于将分析工作负载与核心生产活动分开


那么追随者在Citus中什么时候有用?关注者对于可能需要较长时间运行的分析工作负载最有帮助。是否要针对您的整个数据集计算一些复杂的报告?从主数据库到其他数据仓库执行ETL,在该仓库中数据在进入之前已经清理和混淆了?

这些用例中的每一个对您的业务而言都可能很重要,但是长时间运行的SQL查询与数据库的主要工作负载争用相同的资源。这种性能竞争有时会导致数据库中主要工作负载的性能问题。通过将分析工作量拆分出来以在Citus追随者群集上运行,您可以为内部数据分析人员提供所需的访问权限,而不必让他们接受相同的生产代码审查流程,同时又可以确保生产数据库的安全。

只读副本和关注者仍然有位置


虽然使用只读副本来扩展您的主应用程序可能会带来各种不必要的复杂性,并且要比解决的问题产生更多的工作,但是只读副本仍然有自己的位置。当使用对Postgres的Citus扩展来解决扩展性能问题时,您可以创建跟随者形式(也称为只读副本)以在内部提供对数据的访问,而不必冒生产可用性的风险。这是一个强大的组合。

 

原文:https://www.citusdata.com/blog/2018/09/19/use-cases-for-read-replicas/

本文:http://jiagoushi.pro/node/923

讨论:请加入知识星球或者微信圈子【首席架构师圈】

Tags
 
Article
知识星球
 
微信公众号
 
视频号