作者ogre0403 (肚子饿)
看板java
标题Re: [问题] 想问有没有比较好的设计方法
时间Fri Feb 16 01:06:29 2007
※ 引述《sniffing (.)》之铭言:
: ※ 引述《ogre0403 (肚子饿)》之铭言:
: : 各位高手好,最近想要写一个client/server架构的程式,目前还在设计的阶段,
: : 想上来问一下有没有比较好的设计方法,或是有类似的范例可以参考
: : 如果不能问这类问题的话,我会自d
: : 目前要写的程式有点像是bt的样子,假如现在有很多的server,例如s1、s2、s3…
: : 我的client只要和其中的一个server连线,例如s1,s1就会把client的要求送到其他的
: : s2、s3…,之後s2、s3…又会把结果送回到s1,s1再一次把所有的结果回传给client
: : 目前想到的做法一是:
: : 当client连到s1後,s1有implement cloneable和runnable,所以可以拷贝本身在一个
: : thread上执行,在这个thread上再开一个socket来linsten由s2、s3…所回传的结果,
: : 可是这样好像会开很多个socket且还要再把port的资讯送到s2、s3…
: : 想法二:
: : 在s1上建二个socket,一个负责listen由client来的要求,另一个负责listen s2、s3…
: : 所回传的结果,这样一来,若有多个client的时候,就无法分辨s2、s3…所回传的结果
: : 是属於那个client
: : 有没有人有更好的设计方式,谢谢
: 其实我觉得关键是在於你每台server存放的资料为何
: 若每台的资料都一样或差不多,多伺服器是为了增加处理效率的话,
: 可以考虑google的「Map/Reduce」设计方式
: 而如果多伺服器是为了分散风险的话,也许可以试试「DHT」
: 引号内是关键字,google一下应该会有资料
: 这个问题我也想过,但一时没有实作出来,还请大家不吝指教
严格说起来,我想的这个问题应该是为了transparency,刚刚的叙述可能有点不足
我再补充二句好了,s1可以把要求送到s2和s3,可是另外有s4、s5…,但是s1完全
不知道s4和s5的存在,可能只有s3知道s4,s2知道s5,当s1送要求给s2和s3後,s2
会再送给s5,s3会送给s4,最後s2、s3、s4、s5都会把结果送给s1,这样s1可以在
不知道s4和s5的情况下得到大家的资讯,
谢谢你的回应,我会去google一下
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.140.62.76