Disney Hotstar如何在比赛期间捕捉到50亿个表情符号?

客户通过标准HTTP请求发送表情符号。您可以将Golang服务视为典型的Web服务器。选择Golang是因为它具备出色的并发支持能力。Golang中的线程是轻量级的。
由于写入量非常高,因此使用Kafka(消息队列)作为缓冲区。
表情符号数据由一个称为Spark的流处理服务进行聚合。它每2秒聚合一次数据,此配置可调整。时间间隔的选择需要权衡。较短的间隔意味着表情符号更快地传递给其他客户,但这也意味着需要更多的计算资源。
聚合的数据写入另一个Kafka。
PubSub消费者从Kafka中提取聚合的表情符号数据。
表情符号通过PubSub基础设施实时传递给其他客户。PubSub基础设施非常重要。Hotstar考虑了以下协议:Socketio、NATS、MQTT和gRPC,最终选择了MQTT。
LinkedIn采用了类似的设计,每秒传输一百万个点赞。