Upload
faryang
View
1.471
Download
6
Embed Size (px)
Citation preview
一、海岛后端介绍 Linux + Nginx + MySQL + TokyoTyrant+
PHP5 + redis/memcached? 协议: AMF ——Action Message Format
海岛具体实现优点:容短暂宕机 PHP5(fastcgi/phpfpm) —— 基于 AMFPHP ,使用 Zend Framework 组件, gettext
国际化 MySQL
—— InnoDB, (todo: Master/Slave)
TokyoTyrant( 放弃 ) ——(todo:backup, Master/Slave)
Nginx
island
backend
后台
Zend_MVC
/Models
Paginator -> Google Charts,
后端
游戏交互
Controllers
Models
Zend_Db
Mysql
PostgreSQL
…
TT/Memcached
Redis?
VO
社区交互
管理
实现
配置
其他
国际化
Library
Amfphp
Zend
Platform
异常处理
AlertException
ApiException
…
TEST, CI, ???
工具集
Amfbrower
Nginx status
phpMyAdmin
phpinfo.php
frontend
一台服务器谈系统架构 ? => Web (程序设计)架构
Web
程序“
架
构”
图
amf
Entrances
Platform entry
Game entry
PH
P
代码目录结构
海岛后端 A. 社区交互部分 B. 游戏交互部分
/player_id => 拆分 会话,单点登录,异常处理, supersid ,在线管理员
( role=admin ) 国际化,在线 debug ,
C. 配置 config.xml <( 规范 ) config-dist.xml 4399.xml < 4399-dist.xml flash.xml < flash-dist.xml
Debug options , supersid( 本地测试 ) – Online debug 部署
bin :备份所有相关 shell 脚本 配置项( php.ini, my.cnf,nginx.conf,crontab,
init.d/service,sync ) D. 工具
WebService 简介
Flex ClientAmf Server
Persist
Amf protocol
MySQL/NoSQL 命名 gm_, vo_, stat_
字段小写,下划线 数据一致性,可追溯
外键, _delete
扩展 (<-models) 每个表 _ .player_id => 拆分 表级别水平拆分: gm_players (player_id, level, gold)=>
tt.players 非核心业务存储拆分( Memcached/Redis )
备份 Master/Slave
分析 重启 ? => 每秒 query 660->330 ,还会重现 ?
此 MySQL 服务器已经运行了 1 天 19 小时, 33 分 4 秒,启动时间为 2010 年 06 月 28 日 14:45 。
Stat=> 方案 => buildings,decorations… 转移到 Redis(MySQL 只做备份用 )?
二、 PHP 编码规范 目标 /Zend Framework Coding Standard
http://framework.zend.com/manual/zh/coding-standard.html 编码标准对任何开发项目都很重要,特别是很多开发者在同一项目上工
作。编码标准帮助确保代码的高质量、少 bug 和容易维护。 做法
智能提示 , 语法错误 ,error, warning 运行 - 正确 -( 再优化 ) 重构
低层次: 提炼方法 (100rows?) ,提炼接口(CronInterface) ,提炼超类(AbstractController) ,上移方法 (_getFarm) ,重命名 (rename)
高层次:多态替换条件语句 ( 策略 dp) ,委托替换继承 ?
CODE REVIEW?
1. 代码完整性2. 一致性3. 正确性4. 可修改性5. 可预测性6. 健壮
http://www.cnblogs.com/xugang/archive/2007/11/14/959125.html
SVN STANDARD, 单元测试, PM…?
?