使用复制进行横向扩展


8

阅读了使用复制进行横向扩展后,如何将不同的查询路由到不同的服务器,例如,SELECT我想路由到从属服务器和NON-SELECT主服务器。我假设可以使用haproxy作为负载均衡器,但是我发现在haproxy级别的查询之间无法区分开吗?另外,假设某人已直接到达主服务器,主服务器如何识别这是SELECT查询并显示发送给从属服务器或负载平衡器。

Answers:



2

它的工作是您web client确定它是否要发送到数据库的事务是read-only或,read-write然后选择它指定的事务slavemaster相应的事务。


2

我不知道有任何代理软件可以为您执行此操作。haproxy是HTTP级别的代理,这不会对您的数据库产生任何影响。您将需要将其实现为Web应用程序业务逻辑的一部分。

在持久层的核心,您应该能够拦截这些调用,并根据正在执行的事务类型将它们“路由”到相应的数据库。例如,SELECT查询可以发送到您的只读服务器,但是UPDATE/INSRET/DELETE查询将发送到主服务器。


haproxy是一个TCP负载平衡器,可以用于其他协议,包括MySQL,尽管它可能不是最佳选择。
亚伦·布朗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.