php项目实现读写分离

Posted 八戒vs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php项目实现读写分离相关的知识,希望对你有一定的参考价值。

环境介绍

thinkphp6+mysql8+cnetos8
1,已配置好的主从复制数据库,详情请了解
https://www.cnblogs.com/stronger-xsw/p/12785384.html

2,打开thinkphp项目下config目录配置文件database.php文件
tp6项目具体配置如下

return [
// 默认使用的数据库连接配置
\'default\'         => \'mysql\',

// 自定义时间查询规则
\'time_query_rule\' => [],

// 自动写入时间戳字段
// true为自动识别类型 false关闭
// 字符串则明确指定时间字段类型 支持 int timestamp datetime date
\'auto_timestamp\'  => true,

// 时间字段取出后的默认时间格式
\'datetime_format\' => \'Y-m-d H:i:s\',

// 数据库连接配置信息
\'connections\'     => [
    \'mysql\' => [
        // 数据库类型
        \'type\'              => \'mysql\',
        // 服务器地址
        \'hostname\'          =>\'192.168.110.131,192.168.110.132,192.168.110.133\',//第一台为主服务器,后面两台从服务器
        // 数据库名
        \'database\'          => \'mydb\',
        // 用户名
        \'username\'          => \'root\',//用户名全部一样可以这样写,只要有一个不同就分开写
        // 密码
        \'password\'          => \'123456,12345678,123456\',
        // 端口
        \'hostport\'          => \'3306\',
        // 数据库连接参数
        \'params\'            => [],
        // 数据库编码默认采用utf8
        \'charset\'           =>\'utf8\',
        // 数据库表前缀
        \'prefix\'            => \'\',

        // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
        \'deploy\'            => 1,//1为开启分布式
        // 数据库读写是否分离 主从式有效
        \'rw_separate\'       => true,//是否开启读写分离
        // 读写分离后 主服务器数量
        \'master_num\'        => 1,
        // 指定从服务器序号
        \'slave_no\'          => \'\',
        // 是否严格检查字段是否存在
        \'fields_strict\'     => true,
        // 是否需要断线重连
        \'break_reconnect\'   => false,
        // 监听SQL
        \'trigger_sql\'       => env(\'app_debug\', true),
        // 开启字段缓存
        \'fields_cache\'      => false,
        // 字段缓存路径
        \'schema_cache_path\' => app()->getRuntimePath() . \'schema\' . DIRECTORY_SEPARATOR,
    ],

    // 更多的数据库配置信息
],
];

3,详情介绍参考tp6手册
https://www.kancloud.cn/manual/thinkphp6_0/1037577

以上是关于php项目实现读写分离的主要内容,如果未能解决你的问题,请参考以下文章

Zend Framework中如何实现MySQL的读写分离 - PHP框架开发

7-MYSQL数据库读写分离实例

PHP CodeIgniter框架实现读写分离

读写分离很难吗?springboot结合aop简单就实现了

postgresql已经配置好主从,java中怎么进行读写分离

简单好用!利用Spring AOP技术10分钟实现一个读写分离方案