zoukankan      html  css  js  c++  java
  • Gearman分布式任务处理系统(九)

    我们以前是做一个营帐系统,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代理,数据库在水平扩展上也比较容易实现。

  • 相关阅读:
    java枚举
    [bzoj3436]小K的农场【差分约束系统】【判负环】
    [bzoj1085][SCOI2005]骑士精神【暴力】
    [bzoj1034][ZJOI2008]泡泡堂BNB【贪心】
    [bzoj1046][HAOI2007]上升序列【dp】
    [bzoj1050][HAOI2006]旅行comf【MST】
    [bzoj1047][HAOI2007]理想的正方形【单调队列】
    [bzoj1004][HNOI2008]Cards【群论】
    [bzoj1045][HAOI2008] 糖果传递【构造】
    [bzoj4589]Hard Nim【FWT】
  • 原文地址:https://www.cnblogs.com/shenming/p/3628365.html
Copyright © 2011-2022 走看看