【发布时间】:2019-06-08 21:40:32
【问题描述】:
假设我有像堆栈溢出这样的高负载 Q/A 论坛。 想象一下只有两个线程,First 和 Second。 每次有人发布答案/回复时,都会导致两次插入消息队列。 1. 插入帖子/回复的命令和 2. 给定线程的重建缓存命令。
假设,我在某个时间有这个队列的快照:
0: insert First.1 answer
1: rebuild First
2: insert First.2 answer
3: rebuild First
4: insert Second.1 answer
5: rebuild Second
6: insert First.3 answer
7: rebuild First
A./ 在步骤 #1 中处理队列时,是否有任何机制可以帮助实现,在 #3 和 #7 还存在“First”的重建,因此 #1 和 #3 可以被丢弃,只有 # 7个可以加工吗?
B./ 哪种消息队列产品(RabbitMq、Kafka、ActiveMQ ......)最适合这种用途?这里的关键属性是性能和可扩展性,因为应用程序应该处理 > 100 000 req./s.,大约 10% 的写入(相对于 90% 的缓存读取)。
感谢您的任何建议。 (不是作业,只是简化了过于复杂的问题,无法详细描述)
【问题讨论】: