toumoro/tm-masterslave

此软件包最新版本(10.4.3)没有提供许可证信息。

doctrine MasterSlaveConnection 的 WraperClass

安装次数: 1,585

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:typo3-cms-extension

10.4.3 2021-05-25 15:00 UTC

This package is not auto-updated.

Last update: 2024-09-26 05:21:57 UTC


README

此扩展是 doctrine MasterSlaveConnection 的 WraperClass,它提供了读写请求的平衡。

配置

在这个例子中,配置是在 AdditionalConfiguration.php 中完成的。

$masterDbT3 = [        
        'charset' => 'utf8',        
        'dbname' => 'MASTER_DATABASE_NAME',        
        'driver' => 'mysqli',        
        'host' => 'MASTER_DATABASE_HOST',        
        'password' => 'MASTER_DATABASE_PASSWORD',        
        'user' => 'MASTER_DATABASE_USER',        
        'persistentConnection' => false,
];
$slavesDbT3[0] = $masterDbT3;        
$slavesDbT3[0]['host'] = 'SLAVE_HOST_1';        
$GLOBALS['TYPO3_CONF_VARS']['DB'] = array(        
    'Connections' => [        
    'Default' => $masterDbT3,        
  ],
);     
// class que gère la master slave        
$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['wrapperClass'] = 'Toumoro\TmMasterslave\Utility\Connection';        
$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['master'] = $masterDbT3;        
$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['slaves'] = $slavesDbT3;  

使用 docker 进行测试

version: "2.2"
services:
  db:
    image: 'bitnami/mysql:5.7'
    ports:
      - '3306'
    environment:
      - MYSQL_REPLICATION_MODE=master
      - MYSQL_REPLICATION_USER=repl_user
      - MYSQL_REPLICATION_PASSWORD=repl_password
      - MYSQL_ROOT_PASSWORD=dev
      - MYSQL_USER=dev
      - MYSQL_PASSWORD=dev
      - MYSQL_DATABASE=dev
    volumes:
      - "./mysql:/var/lib/mysql"

  mysql-slave:
    image: 'bitnami/mysql:5.7'
    ports:
      - '3306'
    depends_on:
      - db
    environment:
      - MYSQL_REPLICATION_MODE=slave
      - MYSQL_REPLICATION_USER=repl_user
      - MYSQL_REPLICATION_PASSWORD=repl_password
      - MYSQL_MASTER_HOST=db
      - MYSQL_MASTER_PORT_NUMBER=3306
      - MYSQL_MASTER_ROOT_PASSWORD=dev

  web:
    image: your_typo3_php_image
    ports:
     - "80:80"
    links:
     - "db:db"
     - "mysql-slave:dbslave"
    volumes:
     - ".:/var/www"