首页 > 大数据 > Hadoop > 消息队列的使用场景之RabbitMQ
自己原文公众号: https://mp.weixin.qq.com/s/gjZk3vXvrJIYghDjYDYzuw

安装Rabbitmq的步骤不详细说了。
但是主要的要说说。
第一步安装erlang,没有这个不行。而且这个erlang和rabbitmq的版本有对应关系。
最重要一点网上很多帖子资料要去rabbitmq官网下载,会发现官网的那些页面都没有了。
所以安装变成了一个问题。想当年谁在linux上安装一个Oracle就是个高手(因为安装太复杂了)
在windows上安装Oracle还是比较舒服的,和安装QQ差别不太大。
如今就连Oracle都一键安装了,这个需要官方考虑考虑了。不然就erlang和rabbitmq的版本对应关系就不好解决。
说到这个不得不说当初CDH在我没有整包安装情况下,hbase、hive等等的安装是非常痛苦的。

上图显示了至少这个版本的两个软件是兼容的
我们用命令行来写一条数据看看.

再用代码写一条数据。这里我特意写的节点是集群的另外一台机器,故意和命令行写入的不是同一台机器。目的是验证说明每个节点都可以写入。
其实命令行和代码都可以读写,只是目前命令行的读取只有查询没有消费的功能(网上写的实测是报错的)这里用代码从另外一台机器(非代码写入的机器上)上读取

看上去其实和数据库差不多。数据库就是负责数据的写入和读取(简单的来说),我们发现MQ也差不多。就是不支持SQL。
当然也有支持SQL的消息中间件。日后会介绍将来可能一统天下的PULSAR。
既然说到这里那什么时候用这个呢?个人觉得,如果说 系统解耦可以用用。但是一般我觉得解耦的关键还是在设计,而不是靠消息队列。
如果说用在异步调用也可以用用,但是我觉得能同步的还是同步吧。我见过不少的本来同步处理的,后来由于对数据库没有信心走异步,反而造成了锁。因为消息队列不能绝对的保证顺序。但是数据库可以。
如果说为了流量削峰,那么你业务量超过了数据库单机的处理能力,那么用吧。不过这种企业在中国也不多。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/637517/viewspace-2847173/ ,如需转载,请注明出处,否则将追究法律责任。