业务场景:假设现在有1000人在同时浏览同一个微博,而且这一千人都将会点赞,为了简单化,我们假设这1000人是按照时间顺序依次点赞的。
点赞控件不可能让用户每点击一次就发送一次ajax请求,一千人同时在线,我们不能保证这一千个用户都不是一些无聊的人。如果他们同时(哪怕不是同时)点着这个控件玩儿,服务器肯定会宕机狗带!那么问题来了,前端方面在原有点赞数字上肯定是加1或者减1。后端方面把点赞的用户id和点赞目标用户的数据库里面储存的点赞用户(平常我们都会看到谁点赞我)进行匹配,如果存在那就减一,不存在那就加一。但是这个时候我们不能强调数据一致性,除非用户刷新,如果强调数据一致性,我点个赞就加125,这个体验就不是很好。所以返回的还是原先用户看到的那个点赞数字加一或者减一,那这样就不可避免的每点击一次都要发送ajax请求了,服务器宕机指日可待。。。
有没有好的解决方案
回复内容:
业务场景:假设现在有1000人在同时浏览同一个微博,而且这一千人都将会点赞,为了简单化,我们假设这1000人是按照时间顺序依次点赞的。
点赞控件不可能让用户每点击一次就发送一次ajax请求,一千人同时在线,我们不能保证这一千个用户都不是一些无聊的人。如果他们同时(哪怕不是同时)点着这个控件玩儿,服务器肯定会宕机狗带!那么问题来了,前端方面在原有点赞数字上肯定是加1或者减1。后端方面把点赞的用户id和点赞目标用户的数据库里面储存的点赞用户(平常我们都会看到谁点赞我)进行匹配,如果存在那就减一,不存在那就加一。但是这个时候我们不能强调数据一致性,除非用户刷新,如果强调数据一致性,我点个赞就加125&#x