RabbitMQ系列(二):“hello,world!”
RabbitMQ的安装
安装地址: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 中接收到的消息。