初始需求
正如我们在使用RabbitMQ中,我们的初始需求并不是单纯的想要寻找一个消息队列,而我们的需求是解耦应用程序之间的耦合或者是将一个耗时的操作从应用中剥离出来,异或者整合不同的语言编写出来的应用程序,但是这些问题的本质就是解耦与操作。或者换种方法进行理解是我们可以把同步的应用程序转换为异步的操作,主程序进行其他操作时,我们可以将信息来发送到队列中,然后去做其他的事情,然后等待消息的返回,而不用堵塞线程。
谁向我们推送消息
对于一个单应用同步程序,当一份数据需要做多分处理,或者数据的操作或者用户的其他操作比较耗时,这是我们最好的解决办法就是异步,比如我们在用滴滴的时候,前台负责接收用户的请求,但是如果前台同时寻找司机,那么无论是服务器还是应用程序都很难进行解决,程序相互耦合很难进行扩展,单台服务器承载过大程序容易宕机。为了解决程序之间的耦合以及将同步变为异步,我们学习致用,采用RabbitMQ,前台将用户的请求发送至队列,后台负责从队列消费请求同时将结构返回给前台。至此我们将程序的同步变为异步,将程序之间的耦合变为程序与队列的耦合。
这样进行扩展的好处为:
- 前台的业务处理请求比较简单,可以有效的增加前