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

如何提高时效性实现解耦

  •  
  •   garibellee · 2023-03-05 12:56:20 +08:00 · 928 次点击
    这是一个创建于 390 天前的主题,其中的信息可能已经有所发展或是发生改变。
    =======================场景=======================
    10w+用户每天 15 分钟的数据一天 96 点(未来 5 分钟级别就是 288 点),两个系统( A oracle->B mysql 库是隔离的)之间目前使用 HTTP 同步,两侧 DB 的 I/O 时效性能很差。

    =======================疑惑=======================
    1 、其实内核就是数据同步,或者请问使用什么样的架构设计会好点,但是由于限制问题可能没有办法直接连接两个库,能用的方案就是 grpc 或者消息中间件

    2 、数据库针对这种点数据如何设计表结构,目前这表 100 个字段,数据量大了之后很多问题,但是为了统计还是先这样( p1 p2 )用了。

    3 、我现在在类生产环境开发了一套 mock 服务提供给系统进行数据采集,用了 caffeine ,一天伊始模拟 10w 用户浮动数据再异步落库上 JVM 里面缓存占用 670MB ,然后接口调用也考虑缓存一致性问题,但是压力来到我们自己的系统了,入库耗时久,有什么优化方案吗?


    ======================不成熟的想法===================
    1 、订阅 binlog 发送 mq 消息,数据一致性要求高的话做对账,还是异步 mq 失败的话也会重试,还有对账兜底
    2 、或者直接 A 系统产生文件然后用 http 传递 binlog 、log 这种
    3 、有就是 10w 用户不该再去查询返回,直接 A 系统存好 B 要的 10w 的 ID
    4 条回复    2023-03-06 10:32:49 +08:00
    opengps
        1
    opengps  
       2023-03-05 13:05:53 +08:00 via Android
    点,用时序数据库来处理更轻松些
    另外,传输方式用 http 也有点笨重,http 的头信息甚至可能远大于数据本身了
    garibellee
        2
    garibellee  
    OP
       2023-03-05 13:15:23 +08:00
    @opengps 我正在看 pg sql 时序数据有损压缩和刚想起来,准备来问有用过时序数据库落地的嘛。
    garibellee
        3
    garibellee  
    OP
       2023-03-05 13:17:43 +08:00
    @opengps 目前是把 10w 用户 List 96 个点数据分页放在 json 用 http ,这网络带宽够呛,一次数据交互 600MB 起步。
    garibellee
        4
    garibellee  
    OP
       2023-03-06 10:32:49 +08:00
    但是使用时序的问题就在于, 单次入库无法实现多个时间点的方案(因为可能存在在 p80 修正 p65 数据的情形),那么我用无主键配合不同索引结构,至少写能力不弱,而且没有引入其他中间价成本。但是这周有时间先试试 TSDB 吧,先动起来。
    ps 架构设计、数据库选型真的好重要,望山跑死马。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2847 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 11:44 · PVG 19:44 · LAX 04:44 · JFK 07:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.