rabbitmq的安装和命令介绍及python程序模拟生产者和消费者

介绍

RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议

RabbitMQ是流行的开源消息队列系统,用erlang语言开发

RabbitMQ是AMQP(高级消息队列协议)的标准实现

官网:http://www.rabbitmq.com/

安装

方式:yum/rpm

系统环境

[[email protected]_server scripts]# ifconfig | sed -n ‘s#.*inet addr:\(.*\) B.*#\1#gp‘

192.168.100.20

[[email protected]_server scripts]# cat /etc/issue | grep -i cent

CentOS release 6.4 (Final)

[[email protected]_server scripts]# yum repolist |grep epel

* epel: mirrors.aliyun.com

epel             Extra Packages for Enterprise Linux 6 - x86_64           12,244

[[email protected]_server scripts]#

yum install -y  rabbitmq-server

安装成功后,查看插件列表

/usr/lib/rabbitmq/bin/rabbitmq-plugins list

启动rabbitmq_management插件

/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management

启动程序

 /etc/init.d/rabbitmq-server start

验证

[[email protected]_server scripts]# netstat -tulnp |grep 15672
tcp        0      0 0.0.0.0:15672               0.0.0.0:*                   LISTEN      3877/beam.smp       
[[email protected]_server scripts]# ps -ef |grep rabbit
root      3837     1  0 11:30 pts/2    00:00:00 /bin/sh /etc/init.d/rabbitmq-server start
root      3868  3837  0 11:30 pts/2    00:00:00 /bin/bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /usr/sbin/rabbitmq-server
root      3869  3868  0 11:30 pts/2    00:00:00 /bin/sh /usr/sbin/rabbitmq-server
root      3876  3869  0 11:30 pts/2    00:00:00 su rabbitmq -s /bin/sh -c /usr/lib/rabbitmq/bin/rabbitmq-server 
rabbitmq  3877  3876  0 11:30 ?        00:00:55 /usr/lib64/erlang/erts-5.8.5/bin/beam.smp -W w -K true -A30 -P 1048576 -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5/sbin/../ebin -noshell -noinput -s rabbit boot -sname [email protected]_server -boot start_sasl -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/[email protected]_server.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/[email protected]_server-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5/sbin/../plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/[email protected]_server-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/[email protected]_server"
rabbitmq  3951  3877  0 11:30 ?        00:00:00 inet_gethost 4
rabbitmq  3952  3951  0 11:30 ?        00:00:00 inet_gethost 4
root     19143  1770  0 14:02 pts/2    00:00:00 grep rabbit
[[email protected]_server scripts]#

配置

默认配置不需要配置

如果有需要/etc/rabbitmq/ 下可以创建

常见命令

查看列队列表

rabbitmqctl list_queues

查看默认 vhost为 "/"下的列队

rabbitmqctl list_queues -p "/"

查看vhost列表

rabbitmqctl list_vhosts

增加/删除vhost

rabbitmqctl add_vhost vhost_andy
rabbitmqctl delete_vhost <VHostPath>

增加用户

rabbitmqctl add_user andy ‘12qwaszx‘

查看用户

rabbitmqctl list_users

[[email protected]_server scripts]# rabbitmqctl  list_users
Listing users ...
andy    []
guest   [administrator]

将用户绑定到vhost_andy 这个vhost上,并赋予对<conf> <write> <read>的权限,用户是对某个vhost的管理权限关联起来的

rabbitmqctl set_permissions -p vhost_andy andy ".*" ".*" ".*"

查看用户权限

rabbitmqctl  list_user_permissions andy

[[email protected]_server scripts]# rabbitmqctl  list_user_permissions andy

Listing permissions for user "andy" ...

vhost_andy      .*      .*      .*

...done.

web管理连接

http://192.168.100.20:15672/

guest/guest登入

python程序模拟生产者

参考官网:http://www.rabbitmq.com/tutorials/tutorial-one-python.html

来自最简单的模型P-mq--C

cat send.py

#!/usr/bin/env python
#encoding==utf-8
#http://cuidehua.blog.51cto.com
#from http://www.rabbitmq.com/tutorials/tutorial-one-python.html
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(
        host=‘localhost‘))
channel = connection.channel()
channel.queue_declare(queue=‘hello‘)
channel.basic_publish(exchange=‘‘,
                      routing_key=‘hello‘,
                      body=‘Hello World!‘)
print(" [x] Sent ‘Hello World!‘")
connection.close()

模拟发送100条消息到queue=hello的这个列队中

for i in {1..100};do python send.py ;done

命令查看队列:(不指定vhost 列队在默认的vhost "/"中)

[[email protected]_server scripts]# rabbitmqctl list_queues -p  "/"

Listing queues ...

hello   100

...done.

web端查看

python程序模拟消费者进行消费

[[email protected]_server scripts]# cat receive.py

#!/usr/bin/env python
#encoding=utf-8
#http://cuidehua.blog.51cto.com
#from http://www.rabbitmq.com/tutorials/tutorial-one-python.html

