Topic: 持久性队列的设计??????????? |
Print this page |
1.持久性队列的设计??????????? | Copy to clipboard |
Posted by: wendy_yu_2001 Posted on: 2003-07-25 09:42 请问各位大侠,持久性消息队列怎么设计? 是不是队列中的每个消息都要保存在文件或者是数据库中? 谁能给我讲讲消息中间件中能否使用rmi,它与RPC有何区别。 谁又持久性队列的例子请给我一个看看。 |
2.Re:持久性队列的设计??????????? [Re: wendy_yu_2001] | Copy to clipboard |
Posted by: jeez Posted on: 2003-08-08 16:59 消息在没有被收到之前,需要持久存储到文件系统或数据库。收到之后就删除掉了,主要是为了保证系统当掉也不丢失数据。 |
3.Re:持久性队列的设计??????????? [Re: wendy_yu_2001] | Copy to clipboard |
Posted by: HenryYu Posted on: 2003-08-19 17:24 想实现持久性肯定是“save”起来了,还有什么好说的,支持jeez的观点 |
4.Re:持久性队列的设计??????????? [Re: wendy_yu_2001] | Copy to clipboard |
Posted by: wendy_yu_2001 Posted on: 2003-09-22 18:09 如果将消息保存起来的话,那么当客户接收到消息的时候,我想要把存储的消息删掉.问题是,我怎么知道用户是否收到 消息????? 请给出具体说明,最好给出代码例子 |
5.Re:持久性队列的设计??????????? [Re: wendy_yu_2001] | Copy to clipboard |
Posted by: coloumn Posted on: 2003-09-26 10:13 具体说明可不好说: 根据不同的情况、实现方式都会有不同。其实在实现时要掌握的就是你说的:”怎么知道用户是否收到消息“。然后你开动脑筋实现它就行了 |
6.Re:持久性队列的设计??????????? [Re: wendy_yu_2001] | Copy to clipboard |
Posted by: coloumn Posted on: 2003-09-26 10:20 还是说个基本思想吧: 发送端要保存没有确认收到的消息。而接收端接到一个消息后要记录消息的id(此id是唯一的)。 发送端在没有收到确认消息的时间段中,要重发相同的消息(具体的时间间隔可根据配置确定)。接收端如果发现重复收到相同的消息,应该抛弃,但必须向发送端再次发送确认收到信息。 如果发送端收到确认消息,就删除本地保存的相关消息内容。(当然有可能做日志记录,说明已经发送成功)。 当然,如果你的消息要发送到多个目标,问题就更多了。自己想去吧! 就是这样的。 |
7.Re:持久性队列的设计??????????? [Re: wendy_yu_2001] | Copy to clipboard |
Posted by: yogurtpig Posted on: 2003-09-28 15:49 我们现在给客户做的是消息收到了数据库里记录消息的确认.因为消息即使传到了,客户如果有意或者无意给删掉,那你去什么地方找确认呢? 另外我们做的可能有点特殊,就是连接到数据库服务器的也并不是消息队列服务器,它本身也是消息队列服务器的一个客户,消息队列服务器的持久性它自己是用文件做的,我们不管.但是我们仍需要实现一个基于数据库的持久性方法. 这种方法在传输的数据重要性非常高的时候特别适用. |
8.Re:持久性队列的设计??????????? [Re: wendy_yu_2001] | Copy to clipboard |
Posted by: wendy_yu_2001 Posted on: 2003-10-07 10:31 对于大家所给的意见,我基本上明白,但是还有一个问题---关于消息的发送和确认不是TCP负责的功能吗。我得连接是tcp连接(socket),本身就是可靠的,那么是不是应该这样认为,每次我发送一个消息,操作系统一定会保证对方正确接收到这个消息。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |