-- Zoom.Quiet [2004-09-15 00:29:58]
定场诗
指南针!最简单! 你提要求,我指引, 剩下的…… 丫们自个儿解决去吧!-
目标为PyUSS系统提供7*24小时可持续运行的基础支持。
-
咦咦咦?那未, OUSS 还没有的时候,我们仅仅是进行 Compass 的空运行???
-
嗯嗯!看来OUSS的模拟器也是 testUnit 的内容了!
故事
-
仅以熟悉的 Web 站点服务用户角度来讲述最基础的Compass 运行故事...
-
对话实际都是网络二进制报文,少部分是程序间的调用....
服务查询故事
最频繁发生的服务查询流程-
正常事务流程图中右边灰色流程
角色
-
小W : 某台 Web应用站点的程序集合
-
小C : 小W上驻留的 Compass Agent(Client) 进程
-
大C : 中央 Compass Dispatcher(Server) 服务
-
路人甲 : 网络中某台DB服务器上的 Compass Agent(Client) 驻留进程
-
路人乙 : 网络中某台DB服务器上的 Compass Agent(Client) 驻留进程
-
路人丙 : 网络中某台DB服务器上的 Compass Agent(Client) 驻留进程
场景
-
小W发现有来访者要进行过去的数据查询!不得不进行数据库访问
Action!
-
小W: 小C!我要一个数据源!含有 foo 数据库,用户,口令都是sa 的!
-
小C: 得令!
-
小C: 大C!我要一个数据源!含有 foo 数据库,用户,口令都是sa 的!
-
大C: 晓得了!小C等着!
-
大C: 查了一下子,小W是第一次审请数据服务哪!没有丫的关系信息!
-
大C: (向所有Compass网络节点吆喝) 妈的!谁哪有 foo 数据库,用户,口令都是sa 的!小W要用!赶紧!
-
然后回去睡觉
-
路人甲 : Kao !我今儿说了多少回了!没有!(不予理睬,继续QQ泡MM....)
-
路人乙 : 嗯嗯!我查一查......
-
路人丙 : 我查!嗬嗬嗬,有一个!小C!我这有!
-
路人乙 : 嗯嗯!查到了,有一个!小C!我这有!
-
小C : 嗬嗬嗬!怎么有两个的?!?浪费!不过 路人丙 的先收到!也许快....
-
小C : 小W!喏! 路人丙 的可以连接!
-
小W : OK!....(开始查询!干活)
-
小C : 大C! 我这 foo 数据库,用户,口令都是sa 的! 用 路人丙 的了!路人乙的也有,我要当备份!
-
大C : 收到.........(生死薄中为小W记了笔)
断想
-
所有交互报文都会非常短小
-
但是小W等待小C反馈的时间绝对不能长!
-
小W与小C交流的接口要非常Easy 与原来,小W在脚本中写死的方式,相差不能太悬殊!
-
是Roo 的应用API 的开发了!??!
服务报警故事
最不想发生,但是一定会发布,而且是 Compass诞生原因的服务中断处理-
正常事务流程图中中间 深红色以及亮绿色流程
角色
-
小W : 某台 Web应用站点的程序集合
-
小C : 小W上驻留的 Compass Agent(Client) 进程
-
大C : 中央 Compass Dispatcher(Server) 服务
-
路人乙 : 网络中某台DB服务器上的 Compass Agent(Client) 驻留进程
-
路人丙 : 网络中某台DB服务器上的 Compass Agent(Client) 驻留进程
-
路人丁 : 网络中某台DB服务器上的 Compass Agent(Client) 驻留进程
礼貌退场
-
路人乙 : 不行了!工作这么无聊!我不干了!小C!大C!我马上要自杀了!你们不要拦我!
-
小C: 小W! 路人乙 罢工了!你等会儿!
-
大C: 收到.........(生死薄中从小C那划去 路人乙 的相关记录)...哎...谁都不容易!
-
小C: 大C!我要一个数据源!含有 foo 数据库,用户,口令都是sa 的!
-
大C: 晓得了!查了一下子,路人丙 有,你先用着!
-
大C: (向所有Compass网络节点吆喝) 妈的!除了 路人丙 谁哪有 foo 数据库,用户,口令都是sa 的?
-
然后回去睡觉
-
小C : 路人丙!在否?! foo 数据库,用户,口令都是sa 的有?
-
路人丙: 烦着呢!别理我!正在整理硬盘!
-
路人丁 : 我查!嗬嗬嗬,有一个!小C!我这有!
-
小C : 路人丁!你有哪!我爱你! 小W 路人丁的! 大C! 路人丁 的可以, 路人丙 的暂时不能使用!
-
大C: 收到.........(生死薄中从小C那修改相关记录)...哎...谁都不容易!
意外死亡
-
小W: 小C!我要一个数据源!含有 foo 数据库,用户,口令都是sa 的!
-
小C: 得令!
-
小C: 我查! 路人丁 有,嗬嗬嗬! easy!
-
小C: 路人丁?在否?! foo 数据库,用户,口令都是sa 的有?
-
小C: 路人丁?在么?!!
-
小C: 路人丁?!!
-
小C: MMD!死了?!?! 大C! 路人丁 翘了!我现在需要 foo 数据库,用户,口令都是sa 的数据源!!
-
大C: 收到.........(生死薄中从小C那修改相关记录)...哎...谁都不容易!
-
大C: (向所有Compass网络节点吆喝) 妈的!除了 路人丁 谁哪有 foo 数据库,用户,口令都是sa 的?
-
然后回去睡觉
-
路人丙: 噢!好了!我有!我可以...小C!
-
小C : 小W!现在用 路人丙 的先! 大C!路人丙的在用了!
-
大C: 收到.........(生死薄中从小C那修改相关记录)...哎...谁都不容易!
断想
-
单点故障??? 在Compass 中处理是自然快捷的....吧?!
-
但是影响的效率,以及可靠?
-
Twisted 在此仅仅作为网络通讯的标准工具包,但是通过报文的自动发送,广播,等等,正确快速的修正服务间的依赖关系,并保证实际应用的连续性?!
-
需要精巧的设计!