作者in2 (啦啦:)我是好in2)
看板PttCurrent
标题关於分散
时间Wed Jun 26 20:31:44 2002
就我想到的关於分散一些问题, 提出我的想法,
大家帮我看一下有没有问题~ :))
1.有一个前端的程式负责接 connection,
决定要分到哪个 server ,
如果是在 local的话, 就直接 exec 她,
否则看看要用 multi-thread 来弄会不会比 select 好些?
2.每个 mbbsd都用两个 message queue (一个负责收, 一个发)
和一些 local server 连.
架构:
mbbsd lock daemon <-> netd <-intranet-> netd <-\ mbbsd
mbbsd <-> local daemon <-/ local daemon <-> mbbsd
mbbsd mbbsd
syncd <-intranet-> syncd
即任两台间只会有 netd (主要负责回应 mbbsd的资料) 以及
syncd (负责 sync shared-memory)的连线.
举例:
使用者 login (->local daemon -> netd -> netd 要看主 server 是不是在近端)
-> lock daemon 进行实际的 utmp login
-> lock daemon 向 netd 送出广播 utmp login .
修正 money:
mbbsd -> (local daemon -> netd -> netd)
-> lock daemon进行实体修正钱的动作
-> return成功/失败
-> (netd -> netd -> local daemon ->) mbbsd
其中 netd 最主要只是在 socket 间和 message queue间转换.
因为 select() 好像没有办法吃 message queue ,
也就是, 如果 mbbsd要透过 message queue丢过来的话,
中间势必要有个把 message <->socket的程式
syncd 主要是 sync 一些 shared-memory的东西,
像是每五秒钟会把目前自己这台上使用者的动态 broadcast给其他 server .
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.143