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

2017-10-03  本文已影响0人  初级赛亚人

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 中接收到的消息。

上一篇下一篇

猜你喜欢

热点阅读