pursuergreece 2024-07-07 22:05 采纳率: 0%
浏览 42
已结题

人工分析一个亿级消息接收处理策略的问题?

问题简述:一个应用系统A 需要通过HTTP接口接收某外部系统B的消息,系统A 提供3个接口,接收来自系统B的三类消息,每月数据总量约150亿条,经处理后推送前端。请问如何设计(请根据问题细节叠加人工分析,不要全用GPT回复。
这3个接口每次被调用一般就通过请求入参最多送10条数据,大多数情况一次调用大概送两三条数据,总共数据量一个月大概150亿条,其中1个接口T1推送过来的消息实时性要求较高,一般要求15秒内要处理完推送到前端渠道,并且消息量大概占了总量的70%,另外两个接口T2和T3推送过来的消息实时性要求较低,当天能推送给用户即可,这两个接口的消息总量占总量的30%。每次接口调用包含的数据数组大小不超过10,数组里的数据对象为JSON对象,不超过10个字段,每个字段值不超过30个字符。接口是加密的,需要验签解密后得到明文。

系统A 接收数据进行处理的需求如下:

(1)拿到接口推送的数据,对于每一条数据进行解密后,查询本地客户信息表(单表,大概3000万条数据),对于属于本地客户的消息数据,调用系统C的接口推送消息给前端渠道。

(2)对于上面三类消息的所有数据,每一类消息都需要推送给数据仓库,目前推送的方式是每天生成文件的方式推过去。

(3)所有消息不能丢失,接口T1收到的数据要尽量按接口被调用的顺序来推送,接口T2、T2的顺序性要求不高。

请问,需要怎么设计来满足需求?限于资源情况,主要只能考虑用kafka、redis、mysql。麻烦尽可能详细的介绍,预计需要多少机器等,可举例说明。请不要直接用GPT的回答,可针对题目需求在AI回答基础上比较人工修正分析。谢谢

  • 写回答

36条回答 默认 最新

  • CSDN专家-sinJack 2024-07-11 10:35
    关注
    获得1.00元问题酬金

    一个月150亿条数据,一天就是5亿数据。请求量还是挺大的。
    需要用kafka对数据做异步处理。如果要求顺序,将需要保证顺序的消息设置为相同的key,因为相同key的消息会发送到同一个分区。
    使用redis缓存,将重复查询的数据(本地客户信息等)放入redis缓存中,避免重复查询数据库。
    mysql查询优化,对查询的sql进行优化,保证sql性能最佳。

    评论

报告相同问题?

问题事件

  • 系统已结题 7月15日
  • 赞助了问题酬金15元 7月8日
  • 赞助了问题酬金15元 7月8日
  • 赞助了问题酬金20元 7月8日
  • 展开全部

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?