背景:在分布式系统中是如何处理高并发的。
由于在高并发的环境下,来不及同步处理用户发送的请求,则会导致请求发生阻塞。比如说,大量的insert,update之类的请求同时到达数据库MYSQL,直接导致无数的行锁、表锁,甚至会导致请求堆积很多。从而出发too many connections 错误。使用消息队列中【异步通信】可以解决 。
消息队列的同步和异步:
并行:
排队:在高并发的情况下,很多用户同时访问数据库,即可采用排队的方式。就不会导致too many connections。
eg:消息队列在电商中的使用场景。
消息队列的弊端:消息的不确定性。
解决办法:采用延迟队列,轮询技术来解决该问题即可。