遇到一个面试题:需要向所有用户推送一个活动消息,比如618大促,每个用户收到消息后进行展示 ,一般是右上角的铃铛显示未读消息。
这种场景一般情况下回选择使用kafka来进行消息推送,如果有千万个用户,那么为每个用户推送一条消息,或者是一条消息,为每个用户绑定一个关系表,用户读取后,消息提示消息,这种情况下,推送一条消息就会生成千万条数据,有没有更好的方法呢。
可以利用kafka的offset思想,每个用户保存一个offset,通过offset来进行消息的消费读取,这样kafka只存在一条消息,但是每个用户都可以读到,并且每个用户可以通过自己的offset来判断是否已消费。