首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rabbit-MQ 安装及入门

第一篇文章,想了很久,Spring-data-jpa,Spring-secuity都是想写的,不过由于代码量和深度都不小,最近又在使用mq,就想写一些关于mq的使用和看法,等mq结束,就准备Spring-data-jpa的编写。下班晚,家离的又远,常常回家就快11点了,所以就利用晚上回家的一点时间,以及早上5点钟左右起来写文章,想一边写,一边知识的积累,一边给大家一些干货的分享,文章是自己写,所以可能会有一些代码或者是架构,知识点上的问题,希望大家多多见谅,能多多的反馈。建议大家电脑看片,手机看图片小~~~

RabbitMQ是一个消息代理。

官方的解释是可以把它理解成一个邮局,当你把你想要发布的邮件放在邮箱中时,你可以确定邮差先生最终将邮件发送给你的收件人。在这个比喻中,RabbitMQ是邮政信箱,邮局和邮递员。

再通俗一点就是我们比如有一个发邮件的业务,用户注册成功后发送邮件进行通知,如果我们一直等待邮件成功的返回,这样就会造成线程的阻塞,当然我们可以直接new一个线程来处理这个业务,但是如果邮件API挂掉或者是其他的网络问题,我们并不能保证邮件就会成功的发送。这时我们就可以用到消息队列-MQ。

再举个栗子,比如王者荣耀,在我们开局的时候会有野怪和主宰刷新,我们可以这么理解,

1.腾讯的服务器发送消息,我要生成红buff,蓝buff,生产者生产消息

2. 然后MQ接受到消息了,放在队列中,地图上出现野怪

3. 韩信去打野,消费者进行消费

至于为什么用到MQ,个人认为是 :

1. 异步通信,这算我们去用MQ的根本原因吧!!!!

2. 解耦、扩展性,MQ在处理过程中间插入了一个类似与适配器模式的接口层,我们只需要关心两端的实现就可以。

3. 送达保证,只要保证我们的消息被成功送到MQ,MQ就会保证我们的消息执行(当然,MQ集群全部挂掉除外,~集群都挂了,这得什么骚操作)

4. 可恢复性,即使上面的MQ集体Over了,还有可恢复性可用

MQ在业界的使用颇广,各种社区很活跃。所以各位童鞋可以大胆放心的去用。

至于消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。我们接下来主要讲解的是RabbitMQ。

安装

下载Erlang.

b. 下载RabbitMQ

在上一步安装Erlang后就可以下载RabbitMQ了,地址是:https://www.rabbitmq.com/

c. 在测试的时候,我曾经看过好多篇文章,安装前要配置Erlang的环境变量,但是我没配,结果还是安装成功,大家可以用自行把握

d.安装管理页面

RabbitMQ-Plugins 相当于一个管理页面,可以方便的让我们查看各个消息队列以及连接情况等。

首先进入rabbitmq的sbin目录

然后运行rabbitmq-plugins enable rabbitmq_management,安装这个插件,

这样就安装成功了,据说这一步会安装出错,我没报错也模拟不了,给各位一些提示:

rabbitmq-service stop 停止服务,然后 rabbitmq-service stop ,接着rabbitmq-service install --> rabbitmq-service install

最后rabbitmq-plugins enable rabbitmq_management。就是移除服务,重新安装启动。

e: 进入管理页面

在安装插件成功后,浏览器进入http://localhost:15672/。就可以

第一次输入的时候,完全打不开,还以为是自己的环境没安装好,没想到一会就好了,应该有个延迟的启动时间吧。

在打开后,出现这个界面

代表已经安装Rabbit-MQ服务成功,当然,不安装rabbitmq-plugins 也可以。

初次登录的时候用户名和密码都是guest,当然是可变的。

点击Connections后,出现下图

因为我此时连了1台消费者。

Rabbit-MQ 相关概念

producer:消息生产者

onsumer:消息消费者

virtual host:虚拟主机,相当于顶层接口,我们只能在顶层做操作

channel : 通信管道

exchange :交换机,根据路由的key 来发送消息到相应的队列

queue:消息队列,用于存放我们发送到队列的消息

最后就是broker,相当于MQ的服务端,包括exchange和queue

简单使用

什么都不说了,直接上代码:

这是一个消费者,我们直接运行,控制台输出

这是一个生产者,我们也运行

然后在消费者的控制台中,我们可以看到

一个简单的mq消息发送就成功了

好了,这篇就写到这里了,下一篇我们将介绍更加深入的东西。

码字不易,且行切珍惜~~

封面来自网络~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180412G14PZ700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券