zoukankan      html  css  js  c++  java
  • phalcon:数据库分库,读写分离,负载均衡 系统方法执行顺序

    phalcon:数据库分库,读写分离,负载均衡 系统方法执行顺序

    用命名空间区分不同的数据库实例,对应代码结构上是不同的目录区分,在同一目录下基类负责初始化连接。连接来自初始化时注入的多个db服务

    隐规则:

    • initialize()在每个请求期间只会调用一次

    • 为每个 new 创建的实例执行初始化任务使用onConstruct()

    namespace CompanyModelsNotification;


     1 /**
     2  * Class BaseModel
     3  *
     4  * beforeSave()和afterFetch()成对使用,用于读写数据时自动转化数据。
     5  * 例如自动执行serialize unSerialize
     6  *
     7  * save()发生时事件调用顺序是
     8  * initialize,
     9  * onConstruct,
    10  * beforeValidation,
    11  * beforeValidationOnCreate,
    12  * afterValidationOnCreate,
    13  * afterValidation,
    14  * beforeSave,
    15  * beforeCreate,
    16  * afterCreate,
    17  * afterSave,
    18  *
    19  * @package CompanyModelsNotification
    20  */
    21 class BaseModel extends PhalconMvcModel
    22 {
    23  
    24     /**
    25      * - initialize()在每个请求期间只会调用一次
    26      * - 子类必需调用父类方法
    27      * - 为每个 new 创建的实例执行初始化任务使用onConstruct()
    28      */
    29     public function initialize()
    30     {
    31         $this->setConnectionService('db_notification');
    32          
    33         //$this->setConnectionService('node1');
    34         //$this->setConnectionService('node2');
    35         //
    36         //真实场景可能使用mysqlnd_ms扩展或者haproxy
    37         //仅演示读负载均衡一种思路
    38         //$dbSlave = ['node1', 'node2', 'node3'];
    39         //$key = array_rand($dbSlave);
    40         //$db = $dbSlave[$key];
    41         //$this->setReadConnectionService($db);
    42         //
    43         //
    44         //$this->setReadConnectionService('dbRead');
    45         //$this->setWriteConnectionService('dbWrite');
    46     }
    47 }
  • 相关阅读:
    slqite3练习
    QStackedWidget 与 QStackedLayout 的用法区别
    pyqt5 菜单,工具栏,线程,matplotlib
    PyQt5 结合 matplotlib 时,如何显示其 NavigationToolbar
    tkinter事件高级用法实例
    tkinter菜单图标,工具栏
    tkinter界面卡死的解决办法
    8个经过证实的方法:提高机器学习模型的准确率
    结合Scikit-learn介绍几种常用的特征选择方法
    scikit-learn的主要模块和基本使用
  • 原文地址:https://www.cnblogs.com/huanhang/p/7240230.html
Copyright © 2011-2022 走看看