RabbitMQ-安装以及入门

一篇文章,想了很久,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. 原因是因为RabbitMQ是基于Erlang编写的,下载地址:http://www.erlang.org/downloads 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消息发送就成功了 好了,这篇就写到这里了,下一篇我们将介绍更加深入的东西。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小尘哥的专栏

也许能帮到你一点!eboot框架基础版发布

目前发布一个基础版,适用于中小型项目开发,后续会加入更多功能,以满足大型项目的需求。

7810
来自专栏快乐八哥

JavaScript操作Cookie

在Web开发中,我们经常使用Cookie保存一些不是非常敏高的数据。比如“下次自动登录”,“广告显示”等功能。定义是:某些网站为了辨别用户身份而存储在用户本地终...

25160
来自专栏CSDN技术头条

Redis错误配置详解

Redis提供了许多提高和维护高效内存数据库使用的工具。在无需额外配置应用层的前提下,Redis独特的数据类型、指令和命令调优就可以满足应用的需求,但是错误的配...

233100
来自专栏玉树芝兰

如何安装与连接MySQL?

本文用详细的步骤说明,帮助你一步步掌握MySQL的下载、安装和服务启动,客户端的安装、连接和测试。帮你避开初学MySQL使用中的那些坑。

12310
来自专栏EAWorld

有状态容器实践:k8s集成ceph分布式存储

? 大家好,今天由我为大家介绍一下我们对于k8s与ceph集成的预研成果。对于k8s与ceph,我们也了解有限,有些理解不对的地方,还请大家指正。 ? 今天将...

1.2K60
来自专栏腾讯云中间件团队的专栏

高性能消息队列 CKafka 核心原理介绍(上)

Ckafka 基于现有的 Kafka 进行了扩展开发和优化,为了方便用户理解 Ckafka 本文也将对 Kafka 的实现原理进行较为详细的介绍。本文是《高性能...

1.8K30
来自专栏北京马哥教育

误删重要文件怎么办?学会Linux 救援模式再也不担心

背景 在运用Linux时会出现一些误操作,导致系统无法正常使用,比如删除了某个重要依赖库,或者删除了rpm等等。在这里记录下具体的操作步骤,供以后参考。 意义 ...

41590
来自专栏Maroon1105

如何在Linux上安装SHOUTcast DNAS服务器

SHOUTcast是专为通过互联网传输流媒体而设计的软件。SHOUTcast系统使用经典的客户端 - 服务器配置。您可以在服务器上安装SHOUTcast,并使用...

23820
来自专栏北京马哥教育

DNS服务器之理论基础

一、什么是DNS DNS全称为Domain Name System,即域名系统,其作用就是将我们经常使用的“网址”解析为IP地址。 在互联网上...

65150
来自专栏JackeyGao的博客

ANSIBLE模块 - shell和command区别

Ansible 提供了大量的模块(All Modules)供执行 AD-Hoc 和撰写 playbook。 有些模块有很多通用性, 但设计为多个还是有部分区别的...

12410

扫码关注云+社区

领取腾讯云代金券