任何人都可以对任何社交媒体网站(如Facebook、Twitter,甚至是堆栈溢出)的喜欢/评论按钮背后的架构做一些说明。
我想知道的是,当一个用户点击一个喜欢的按钮或点击提交时发表评论,那么在后端会发生什么?
是否立即获取数据并将其存储在数据库中,然后将响应发送到客户端?或者是否使用某种体系结构(如消息队列)立即将响应发送到客户端,然后再进行处理(存储在数据库中)?
请让我知道,如果任何技术,如消息队列或任何其他使用时,这些按钮(如,评论)被点击或只是数据存储在数据库?
任何见解都将不胜感激。
谢谢你,谢谢。
1条答案
按热度按时间ivqmmu1c1#
我不知道。但如果你对建筑感兴趣...
在一个简单的低使用率业余爱好解决方案中,您可能可以直接触发数据库更新(其中“直接”意味着通过API和适当的软件分层:逻辑、依赖注入、数据访问代码、数据库)。在该解决方案中,对点击感兴趣的解决方案的任何部分都可以查找该数据,并且/或者通过一些基于事件的方法被触发。
当您为了高使用率而向外扩展时,队列将允许您捕获事件并异步处理它。然后,该事件可以由任何一个可用的订阅者拾取。
如果您要处理的事件数量特别大,缓存可能是另一种方法,在这种方法中,缓存被更新并用于服务其他请求;并且该事件是异步持久化的。有许多有用的缓存模式可以在这里应用,例如Write-Behind / Write-Back模式。
模式的使用、技术和方法的选择归结为与解决方案上下文相关的各种体系结构驱动因素,在您所讨论的场景中,这些驱动因素将包括随时间推移的预期事件量(写入和读取);可接受的等待时间;未丢失事件的关键程度;感兴趣的消费者组件的数量(取决于解决方案其余部分的复杂性)。