V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaolong620
V2EX  ›  Java

技术大牛们来解答一下小白的问题

  •  
  •   xiaolong620 · 2019-08-03 08:46:46 +08:00 · 4884 次点击
    这是一个创建于 1728 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨天面试被问到 activemq 挂掉或者 redis 挂掉怎么实现消息同步? 我说的做集群,他说集群也会有死掉情况怎么实现消息同步,刚毕业不是很懂求大神们,帮我写个详细的说明,或者帮忙推荐一些能学这个资料什么的也行,谢谢了!

    22 条回复    2019-08-16 16:11:09 +08:00
    tnstar
        1
    tnstar  
       2019-08-03 08:58:10 +08:00 via Android
    加锁?
    karottc
        2
    karottc  
       2019-08-03 09:02:50 +08:00
    如果刚开始设计就是用消息队列做同步,那么消息队列的整个集群都挂了,肯定没法同步了。 这个问题要从一开始设计上就解决。 就像面试问你,支付宝所有集群服务都挂了,怎么保证正常使用支付宝,肯定就不行三。如果行,支付宝当年就不会持续挂了 6 小时,异地多活变成了笑话
    metrxqin
        3
    metrxqin  
       2019-08-03 10:54:09 +08:00 via Android
    我觉得这个是架构问题,因为涉及到高可用,太为难毕业生了。
    xiaolong620
        4
    xiaolong620  
    OP
       2019-08-03 11:14:20 +08:00
    @metrxqin 这不包装了一下吗,要不都没有面试的。。。
    reus
        5
    reus  
       2019-08-03 14:02:07 +08:00
    如果上游挂掉还能正常工作,那还要这个上游服务干嘛?难道不是多余的部件?

    你这个问题,有点莫名其妙
    jimrok
        6
    jimrok  
       2019-08-03 14:13:14 +08:00
    只能切换到备份的中心去做消息同步,例如客户端有两个以上的服务列表,a 挂了,去连接 b。答不出来也没关系,又不是比大家的知识,关键是要逻辑清楚,面试官考察刚毕业的应届生,主要还是看你的逻辑思维是不是有条理,是否有上进心,是否有兴趣在技术上,毕业生未来几年都是学习和补充知识的过程。
    xiaolong620
        7
    xiaolong620  
    OP
       2019-08-03 14:39:09 +08:00
    @jimrok 好的,谢谢
    Aresxue
        8
    Aresxue  
       2019-08-03 15:38:22 +08:00
    正常就集群、主备、主从。没明白集群也会死掉消息怎么同步是个什么意思,可能面试官也是个半吊子。。。如果是机器都挂了,神也啥都干不了,如果是问的如何恢复,可以从系统和应用的自动重启,以及数据的持久化方面答,好比 redis 的 RDB 和 AOF
    mamahaha
        9
    mamahaha  
       2019-08-03 18:19:43 +08:00
    提这个问题就是想压价,你愿意留下就把需求工资降一降就行了。
    iPhoneXI
        10
    iPhoneXI  
       2019-08-03 18:34:22 +08:00 via Android
    Redis 高可用机制有集群和哨兵吧,监控主从节点,自动失败转移,
    集群怪掉了,我也只能想到楼上说的备份的中心了,
    事前做好持久化,监控,事后做好恢复
    laminux29
        11
    laminux29  
       2019-08-03 19:00:07 +08:00
    activemq 挂掉怎么实现消息同步?加 Kafka。

    redis 挂掉怎么实现消息同步?加 MongoDB。

    集群挂掉怎么实现消息同步?这情况还真有,比如集群在一个机房里,然后整个机房断点导致集群全挂掉。那么对于这种情况,就给集群做集群,也就是多集群。比如异地多集群,全球多集群,甚至在月球上搞个机房来防止地球被炸后的数据安全。
    lihongjie0209
        12
    lihongjie0209  
       2019-08-03 19:03:31 +08:00
    怎么不说地球毁灭之后怎么实现消息同步?
    JinyAa
        13
    JinyAa  
       2019-08-03 19:14:04 +08:00
    上次跳槽也被问过这种,最后问我有什么想问他的,我说你们生产上用很多集群吗?答曰:没有。
    nthhdy
        14
    nthhdy  
       2019-08-03 20:24:49 +08:00
    都挂了还同步什么。。
    我怎么觉得他是想问挂了以后怎么恢复?
    Takamine
        15
    Takamine  
       2019-08-03 21:09:53 +08:00 via Android
    可能他想说的是集群单节点挂掉,哨兵,心跳检测什么的吧。
    要不就是他们公司完全实现了 CAP。:doge:
    ycs2019
        16
    ycs2019  
       2019-08-03 22:24:52 +08:00
    都挂了就是挂了,然后上人去处理,除非用其他兜底。
    polebug
        17
    polebug  
       2019-08-04 00:34:55 +08:00 via Android
    秋招 我也被问到 redis 挂掉怎么办 我猜他们是想问 redis 持久化
    xuanbg
        18
    xuanbg  
       2019-08-04 07:30:29 +08:00
    集群都挂掉了,当然就不行了,只能等恢复了。。。

    这个时候就需要有补偿机制了,让故障期间产生的数据能够在恢复后发送过去。
    zealot0630
        19
    zealot0630  
       2019-08-04 12:19:38 +08:00 via Android
    向应届生面工程实践问题的公司,不去也罢
    zealot0630
        20
    zealot0630  
       2019-08-04 12:25:39 +08:00 via Android
    mq 是 cp 的系统,就是抛弃了 a。什么是 a ?就是节点挂了就没有 a 了,要等待节点重新起来才能继续服务。如果做集群多读多写,就要一定程度抛弃 c 或者 p,这就是上层框架如何设计,架构师要考虑的问题了。
    jaylee4869
        21
    jaylee4869  
       2019-08-05 14:36:12 +08:00
    实现消息同步? 没明白问的啥。中间件高可用吗?
    cmonkey
        22
    cmonkey  
       2019-08-16 16:11:09 +08:00
    看起来是时候加机器了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2889 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:31 · PVG 22:31 · LAX 07:31 · JFK 10:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.