RabbitMQ系列(二):“hello,world!”

RabbitMQ的安装

官网:http://www.rabbitmq.com

安装地址:http://www.rabbitmq.com/download.html

RabbitMQ的go语言驱动:https://github.com/streadway/amqp

Hello,World!

假设你已经安装好了RabbitMQ,并且已经安装好了rabbitMQ的golang驱动,接下来我们开始我们的"hello,world!”

这里我们写两个小程序,一个作为Message的Producer,一个作为Message的Consumer,它们的关系如下:

P代表Producer,C代表Consumer,中间红色的部分就是queue,它是RabbitMQ维持的与C之间的一个消息缓冲区。

现在我们开始写一个Message Producer,将它命名为sender.go,以及一个Message Consumer,命名为receiver.go,在sender.go中将连接至RabbitMQ,然后发送Message到RabbitMQ中。receiver.go将连接至RabbitMQ,然后从它的一个queue中接收Message。

发送操作

发送操作过程

我们导入如下包:

再写一个处理err的func

连接到RabbitMQ Server

其中amqp是传输协议,登录RabbitMQ Server的账号密码均为devolop,地址是localhost:5672,最后面的/dell表示的是Virtual Hosts的名字。如果这些你都没有设置,那么amqp.Dial(url string)这个url填写amqp://guest:guest@localhost:5672/即可。


接下来创建一个channel

为了能够发送消息,我们还得声明一个queue,这样我们就可以往这个queue中发送消息了。这个queue的名字叫做hello

现在可以发送消息了

进入你的RabbitMQ 的web管理页面,会发现queues中的hello已经有了一条消息

注:这个发送未起作用

如果你第一次用RabbitMQ,在运行了上面的代码且成功之后还未在web管理页面发现你发送的消息,那么可能是你遗忘了填头信息或者填写错误。也有可能是broker启动时没有足够的硬盘空间(默认至少200M),所以RabbitMQ拒绝接受消息,此时你应该检查日志并且减少这个限制的阀值,这个链接会帮助你怎样设置这个值。

接收操作

接收操作过程

在接收操作中,我们同样要有链接到RabbitMQ Server,打开一个conn和一个channel,并且声明一个queue,这个queue和发送操作中的声明一模一样,因为接收操作一般先于发送操作启动,所以从queue中接收消息时要确保该queue已经存在。

对于创建相同的queue,RabbitMQ在同一个virtual hosts下是不接受两个同名的queue的,所以先创建的queue存在的情况下,再去创建一个同名的queue,此时这个queue的配置将不会生效,不会覆盖先前创建的那个queue,也不会返回错误。

接收消息:

这样在控制台就能看到从RabbitMQ 中接收到的消息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,281评论 19 139
  • 来源 RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器。支持消息的持久化、事务、拥塞控...
    jiangmo阅读 13,529评论 2 34
  • 什么叫消息队列 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂...
    lijun_m阅读 5,177评论 0 1
  • 1. 历史 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的...
    高广超阅读 11,304评论 3 51
  • 为了一些初学习者更好理解我就从简单的解释一下Rabbitmq的原理吧​,首先你可以这样想RabbitMq就是一个队...
    螃蟹和骆驼先生Yvan阅读 12,138评论 6 4

友情链接更多精彩内容