问一个消息队列的问题 - V2EX
Yuicon
V2EX    Kafka

问一个消息队列的问题

  •  1
     
  •   Yuicon May 9, 2019 5247 views
    This topic created in 2564 days ago, the information mentioned may be changed or developed.
    现在有很多仓库本地电脑会创建一些例如设备这样的对象,需要发送消息到消息队列让云端管理也创建一个一样的对象。现在问题的两个对象在数据库里的 id 是不一样的,云端要用怎样的方式把云端数据库的 id 传给本地数据库比较好?本地没有公网 ip,所以无法回调。
    15 replies    2019-05-09 21:21:48 +08:00
    Yuicon
        1
    Yuicon  
    OP
       May 9, 2019
    目前自己的想法是搞个新的队列让客户端订阅去存 id,但是这样就很浪费,可能这个消息只发给一个客户端,这样所有的客户端都收到了
    Yuicon
        2
    Yuicon  
    OP
       May 9, 2019
    没有人么。。
    swuzjb data-uid=
        3
    swuzjb  
       May 9, 2019
    分布式主键生成策略? 没看懂你的问题
    Yuicon
        4
    Yuicon  
    OP
       May 9, 2019
    @swuzjb 依赖了框架的 orm 所以主键用的是数据库自动生成的
    我的问题是客户端发送消息后,有什么好的方法拿到云端根据消息创建记录后生成的主键
    coffeSlider
        5
    coffeSlider  
       May 9, 2019 via Android
    写一个接口做 id 映射。
    h8743
        6
    h8743  
       May 9, 2019
    啥数据库? mybatis mysql 自带新增返回 id
    Yuicon
        7
    Yuicon  
    OP
       May 9, 2019
    @coffeSlider 走消息队列后就是异步的了 新问题在于什么时候去做映射这一步
    Yuicon
        8
    Yuicon  
    OP
       May 9, 2019
    @h8743 兄弟 拿 id 是可以做到的 问题是怎么传给客户端
    Yuicon
        9
    Yuicon  
    OP
       May 9, 2019
    最后我的解决方案是搞个新队列,把带 id 的对象发布上去
    Nasei
        10
    Nasei  
       May 9, 2019 via Android
    可以搞一个两边都能访问的数据库…云端建完了就写一个本地 id 和云端 id 的记录,本地间隔去查
    Yuicon
        11
    Yuicon  
    OP
       May 9, 2019
    @Nasei 这样感觉消耗有点大,本地有很多也怕这个数据库有性能问题

    对象现在基本都有唯一的 code 字段,其实是一开始设计的问题,因为前期开发用的 orm 就依赖了数据库自动生成的 id,所以就有这么蛋疼的事情
    Nasei
        12
    Nasei  
       May 9, 2019 via Android
    @Yuicon 从队列发回来也是可以的,就变了一个基于队列的 rpc 了
    Yuicon
        13
    Yuicon  
    OP
       May 9, 2019
    @Nasei 嗯 感觉唯一缺点就是我不需要广播 一个消息应该精准的发给需要的客户端
    rrfeng
        14
    rrfeng  
       May 9, 2019
    『两个对象在数据库里的 id 是不一样的』
    你让他一样不就行了吗???

    数据库里的自增 id 无所谓啊,加一个字段不就行了?关键是客户端生成的 id 是不是唯一的?
    Yuicon
        15
    Yuicon  
    OP
       May 9, 2019
    @rrfeng 你说的这个我是搞了一个唯一的 code 字段,问题是业务里用了很 orm 的东西,强依赖了这个自增 id
    比如我要创建一个对象,必须要传入对应的外键 id 才行
    About     Help     Advertise     Blog     API     FAQ     Solana     1014 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 57ms UTC 23:07 PVG 07:07 LAX 16:07 JFK 19:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86