抢红包高并发问题

                                            抢红包高并发问题

我们在搭建网站时候要考虑高并发问题,比如抢红包。当到节假日时候,人们会互相发送红包。

我们需要对这种高并发的请求行处理。我们需要先对发送红包的请求进行处理。

服务器端处理发红包请求的时候先生成一个发送红包订单:

对于抢红包的时候或者节日有高并发访问的时候,这个订单信息存在两份mg消息队列中。防止一个消息队列

服务器崩溃。然后再把消息给redis缓存。在服务器端随机生成红包id。这个id可以是:ip+mac地址+时间戳+循环随机数;

也可以是利用雪花算法或者uuid来保证生成的红包id唯一。需要4b存储。其中服务器端在处理发红包的请求的时候,

为了提高服务器的处理性能,会在客户端先处理请求(比如可以把红包分割成多少份,然后发送给服务器端)。红包

内容包括一些前台传的红包信息,红包总数等。假设有200个领取红包上限人数。需要400b来存储抢红包人的id。

总共不会超过1kb。那么4g的内存可以存储的消息能有400万。而且服务器的内存更大。这样足够满足接受客户端

的高并发请求,然后交给redis备份处理。

注意事项:

1:网络传输的尽量传输字符串,这样避免字符串的反序列化耗费性能。

2:读写redis和db是异步操作。隔一段时间后才向数据库里写入。防止频繁的io耗费性能。

3:mg消息队列和redis可能是双写,这样防止一份崩溃之后造成较大的损失。

猜你喜欢

转载自blog.csdn.net/qq_43279637/article/details/84291452