首页 / 知识
数据库分片和Rails
2023-04-14 05:27:00

Database sharding and Rails在Rails中处理分片数据库的最佳方法是什么? 分片应在应用程序层,活动记录层,数据库驱动程序层,代理层还是其他任何层处理? 各自的优缺点是什么? FiveRuns有一个名为DataFabric的gem,它可以进行应用程序级分片和主/从复制。可能值得一试。 我假设使用碎片是在谈论水平分区,而不是垂直分区(这是Wikipedia上的区别)。 首先,在考虑水平分区之前,将垂直分区尽可能扩展。在Rails中,将不同的模型指向不同的机器很容易,对于大多数Rails站点,这将带给您足够的帮助。 对于水平分区,在理想情况下,这将在Rails的应用程序层进行处理。但是,尽管这并不困难,但在Rails中却并不琐碎,并且到了您需要的时候,通常您的应用程序已经超出了可行的范围,因为到处都是ActiveRecord调用。开发人员或管理人员没有人喜欢在需要它之前进行开发,因为每个人都希望开发用户现在将要使用的功能,而不是进行分区,因为分区可能在您的流量激增多年后才开始发挥作用。 ActiveRecord层...从我所看到的并不容易。将需要大量的猴子修补到Rails内部。 在Spock,我们最终使用自定义的MySQL代理进行了处理,并将其作为Spock Proxy在SourceForge上开源。 ActiveRecord认为它正在与一台MySQL数据库计算机通信,而实际上它正在与代理服务器通信,然后代理服务器与一个或多个MySQL数据库通信,合并/排序结果,并将其返回给ActiveRecord。只需要对Rails代码进行一些更改。请查看Spock Proxy SourceForge页面,以了解更多详细信息以及我们选择此路线的原因。 对于像我这样从未听说过分片的人: http://highscalability.com/unorthodox-approach-database-design-coming-shard 将Rails连接到多个数据库没什么大不了的-您只需为每个分片提供一个ActiveRecord子类,即可覆盖连接属性。如果您需要进行跨分片调用,这将使其非常简单。然后,当需要在分片之间进行调用时,只需编写一些代码。 我不喜欢Hank拆分rails实例的想法,因为除非您有一个大型共享库,否则在实例之间调用代码似乎很困难。 另外,在开始分片之前,您还应该考虑做类似受虐狂的事情。 为了使Rails在复制环境下工作,我建议使用my_replication插件,该插件可在运行时帮助将数据库连接切换到一个从属服务器 https://github.com/minhnghivn/my_replication 在我看来,最简单的方法是在Rails实例和DB碎片之间保持1:1的比例。 |
最新内容
相关内容
linux数据库同步命令?
linux数据库同步命令?,信息,系统,汽车,车辆,服务,工作,通信,一致,分析,数据,DB2数据库在linux操作系统的指令有哪些?1、linux系统常用操作命令linux命令进数据库?
linux命令进数据库?,地址,系统,名字,服务,密码,命令,读法,数据库,操作系统,主机,linux系统mysql数据库怎么进入数据库首先确保linux下mysql安linux数据库检查命令?
linux数据库检查命令?,服务,状态,地址,位置,系统,信息,命令,工作,情况,密码,在linux中,怎样查看Mysql服务运行状态?1、psaux或netstat-tlunppslinux命令进去数据库?
linux命令进去数据库?,地址,服务,名字,系统,数据库,工具,基础,工作,管理,网络,linux系统mysql数据库怎么进入数据库(linux进入mysql数据库命令linux数据库基础命令?
linux数据库基础命令?,地址,工作,基础,系统,命令,信息,情况,工具,设备,目录,linux下基本命令使用讲解对Linux操作系统进行维护操作的实用命令数据库导出命令linux?
数据库导出命令linux?,数据,系统,名称,密码,软件,服务,情况,网上,工具,文件,Linux系统下mysqdump在导出数据时,没有指定任何目录,那么导出的文linux数据库删除命令?
linux数据库删除命令?,软件,服务,产品,名称,系统,不了,地址,管理,电脑,命令,Linux下如何手动删除Oracle11g数据库于是尝试了下手动的删除ORACLlinux数据库操作命令?
linux数据库操作命令?,信息,系统,网络,地址,分析师,数据,名称,管理,基础,命令,linux必学的命令是什么?.基础编程:gcc:编译C/C++程序。make:自动化linux连数据库命令?
linux连数据库命令?,服务,地址,密码,名字,系统,软件,一致,命令,数据库,读法,在Linux上用命令怎么连接数据库1、登录到Linux后,就可以在命令窗口备份数据库命令linux?
备份数据库命令linux?,服务,网络,备份,数据,工具,设备,系统,一致,数据库,命令,linux中mysql如何备份与恢复(mysql备份和恢复数据库命令)使用mylinux命令和应用程序?
linux命令和应用程序?,软件,系统,环境,管理,基础,情况,位置,电脑,工具,中心,在linux下如何装应用程序?需要什么命令啊首先从官网下载hdf5,根据linux登录数据库命令?
linux登录数据库命令?,地址,系统,名字,服务,软件,标准,灵活,命令,数据库,读法,在Linux上用命令怎么连接数据库(linux连接oracle数据库命令)1、