新项目,新架构
来源:互联网 发布:淘宝客建站程序 编辑:程序博客网 时间:2024/06/11 09:50
新项目需要一个长连接架构的实现,而长连接对于性能的要求决定了用c或者c++来写比较靠谱,但是公司的技术人员组成决定了不可能用c或者c++来写业务逻辑,而且这个也不现实,会使得开发周期和维护成本很高。于是决定采用boost/asio + fastcgi + php来实现,也即前端有一个保持长连接的服务器,当前端将请求发上来之后,长连接服务器通过fastcgi协议将请求发给php,由php处理完成后再返回给长连接服务器,由长连接服务器返回给用户。
有人可能会说,这跟web服务器有啥区别?区别有这么几个,一个是web服务器是基于http协议的,即使采用keep-alive,在使用上也有很多不便;二是,http协议是无状态的。用上面的架构显然协议不一定是http的,可以任意自己想要的协议,我们采用的是AMF0。那么第二个问题,如何解决无状态,通常web服务器是通过session,这个显然有性能问题,而且session是没有保证的。于是我们反过来,长连接服务器同时作为session服务器,在把请求发给php时,同时将存储在长连接服务器的session也发给php,php对session的任何更改也在响应中回传给服务器,由服务器保存,下一次调用时再传回去。这样一来,从php服务器端看到的是一个有状态的请求序列。
今天终于把代码写完了,大概测试了一下,响应速度还是可以接受的。接下来主要是就是写php端的业务逻辑了,这个纯粹就是堆代码的体力活了。
- 新项目,新架构
- 新项目新学习
- 新项目架构搭建要点
- 新工作新环境新项目
- 又一个新项目!又一个新的开始!:)
- 新项目。。。
- 新公司新入手的一个新项目的心路历程
- 新系统新架构
- 对于新公司新项目的一些感触和认识
- TestFlight 新项目创建新的testflight record,查看和删除
- 新安装的Myeclipse创建新项目Configure build path
- django创建一个新项目以及创建一个新的应用
- Android打开项目操作方式总结 & 新项目的项目架构
- 新项目中使用的系统架构(类MVC)
- 从零开始的Android新项目1 - 架构搭建篇
- 从零开始的Android新项目1 - 架构搭建篇
- 从零开始的Android新项目1 - 架构搭建篇
- 凌云架构V0.1——第一部分 Why架构?——第一章 新项目来了
- 看了代码的一些想法
- 《伊卡通》升级8.0啦
- cgi测试程序
- 最小路径覆盖,最小点覆盖,最大独立点集
- c# 时间转换
- 新项目,新架构
- eclipse mapreduce plugin
- 字体样式与字符串间的转换
- 如何利用openssl为iis生成ssl服务器证书
- c#里面int?、DateTime? 是啥意思
- 改编版把悲伤留给自己
- Python Thread and Processes----Python开发技术详解
- AABB和OBB包围盒简介
- 智能指针