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

萌新想问一下,存放在 mongodb 中的购物车商品数据,如何和数据库实时同步呀?

  •  
  •   shadow1949 · 2020-08-23 03:26:18 +08:00 via Android · 2357 次点击
    这是一个创建于 1553 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我本来以为要用 mq,后来发现数据库修改一次,mongodb 中,修改好多次,好像不可取,但是又想不到其他的办法,所以想问下各位 v 友们,大家是怎么解决这个问题的。
    5 条回复    2020-08-24 08:39:40 +08:00
    crclz
        1
    crclz  
       2020-08-23 08:28:10 +08:00   ❤️ 1
    1. 如果没有性能问题,就只用数据库
    2. 如果有性能问题,则用多台机器+中间件来把数据库整改成分布式
    3. 如果性能进一步达到瓶颈,这时候才需要使用缓存( redis )。就涉及到一个问题:缓存的更新策略

    同理,上文中的数据库也可以替换为 mongo,就省去了找中间件的问题。如果按照关系型的设计数据库表的方式(范式)来设计 mongo 的表,关系型+中间件的性能是不比 mongo 副本集差的。
    594duck
        2
    594duck  
       2020-08-23 08:53:40 +08:00 via iPhone
    @crclz 老哥说话实在。但是现在小年轻说不用范式设计数据库了,应为范式落后,有主键。不符合微服务定义 z
    crclz
        3
    crclz  
       2020-08-23 15:25:28 +08:00   ❤️ 1
    @594duck 其实我的意思是,范式会(轻微)拖累 mongo 的性能。某些情况,如果按照范式,就会设计出 2 张或 3 张表,但 mongo 可嵌套对象、数组,就只会有 1 张表。这种设计会违反第一范式,但是这种设计如果设计的好的话,就可以提升性能(或者说就可以发挥面向聚合的分布式数据库的优势)。
    但是这种聚合的设计也有学问在里面。如果没有设计能力,还是应该乖乖按照范式来,和微服务没啥关系。
    yngzij
        4
    yngzij  
       2020-08-23 19:35:58 +08:00 via iPhone
    用 Mongo 的 watch ?
    anakinsky
        5
    anakinsky  
       2020-08-24 08:39:40 +08:00
    MongoShake
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   939 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 20:49 · PVG 04:49 · LAX 12:49 · JFK 15:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.