rabbtimq 消息队列py测试-rabbtimq集群连接参考

 

rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm

yum install erlang -y

 

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm

yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm -y

 

service rabbitmq-server start
service rabbitmq-server status
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service

rabbitmq-plugins enable rabbitmq_management

 

[root@localhost ~]# ls /var/lib/rabbitmq/
mnesia
[root@localhost ~]# ls /etc/rabbitmq/
enabled_plugins

guest /guest 开始只允许本地访问

rabbitmqctl add_user root 123456
rabbitmqctl set_user_tags root administrator
iptables -F

 

192.168.1.63:15672

可以打开web页面

命令使用

rabbitmqctl list_connections 查看连接数
rabbitmqctl list_queues 列队名称和消息数
rabbitmqctl status

 

添加虚拟机主机

rabbitmqctl add_vhost xuegod-web
rabbitmqctl delete_vhost xuegod-web
rabbitmqctl list_vhosts

 

账号管理

rabbitmqctl add_user root 123456
rabbitmqctl delete_user root
rabbitmqctl change_password root

 

角色分配

rabbitmqctl set_user_tags root administrator

 

RabbitMQ的tag
用户角色分类:
none、management、policymaker、monitoring、administrator
tag常用角色为:
administrator, monitoring, management


权限设置

rabbitmqctl set_permissions [-p vhostpath] {user} {conf} {write} {read}
rabbitmqctl set_permissions -p / root '.*' '.*' '.*'
rabbitmqctl list_user_permissions root 查看权限

 

创建用户测试

rabbitmqctl add_user zsl 123456
rabbitmqctl set_user_tags zsl administrator
rabbitmqctl set_permissions -p xuegod-web zsl '.*' '.*' '.*'
rabbitmqctl list_user_permissions zsl

 


参考

生产者

import pika
#coding=utf8
credentials = pika.PlainCredentials('guest', '密码')
connection = pika.BlockingConnection(pika.ConnectionParameters('IP',5672,'/',credentials))
channel = connection.channel()
channel.queue_declare(queue='hello')

channel.basic_publish(exchange='',
routing_key='hello',
body='rabbitmq test!')
print("开始队列")
connection.close()


消费者

import pika
#coding=utf8
credentials = pika.PlainCredentials('guest', '密码')
connection = pika.BlockingConnection(pika.ConnectionParameters('IP',5672,'/',credentials))
channel = connection.channel()
# rabbitmq消费端仍然使用此方法创建队列。这样做的意思是:若是没有就创建。和发送端道理道理。目的是为了保证队列一定会有
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.')
channel.start_consuming()

 


测试开始

yum install python -y
yum install epel-release -y
yum install python-pip -y
pip install --upgrade pip
pip install pika

 

vi send.py
#!/usr/bin/env python
import pika
#coding=utf8

connection = pika.BlockingConnection(pika.ConnectionParameters(
host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')

channel.basic_publish(exchange='',
routing_key='hello',
body='rabbitmq test!')
print(" [x] sent 'Hell world!'")
connection.close()

 

 

vi receive.py
#!/usr/bin/env python
import pika
#coding=utf8
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 ctr+c')
channel.start_consuming()

 

python send.py
rabbitmqctl list_queues
python receive.py

参考文件

https://www.cnblogs.com/uptothesky/p/6094357.html

https://blog.csdn.net/WoogeYu/article/details/51119101

集群

https://geewu.gitbooks.io/rabbitmq-quick/content/RabbitMQ%E5%88%86%E5%B8%83%E5%BC%8F%E8%AE%BE%E7%BD%AE%E4%B8%8E%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7%E8%AE%A8%E8%AE%BA.html

 https://www.cnblogs.com/vipstone/p/9368106.html

https://www.cnblogs.com/vipstone/p/9362388.html

posted @ 2019-01-16 02:40  夜辰雪扬  阅读(278)  评论(0)    收藏  举报