同步和异步的概念,同步是发送方发送消息后,需要等到接收方的回应,才会继续执行下去;而异步则是发送方在发送消息后,就会继续执行,而不管接收方是否回复消息。
当多线程访问资源时,需要保证在某个时刻只能被一个线程访问,这时需要使用同步,也就是对数据进行同步,其他线程必须等待,比如银行的转账系统,对数据库的保存操作等等,都是同步
为了避免短时间大量的数据库操作,就使用缓存机制,也就是消息队列。先将数据放入消息队列,然后再慢慢写入数据库。引入消息队列机制,虽然可以保证用户请求的快速响应,但是并没有使得我数据迁移的时间变短(即80万条数据写入MySQL需要1个小时,用了Redis之后,还是需要1个小时,只是保证用户的请求的快速响应。用户输入完http url请求之后,就可以把浏览器关闭了,干别的去了。如果不用redis,浏览器不能关闭)
在用户体验度方面来说,异步要好于同步,毕竟,谁也不想一直等。。。