xiaolong620
V2EX  ›  Java

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

  •  
  •   xiaolong620 · Aug 3, 2019 · 5867 views
    This topic created in 2500 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    这个时候就需要有补偿机制了,让故障期间产生的数据能够在恢复后发送过去。
    zealot0630
        19
    zealot0630  
       Aug 4, 2019 via Android
    向应届生面工程实践问题的公司,不去也罢
    zealot0630
        20
    zealot0630  
       Aug 4, 2019 via Android
    mq 是 cp 的系统,就是抛弃了 a。什么是 a ?就是节点挂了就没有 a 了,要等待节点重新起来才能继续服务。如果做集群多读多写,就要一定程度抛弃 c 或者 p,这就是上层框架如何设计,架构师要考虑的问题了。
    lavvrence
        21
    lavvrence  
       Aug 5, 2019
    实现消息同步? 没明白问的啥。中间件高可用吗?
    cmonkey
        22
    cmonkey  
       Aug 16, 2019
    看起来是时候加机器了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1196 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 148ms · UTC 23:45 · PVG 07:45 · LAX 16:45 · JFK 19:45
    ♥ Do have faith in what you're doing.