CakePHP: tips on ssl, mysql load balance, master/slave, xhprof benchmark tool
2011-06-03 00:50
691 查看
1. CakePHP Master/Slave
*) add default(slave as for query) setting in database.php, and master for saving
*) define a new replicate behavior
<?php
class ReplicationBehavior extends ModelBehavior {
public function beforeSave($Model) {
$Model->useDbConfig = 'master';
}
public function afterSave($Model) {
$Model->useDbConfig = 'default';
}
public function setServer($Model, $server) {
$Model->__backupConfig = $Model->useDbConfig;
$Model->useDbConfig = $server;
}
public function afterFind($Model) {
if (!empty($Model->__backupConfig)) {
$this->useDbConfig = $Model->__backupConfig;
}
$Model->__backupConfig = null;
}
public function save($data = null, $validate = true, $whitelist = array()) {
$this->Replication->beforeSave($this);
return parent::save($data, $validate, $whitelist);
}
}
?>
*) set $actAs to have replicate behavior in your base app model
$actAs = array('Replicate');
*) call the setServer method in your controller to determine which database you want to use for instant query after save
if ($this->Deal->saveAll($this->data, array('validate'=>'first'))) {
$this->Deal->setServer('master');
$deal = $this->Deal->find('first',array(
'conditions' => array('slug' => $this->data['Deal']['slug']),
'fields' => array('id')
));
2. how to use xhprof (a php benchmark tool developed by facebook)
http://techportal.ibuildings.com/2009/12/01/profiling-with-xhprof/
3. MySQL load-balancing
http://www.zeus.com/community/articles/building-mysql-load-balancing-proxy-trafficscript
4. ssl
consolidate secure operations to single domain: https://lang.secure.jigocity.com
keep track of referer links in http header
redirect back to the original referer when done
5. image compression
http://spriteme.org/
This is a CSS/Image Sprite generation bookmarklet tool
6. asset compression
put all javascript on the bottom of the body part, put all css files to the header
here is the plugin for asset compression.
https://github.com/markstory/asset_compress
*) add default(slave as for query) setting in database.php, and master for saving
*) define a new replicate behavior
<?php
class ReplicationBehavior extends ModelBehavior {
public function beforeSave($Model) {
$Model->useDbConfig = 'master';
}
public function afterSave($Model) {
$Model->useDbConfig = 'default';
}
public function setServer($Model, $server) {
$Model->__backupConfig = $Model->useDbConfig;
$Model->useDbConfig = $server;
}
public function afterFind($Model) {
if (!empty($Model->__backupConfig)) {
$this->useDbConfig = $Model->__backupConfig;
}
$Model->__backupConfig = null;
}
public function save($data = null, $validate = true, $whitelist = array()) {
$this->Replication->beforeSave($this);
return parent::save($data, $validate, $whitelist);
}
}
?>
*) set $actAs to have replicate behavior in your base app model
$actAs = array('Replicate');
*) call the setServer method in your controller to determine which database you want to use for instant query after save
if ($this->Deal->saveAll($this->data, array('validate'=>'first'))) {
$this->Deal->setServer('master');
$deal = $this->Deal->find('first',array(
'conditions' => array('slug' => $this->data['Deal']['slug']),
'fields' => array('id')
));
2. how to use xhprof (a php benchmark tool developed by facebook)
http://techportal.ibuildings.com/2009/12/01/profiling-with-xhprof/
3. MySQL load-balancing
http://www.zeus.com/community/articles/building-mysql-load-balancing-proxy-trafficscript
4. ssl
consolidate secure operations to single domain: https://lang.secure.jigocity.com
keep track of referer links in http header
redirect back to the original referer when done
5. image compression
http://spriteme.org/
This is a CSS/Image Sprite generation bookmarklet tool
6. asset compression
put all javascript on the bottom of the body part, put all css files to the header
here is the plugin for asset compression.
https://github.com/markstory/asset_compress
相关文章推荐
- tns load balance及master/slave使用模式和灰度发布
- CakePHP --- Load Balancing and MySQL Master and Slaves
- mysql -server-5.6 install master and slave on ubuntu 14.04server
- MySQL Master/Slave 主从数据同步
- CentOS下MySQL主从复制(Master-Slave)实践
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
- mysql master/slave 使用感受
- Mysql的master,slave的配置
- MYSQL的master/slave数据同步配置
- [转载] mysql5.6 删除之前的ibdata1文件后再重新生成,遇到[Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.问题
- MySQL Master/Slave Server 架設
- MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解
- MySQL复制错误 The slave I/O thread stopsbecause master and slave have equal MySQL server UUIDs; these UUIDs must bedifferent for replication to work 解析
- MySQL下做Master/Slave同步,延迟太大怎么办?
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
- mysql高可用方案之主从架构(master-slave)
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
- mysql 数据同步---master (window),slave(linux)
- Mysql---Master-slave复制方案