golang使用rabbitMQ入门代码
package main import (
"github.com/streadway/amqp"
"log"
"time"
) func main() {
go sendMessagePreSecond()
receive()
} func sendMessagePreSecond() {
for {
send()
time.Sleep(1 * time.Second)
}
} func send() {
conn, err := amqp.Dial("amqp://hsn:qwer1234@192.168.147.132/")
failOnError(err, "Failed to connect to RabbitMQ")
defer conn.Close()
ch, err := conn.Channel()
failOnError(err, "Failed to open a channel")
defer ch.Close()
queue, e := ch.QueueDeclare("test_queue", false, false, false, false, nil)
failOnError(e, "Failed to declare a queue")
body := "hello world!"
err = ch.Publish("", queue.Name, false, false, amqp.Publishing{
ContentType: "text/plain",
Body: []byte(body),
})
failOnError(err, "Failed to publish a message")
log.Println("send")
} func receive() {
conn, err := amqp.Dial("amqp://hsn:qwer1234@192.168.147.132/")
failOnError(err, "Failed to connect to RabbitMQ")
defer conn.Close()
ch, err := conn.Channel()
failOnError(err, "Failed to open a channel")
defer ch.Close()
queue, err := ch.QueueDeclare("test_queue", false, false, false, false, nil)
failOnError(err, "Failed to declare queue")
msgCh, err := ch.Consume(queue.Name, "", true, false, false, false, nil)
failOnError(err, "Failed to receive message")
forever := make(chan bool)
go func() {
for d := range msgCh {
log.Println("message: ", string(d.Body))
}
}()
log.Printf(" [*] Waiting for messages. To exit press CTRL+C")
<-forever
} func failOnError(err error, msg string) {
if err != nil {
log.Fatalf("%s: %s", msg, err)
}
}
golang使用rabbitMQ入门代码的更多相关文章
- RabbitMQ入门学习系列(二),单生产者消费者
友情提示 我对我的文章负责,发现好多网上的文章 没有实践,都发出来的,让人走很多弯路,如果你在我的文章中遇到无法实现,或者无法走通的问题.可以直接在公众号<爱码农爱生活 >留言.必定会再次 ...
- RabbitMQ入门:Hello RabbitMQ 代码实例
在之前的一篇博客RabbitMQ入门:认识并安装RabbitMQ(以Windows系统为例)中,我们安装了RabbitMQ并且对其也有的初步的认识,今天就来写个入门小例子来加深概念理解并了解代码怎么实 ...
- 2.RABBITMQ 入门 - WINDOWS - 生产和消费消息 一个完整案例
关于安装和配置,见上一篇 1.RABBITMQ 入门 - WINDOWS - 获取,安装,配置 公司有需求,要求使用winform开发这个东西(消息中间件),另外还要求开发一个日志中间件,但是也是要求 ...
- RabbitMQ入门-从HelloWorld开始
从读者的反馈谈RabbitMQ 昨天发完<RabbitMQ入门-初识RabbitMQ>,我陆陆续续收到一些反馈.鉴于部分读者希望结合实例来讲 期待下篇详细,最好结合案例.谢谢! 哪都好,唯 ...
- RabbitMQ入门-高效的Work模式
扛不住的Hello World模式 上篇<RabbitMQ入门-从HelloWorld开始>介绍了RabbitMQ中最基本的Hello World模型.正如其名,Hello World模型 ...
- RabbitMQ入门-消息订阅模式
消息派发 上篇<RabbitMQ入门-消息派发那些事儿>发布之后,收了不少反馈,其中问的最多的还是有关消息确认以及超时等场景的处理. 楼主,有遇到消费者后台进程不在,但consumer连接 ...
- RabbitMQ入门与使用篇
介绍 RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue)协议的开源实现.用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面都非常的优秀 ...
- [转]RabbitMQ入门教程(概念,应用场景,安装,使用)
原文地址:https://www.jianshu.com/p/dae5bbed39b1 RabbitMQ 简介 RabbitMQ是一个在AMQP(Advanced Message Queuing Pr ...
- RabbitMQ入门:总结
随着上一篇博文的发布,RabbitMQ的基础内容我也学习完了,RabbitMQ入门系列的博客跟着收官了,以后有机会的话再写一些在实战中的应用分享,多谢大家一直以来的支持和认可. RabbitMQ入门系 ...
随机推荐
- Python初学者第二天 用户输入和注释
2day Python基础语法: 1.用户输入和注释 用户输入: 代码注释:# 注释部分不会被执行,或用来帮助理清代码逻辑 2.数据类型:数字 int:整数 long:长整形 注:Pyt ...
- yii2.0用gii自动补全代码做的简单增删改查,以及图片上传和展示
首先已经用gii根据model层生成了控制器,模型,视图层. 表结构为如图所示:表名为zhoukao1,
- postgraSql支持View可以修改的两种方法。
http://www.postgresqltutorial.com/postgresql-views/ Creating PostgreSQL updatable views – gives you ...
- Ubuntu Tweak (linux下的优化大师)
Ubuntu Tweak 是中国人开发的一款专门为Ubuntu准备的配置.调整工具,它类似与compiz,但是界面更友好. 下面是安装命令: 第一步:添加tweak源 sudo add-apt-rep ...
- MySQL语法二:数据操纵语句
数据操纵语句DML(SELECT,DELETE,UPDATE,INSERT) 一. 数据操纵语句是对数据表中的内容进行操作.比如对某个表中的某条记录或者多条记录进行增删改查操作. 一).查询 SELE ...
- cin,get,getline
一.cin 1.cin使用空白(空格.制表符和换行符)来确定字符串结束的位置,并且对于换行符,cin会把换行符留在输入队列.cin读取字符串放到数组中,并自动在结尾添加空字符. 例如: ]; cin& ...
- Linux 进程与信号的概念和操作 linux process and signals
进程 主要参考: http://www.bogotobogo.com/Linux/linux_process_and_signals.php 译者:李秋豪 信号与进程几乎控制了操作系统的每个任务. 在 ...
- 剑指offer13 在O(1)时间删除链表的结点
把下一个节点的值直接赋值给要删除的节点,然后删除下一个节点.当这样做会有两个bad case:被删除的链表结点的下一个结点为空指针,如果链表只有一个结点.其实链表只有一个结点应该属于下一个结点为空指针 ...
- ASP.NET Core中怎么实现Url rewrite功能
我们可以使用ASP.NET Core的中间件来实现Url rewrite功能,下面我们定义一个中间件ReplaceQueryStringMiddleware来替换Http请求中的Url参数即Query ...
- 深入浅出爬虫之道: Python、Golang与GraphQuery的对比
深入浅出爬虫之道: Python.Golang与GraphQuery的对比 本文将分别使用 Python ,Golang 以及 GraphQuery 来解析某网站的 素材详情页面 ,这个页面的特色是具 ...