问题简述:一个应用系统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回答基础上比较人工修正分析。谢谢