gpt4 book ai didi

php - 在基于读写的服务器集上构建 Web 应用程序

转载 作者:行者123 更新时间:2023-11-29 09:13:33 26 4
gpt4 key购买 nike

我有一个普遍好奇的问题。

假设我有 1 个主服务器(用于写入)和 5 个从服务器(用于读取)。

在我的 Web 应用程序中,我是否会启动与主站和从站的连接?使用主连接仅用于发送写入,使用从连接仅用于读取数据?

最佳答案

在任何情况下,您都应该根据需要处理主从连接,通常是通过 getConnection() 函数。在我的工作设置中,2个集群,2个主节点,其中一个集群有4个从集群,另一个集群有8个集群,功能基本上如下所示:

<?php
class Custom_Db_Handler
{
const READ = "read";
const WRITE = "write";

private static $_instance;

private $_connections = array();
private $_config;

private function __construct() {
$this->_config = Storage::get("config mysql");
}

public function get() {
if(is_null(self::$_instance)) {
self::$_instance = new self;
}
return self::$_instance;
}

public function getConnection($db, $type = "read") {
if(array_key_exists($type, $this->_connections)) {
return $this->_connections[$type][$db];
}

if($type != self::READ || $type != self::WRITE) {
return false;
}

$this->_connections[$type][$db] = mysql_connect($this->_config[$type]['host'], $this->_config[$type]['user'], $this->_config[$type]['pass']);
mysql_select_db($db, $this->_connections[$type][$db]);
return $this->_connections;
}

}

使用方式如下:

$query = "SELECT * FROM table";
$res = mysql_query($query, Custom_Db_Handler::get()->getConnection("my_db", Custom_Db_Handler::READ));

这是一个非常基本的示例,但我想您已经了解如何管理主/从连接。

关于php - 在基于读写的服务器集上构建 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4810170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com