Gearman分布式任务处理系统(九)我的架构
2013-11-15 14:04
260 查看
我们以前是做一个营帐系统,C/S架构,前台Delphi做界面,后台是是一个自己实现的内存交互的网络中间层,后台是Unix+C+Informix数据库。
由于大热所趋的B/S架构,加之硬件的更新,而Informix数据库又只能运行在Unix数据,驱动很难找,所以决定改架构。
由于我们后台只对C语言比较熟悉,对JAVA不熟,而且系统主要是面向营业厅,所以对并发要求不是特别大,因此我们决定用LAGMCP的架构。即,Linux+Apache+PHP+Gearman+C+MySQL架构。
Gearman也算是比较多的被运用于生产的队列中间件,有丰富的开发库,对于中小型系统也够用了。
我们目前的架构大体如下:
如图所示:
PHP负责客户端浏览器页面端的展示,中间通过Gearman向业务层查询数据或发送业务请求,业务层用C访问MySQL数据库。
实际应用中, 我们在MySQL前面还放了一个代理,来负责统一连接不同数据库服务器,应用层只与代理连接,这样数据库对应用层逻辑上是透明的。
Apache与Gearman间的连接方式,可以是Mod_PHP方式直接调用PHP脚本连接Gearman,也可以是PHP以FastCGI方式运行,Apache通过Mod_FastCGI模块连接PHP-FPM,PHP-FPM再连接Gearman
在Worker端,每个业务模块会起多个进程,即多个Worker,为防止Job Server单点,也可以有2台Job Server,Worker会在两台Job Server上都注册函数,每个业务模块也可能连接多个数据库,这样就会有如下一种模型:
这种架构,很适合扩充服务,增加Worker或增加DB都很容易,数据库垂直扩展很容易,借助CoBar代理,数据库在水平扩展上也比较容易实现。
由于大热所趋的B/S架构,加之硬件的更新,而Informix数据库又只能运行在Unix数据,驱动很难找,所以决定改架构。
由于我们后台只对C语言比较熟悉,对JAVA不熟,而且系统主要是面向营业厅,所以对并发要求不是特别大,因此我们决定用LAGMCP的架构。即,Linux+Apache+PHP+Gearman+C+MySQL架构。
Gearman也算是比较多的被运用于生产的队列中间件,有丰富的开发库,对于中小型系统也够用了。
我们目前的架构大体如下:
如图所示:
PHP负责客户端浏览器页面端的展示,中间通过Gearman向业务层查询数据或发送业务请求,业务层用C访问MySQL数据库。
实际应用中, 我们在MySQL前面还放了一个代理,来负责统一连接不同数据库服务器,应用层只与代理连接,这样数据库对应用层逻辑上是透明的。
Apache与Gearman间的连接方式,可以是Mod_PHP方式直接调用PHP脚本连接Gearman,也可以是PHP以FastCGI方式运行,Apache通过Mod_FastCGI模块连接PHP-FPM,PHP-FPM再连接Gearman
在Worker端,每个业务模块会起多个进程,即多个Worker,为防止Job Server单点,也可以有2台Job Server,Worker会在两台Job Server上都注册函数,每个业务模块也可能连接多个数据库,这样就会有如下一种模型:
这种架构,很适合扩充服务,增加Worker或增加DB都很容易,数据库垂直扩展很容易,借助CoBar代理,数据库在水平扩展上也比较容易实现。
相关文章推荐
- Gearman分布式任务处理系统(五)版本介绍、安装方法和使用说明
- Gearman分布式任务处理系统(一)基本介绍
- [Link]Gearman分布式任务处理系统
- Gearman分布式任务处理系统(一)基本介绍
- Gearman分布式任务处理系统(三)libevent介绍
- Gearman分布式任务处理系统(四)Gearman协议
- Gearman分布式任务处理系统(七)问题研究与性能优化
- Gearman分布式任务处理系统(六)跨多种环境部署
- Gearman分布式任务处理系统(七)问题研究与性能优化
- Gearman分布式任务处理系统(二)扩展应用
- Gearman分布式任务处理系统(六)跨多种环境部署
- Gearman分布式任务处理系统(十)后记(持续更新)
- Gearman分布式任务处理系统(三)libevent介绍
- Gearman分布式任务处理系统(十)后记(持续更新)
- ActiveMQ(六):spring+ActiveMQ+线程池实现简单的分布式,多线程,多任务的异步任务处理系统
- 分布式任务系统gearman的python实战
- spring+ActiveMQ+JMS+线程池实现简单的分布式,多线程,多任务的异步任务处理系统
- 用Gearman进行分布式任务处理
- gearman 分布式图片处理系统
- 使用MySQL UDFs来调用gearman分布式任务分发系统