这是一个创建于 582 天前的主题,其中的信息可能已经有所发展或是发生改变。
=======================场景=======================
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
|
|
1
opengps 2023-03-05 13:05:53 +08:00 via Android
点,用时序数据库来处理更轻松些 另外,传输方式用 http 也有点笨重,http 的头信息甚至可能远大于数据本身了
|
|
|
2
garibellee 2023-03-05 13:15:23 +08:00
@ opengps 我正在看 pg sql 时序数据有损压缩和刚想起来,准备来问有用过时序数据库落地的嘛。
|
|
|
3
garibellee 2023-03-05 13:17:43 +08:00
@ opengps 目前是把 10w 用户 List 96 个点数据分页放在 json 用 http ,这网络带宽够呛,一次数据交互 600MB 起步。
|
|
|
4
garibellee 2023-03-06 10:32:49 +08:00
但是使用时序的问题就在于, 单次入库无法实现多个时间点的方案(因为可能存在在 p80 修正 p65 数据的情形),那么我用无主键配合不同索引结构,至少写能力不弱,而且没有引入其他中间价成本。但是这周有时间先试试 TSDB 吧,先动起来。 ps 架构设计、数据库选型真的好重要,望山跑死马。
|