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

初级赛亚人 · · 1516 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:初级赛亚人

查看原文:RabbitMQ系列(二):“hello,world!”

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1516 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传