1.rabbitmq是有erlang开发的,所以首先要先安装erlang

rpm -ivh erlang-18.1-1.el7.centos.x86_64.rpm

rpm -ivh rabbitmq-server-3.6.6-1.el7.noarch .rpm

安装rabbimq时提示依赖包socat未安装

yum -y install socat

安装完成后执行service rabbitmq-server start开启服务

2.使用python测试一下

python使用rabbitmq需要安装pika类库,我们可以使用pip安装pika,pip是python的软件管理包

安装pip

wget https://bootstrap.pypa.io/get-pip.py

python get-pip.py

安装pika

pip install pika

源代码参考原文http://blog.csdn.net/fgf00/article/details/52872730

创建send.py

#!/usr/bin/python

import pika # 建立一个实例

connection = pika.BlockingConnection( pika.ConnectionParameters('localhost',5672) # 默认端口5672,可不写 )

# 声明一个管道,在管道里发消息

channel = connection.channel()

# 在管道里声明queue

channel.queue_declare(queue='hello')

# RabbitMQ a message can never be sent directly to the queue,it always needs to go through an exchange.

channel.basic_publish(exchange='', routing_key='hello', # queue名字 body='Hello World!')

# 消息内容

print(" [x] Sent 'Hello World!'")

connection.close() # 队列关闭

创建receive.py

import pika

import time

# 建立实例

connection = pika.BlockingConnection(pika.ConnectionParameters( 'localhost'))

# 声明管道

channel = connection.channel()

# 为什么又声明了一个‘hello’队列? # 如果确定已经声明了,可以不声明。但是你不知道那个机器先运行,所以要声明两次。

channel.queue_declare(queue='hello')

def callback(ch, method, properties, body): # 四个参数为标准格式

  print(ch, method, properties) # 打印看一下是什么

  # 管道内存对象 内容相关信息 后面讲

  print(" [x] Received %r" % body)

  time.sleep(15)

  ch.basic_ack(delivery_tag = method.delivery_tag) # 告诉生成者,消息处理完成

channel.basic_consume( # 消费消息

  callback, # 如果收到消息,就调用callback函数来处理消息

  queue='hello', # 你要从那个队列里收消息

  # no_ack=True # 写的话,如果接收消息,机器宕机消息就丢了 # 一般不写。宕机则生产者检测到发给其他消费者

)

print(' [*] Waiting for messages. To exit press CTRL+C')

channel.start_consuming() # 开始消费消息

执行python send.py,输出

[x] Sent 'Hello World!'

执行rabbitmqctl list_queues,输出

Listing queues ...
hello 1

执行python receive.py,输出

[*] Waiting for messages. To exit press CTRL+C
(<pika.adapters.blocking_connection.BlockingChannel object at 0x1cbc510>, <Basic.Deliver(['consumer_tag=ctag1.bde4b3712fa64fccb5677c4fb420c35a', 'delivery_tag=1', 'exchange=', 'redelivered=False', 'routing_key=hello'])>, <BasicProperties>)
[x] Received 'Hello World!'

centOS7安装RabbitMQ及python实例的更多相关文章

  1. centos7安装rabbitmq 总结

    centos7下安装rabbitmq 折腾了三天最后做了以下总结 先查看一电脑名  :示例 #hostname name 查看一下hosts配置文件:如果如下结果,就要修改下 #cat /etc/ho ...

  2. Centos7安装RabbitMQ解决Erlang依赖报错

    通过yum等软件仓库都可以直接安装RabbitMQ,但版本一般都较为保守. RabbitMQ官网提供了新版的rpm包(http://www.rabbitmq.com/download.html),但是 ...

  3. centos7 安装 rabbitmq

    主题 因为自己学习项目可能会用到rabbitmq..我又是第一次学习.以前没安装过.所以简单记录下我在centos7环境下安装rabbitmq的过程步骤,下次可以参考. 步骤 1.杂七杂八的东西 安装 ...

  4. Centos7 安装rabbitmq(转载)

    原文地址:http://blog.csdn.net/wenyu826/article/details/71108279 安装Erlang 从链接https://packages.erlang-solu ...

  5. CentOS7安装RabbitMQ,并设置远程访问

      如果网速慢 可以直接到百度云分享中下载,然后拉到centerOS中,进行第二步即可    两个人安装包地址,提取码:z1oz 1.安装erlang环境 wget http://www.rabbit ...

  6. CentOS7安装rabbitmq集群(二进制)

    一.RabbiMQ简介 RabbiMQ是用Erang开发的,集群非常方便,因为Erlang天生就是一门分布式语言,但其本身并不支持负载均衡. RabbiMQ模式 RabbitMQ模式大概分为以下三种: ...

  7. Centos7安装RabbitMQ详细教程

    MQ引言 什么是MQ MQ:message Queue翻译为消息队列,通过典型的生产者和消费者模型不断向消息队列中生产消息,消费者不断从队列中获取消息.因为消息的生产和消费都是一部的,而且只关心消息的 ...

  8. Centos7 安装RabbitMQ 3.6.1

    如果你看过前两章对RabbitMQ已经有了一定了解,现在已经摩拳擦掌,来吧动手吧! 用什么系统 本文使用的是Centos7,为了保证对linux不太熟悉的伙伴也能轻松上手(避免折在安装的路上),下面是 ...

  9. 安装rabbitmq以及python调用rabbitmq--暂欠

    一.安装erlang yum install erlang 二.安装rabbitmq rpm包: wget http://www.rabbitmq.com/releases/rabbitmq-serv ...

随机推荐

  1. 【原创】DataPackage-数据库、表的区域设置和系统不一致导致处理失败

    问题描述: 最近学习Datapackage,创建完之后,部署处理但总是提示某某字段的区域设置和目标字段的区域设置不一致,具体如图: 测试发现其它的数据库表又没有这类的问题发生,甚是苦恼,搜寻了好久,后 ...

  2. VS2010/2012Web负载测试

    原文地址:http://www.cnblogs.com/aarond/archive/2013/04/18/performance.html VS自带的Web负载测试真的很大程度上能和专业的loadr ...

  3. 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)- chess(威佐夫博奕)

    ---恢复内容开始--- 链接:https://www.nowcoder.com/acm/contest/116/G来源:牛客网 题意:一个棋盘,老王和小人下棋,棋子只能往下或者往左或者往左下走,小人 ...

  4. cake-walk

    Of course it was not a cake-walk in the beginning 3. This is going to be a cakewalk 这将易如反掌. 4. Julia ...

  5. 记录git rebase用法

    git 是基于文件系统的版本管理工具,文档和详细介绍可以查看git 一.git commit --amend 如果你对文件做了修改需要和上一次的修改合并为一个change git add . git ...

  6. 一个错误使用单例模式的场景及ThreadLocal简析

    近来参与一个Java的web办公系统,碰到一个bug,开始猜测是线程池管理的问题,最后发现是单例模式的问题. 即,当同时发起两个事务请求时,当一个事务完成后,另一个事务会抛出session is cl ...

  7. [BZOJ 1037] 生日聚会Party

    Link: BZOJ 1037 传送门 Solution: 由于对任意一段都有要求,于是我们对于所有前缀考虑其后缀不超过$k $即可: 设$dp[i][j][x][y]$为前$i$个人中有$j$个男孩 ...

  8. 【bzoj4318】【OSU!】期望dp——维护多个期望值递推

    [pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=62369739 Description osu 是 ...

  9. SQL的连接(外连接、内连接、交叉连接和自连接)

    在查询多个表时,我们经常会用到连接查询,连接是关系型数据库的主要特点,也是它区别于其他类型的数据库管理系统的一个标志. 一.什么是连接查询 连接查询:根据两个表或者多个表的列之间的关系,来从这些表中查 ...

  10. UIWebView to view self signed websites (No private api, not NSURLConnection) - is it possible?

    What it actually does is to intercept the UIWebView to launch a NSURLConnection to allow the server ...