请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

_id是主键,不就已经是唯一了,为什么还要有uuid ?

_id是主键,不就已经是唯一了,为什么还要有uuid ?

正在回答 回答被采纳积分+3

1回答

神思者 2021-07-10 21:42:39

确实uuid暂时没用上,可以去掉

1 回复 有任何疑惑可以回复我~
  • 老师我是否可以这样理解,如果message_ref中主键的值是message中的uuid值,那uuid就有用了。但是您设计的message_ref中主键的值是message中的id值,那uuid值就多余了。
    像您说的那种特殊情况,假设消息队列是work模式(排他):
    (1)用户A消费了消息a,还没来得及将响应写入message_ref集合,也没有给消息队列响应ack应答,消息队列中不会删除消息a,消息a可以继续让其他用户消费;
    (2)所以用户B也可以从消息队列中消费消息a。
    (3)此时用户AB消费的消息是一样的,所以这条消息文档的id(或者uuid)是一样的,谁先将自己的响应消息写入message_ref集合,谁就成功消费了这条信息。
    (4)假设用户A先将响应消息写入了message_ref集合,此时这条响应消息的id(或者uuid)就是消息a的id(或者uuid);
    (5)当用户B再尝试将响应写入message_ref集合时,会出现主键冲突,所以无法将响应消息写入message_ref集合。
    (6)最后结果是用户A成功消费消息a,用户B失败。
    而uuid有没有用取决于message_ref集合的主键用的是message集合中的id还是uuid。
    请问老师我的理解是否正确?
    回复 有任何疑惑可以回复我~ 2024-01-12 18:38:18
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号