最近在准备开始把系统重构一次,底层还是用app platform平台,但是
代码需要全部OO重新设计和分析一次,乘此机会,顺便把原来的设计和代码
中不合理的地方来个大扫除。
在设计的时候,遇到最大的问题,就是app platform只是一个事件驱动
的tcp server framework,单进程架构,在处理异步通信的时候,代码结构
会比较恶心:
void excute(command)
{
switch(state)
{
case start:
int iRetcode= GetUserIdRequest();
…..
state = wait_recv;
break;
case wait_recv:
int iUserId = GetUserIdResponse();
….
break;
}
}
2006-09-10
从setjmp到getcontext,最后遇到了libpth
Comments Off on 从setjmp到getcontext,最后遇到了libpth
系统演进之路(2)
随着业务逐渐复杂,我们发现原有的开发模式效率极其低下,尤其是纯粹业务处理的APP层,做异步处理时,状态机非常难以维护,在此基础上,我们开发出了 app platform, db platform等公共组件
xxx platform其实非常类似一个ejb 容器,开发人员已经可以把精力集中在业务逻辑上了,从网络层收发数据报、协议封解包上脱离了出来
但是效率还不够高,异步情况下,还是存在状态机的情况,尤其是当后期我们准备OO化整体设计的时候,这种模式就会导致设计的非常dirty,不易测试,我们需要一个POCO的模型!
Comments Off on 系统演进之路(2)
系统演进之路
早期为了赶进度,使用了最拿手的c/c++混合的进程模型
关注点主要在分布式的APP和DB架构上,提出了dbroute,appinterface等节点,以便水平扩展服务器来分摊压力
在应对web session的问题上,使用了分布式的session解决方案
这个阶段最大的收获是:
1. 分层不能过多
2. 业务复杂之后,原来的c风格开发模式的颗粒太大,会导致分工不均
3. 监控体系没有做好,压力上来之后,对优化方向没有理论指导
Comments Off on 系统演进之路