import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(
        host=‘localhost‘))
channel = connection.channel()

channel.queue_declare(queue=‘hello‘)

#定义回调函数
def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)

channel.basic_consume(callback,
                      queue=‘hello‘,
                      no_ack=True)

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

执行消费,并等待messages! 直到ctrl+c 终止

python receive.py

再次查看队列

[[email protected]_server scripts]# rabbitmqctl list_queues -p "/"

Listing queues ...

hello   0

...done.

时间: 2024-10-20 09:54:45

rabbitmq的安装和命令介绍及python程序模拟生产者和消费者的相关文章

ubuntu下命令行调试Python程序

Python提供类似于C++ gdb的调试工具pdb,我们可以在Linux下使用pdb在命令行下进行Python程序的调试. 官方参考网站: Python2: https://docs.python.org/2/library/pdb.html Python3: https://docs.python.org/3/library/pdb.html 一般地,我们可以使用如下的方式进入调试(比如我们要调试的源文件为hello.py): 1. 在命令行启动目标程序,加上-m参数. python -m

RabbitMQ基础概念详解(一)——环境配置及模拟生产者和消费者简单消息发送

一.简介: RabbitMq 是实现了高级消息队列协议(AMQP)的开源消息代理中间件.消息队列是一种应用程序对应用程序的通行方式,应用程序通过写消息,将消息传递于队列,由另一应用程序读取 完成通信.而作为中间件的 RabbitMq 无疑是目前最流行的消息队列之一. AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然.

zookeeper客户端命令行查看dubbo服务的生产者和消费者

假设zookeeper安装在192.168.5.130这台服务器上,现在我们通过命令行查看dubbo在zookeeper注册服务的生产者和消费者信息 首先通过命令切换到/usr/zookeeper-3.4.10/bin目录,然后输入 ./zkCli.sh -server 192.168.5.130:2888 (2888为zookeeper在服务器上提供服务的端口)会看到如下截图: 然后在命令行再输入: ls / 查看目录信息,就能看到注册的dubbo服务,截图如下: 3 在命令行依次输入: ls

Python程序员鲜为人知但你应该知道的16个问题(转)

add by zhj: 没找到原文出处,只能找到转载的,文中说有17个坑,其实是16个 全文如下 这篇文章主要介绍了Python程序员代码编写时应该避免的16个“坑”,也可以说成Python程序员代码编写时应该避免的17个问题,需要的朋友可以参考下 1. 不要使用可变对象作为函数默认值 代码如下: In [1]: def append_to_list(value, def_list=[]): ...: def_list.append(value) ...: return def_list ...

Shell脚本里调用Python程序

脚本背景:主管要求看门狗程序不仅仅只是看门,还要在看门成功的时候发送邮件给各个开发人员,而且必须要用公司原有的python程序作为发送邮件的主程序,所以需要在原有的看门狗程序上加一句话,而这个看门狗程序恰恰是shell程序,两种不同程序混搭交织,还有变量的混搭交织,很是让人爱恨交织. 那个发送邮件的程序,程序名叫AutoMail.py,内容如下 from email.mime.multipart import MIMEMultipart from email.mime.text import M

Python程序员鲜为人知但你应该知道的16个问题

这篇文章主要介绍了Python程序员代码编写时应该避免的16个"坑",也可以说成Python程序员代码编写时应该避免的16个问题,需要的朋友可以参考. 不要使用可变对象作为函数默认值 代码如下: 这2个例子说明了什么? 字典,集合,列表等等对象是不适合作为函数默认值的. 因为这个默认值实在函数建立的时候就生成了, 每次调用都是用了这个对象的"缓存". 我在上段时间的分享python高级编程也说到了这个问题,这个是实际开发遇到的问题,好好检查你学过的代码, 也许只是问

windows下 安装 rabbitMQ 及操作常用命令

rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上. 1.安装Erlang 所以在安装rabbitMQ之前,需要先安装Erlang . 小编使用的是otp_win64_18.1 ,需要其他版本或者32位系统的,可以去官网下载. 全部点击“下一步”就行. 有的选择其他的安装方式,可能需要添加一下系统环境

windows下 安装 rabbitMQ 及操作常用命令(转)

windows下 安装 rabbitMQ 及操作常用命令 rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上. 1.安装Erlang 所以在安装rabbitMQ之前,需要先安装Erlang . 小编使用的是otp_win64_18.1 ,需要其他版本或者32位系统的,可以去官网下载. 全部点击"下一步

RabbitMQ的安装和使用Python连接RabbitMQ

绪论 这里的环境使用的是Mac OS X系统,所有的配置和使用都是基于Mac OS X 和Python 2.7 以及对应的pika库的. RabbitMQ的安装和配置 安装部分 #brew install rabbitmq 配置和启动 #sudo brew services start rabbitmq #sudo rabbitmqctl add_user admin admin "创建用户(username password)" #sudo rabbitmqctl set_user_