我的申请是作为中间人使用的,接收客户的请求,然后按照某种逻辑加以改变,并按普通的吉卜赛人协会的要求或网络服务的要求向另一个服务提供者发出已变要求。 该应用程序部署在装载平衡器后面的两个jbos服务器(组群)。
我要说的是A,服务提供者是S。
现在我被告知,每年S将减少数次(3至5次)。 每一次将持续4小时。 我可以就时间的缩短达成时间表。
在衰退时期,A不应再向S转变和发出要求,而是在Quue提出。 在S被退回后,应处理在座的请求。
注:
收到的申请必须按准确顺序处理。 一份。 处理一项请求意味着向S发送经修改的要求,使答复成功或错误。 这通常需要很多时间。
依据1,当A正在处理被问答的申请时,新收到的申请应当按顺序排列,尽管S已经提供。 在空缺之前,A可以继续直接向S提出请求。
每分钟A都收到2-3份申请。
由于我们有两艘船,我计划在数据库中维持这一奎埃,在登峰造点和管理下级地位。 然而,两艘小船之间的同步,总是使我头痛。
不久,我所遇到的问题是:
如何定下时限,以便两艘船能够完成申请,而不是寄出。 (在处理每项请求之前,曾设想为这一国旗设立查询数据库。) 旗帜是read。 这可能是更糟糕的解决办法。
之后 之后,如何设计两艘船的频率运行。 (看来,与此同时,总是有一艘小船......)
如何告知两艘船,”现在, que子是空洞的,不会再que。
逻辑是复杂的。 我希望我清楚地解释我的问题。
你们对此是否有任何想法?
Some more description about the FIFO. If there was no downtime, A can process those requests from different clients in parallel. Because this transaction-liked order is ensured by the clients. for example.
client x :
-send http://..../createUser...
-received success from A
-send http://../updateUser...
-received success from A
如果创建User(User)失败,更新 用户不是信天。
client y:
-send http://.. createCompany...
鉴于还有另一个客户(y)发出要求,因此产生了 2. 公司与x.create 用户:这两项申请可由A平行处理。
一旦想到底线和点子:
-send http://..../createUser...
(downtime)
-received enqueue
(S is back)
-send http://../updateUser...
现在,A而不是客户需要确保“合同与合同”的命令。
提前感谢!
Kent