rabbitmq简单实用

1.启动rabbitmq

(1)查看镜像:docker images

拓展:

查看运行的容器:docker ps

查看详细的容器信息:docker ps -a

删除镜像:docker rmi 镜像名称

查找某一个镜像:docker serach nginx(镜像名称)

查询所有运行过的容器id:docker ps -a -q

启动以运行过的容器:docker start 容器名称/容器id

启动所有运行过的容器:docker start `docker ps -a -q`

停止所有运行过的容器:docker stop `docker ps -a -q`

杀掉容器:docker kill 容器名称/容器id

注意:部分工具复制粘贴,某一些命令看似无变化,实则运行会报错,最好手动重新输入。

(2)启动rabbitmq:docker run --name rabbitmq -p 15000:15672 rabbitmq:latest

--name rabbitmq:容器名称

-p 15000:15672:端口映射,将本地的15000端口映射到容器内部的15672端口

rabbitmq:latest   镜像名称及标签

(3)删除容器:docker rm 容器名称

(4)后台方式启动rabbitmq:docker run -d --name rabbitmq -p 15000:15672 rabbitmq:latest

-d:以后台方式运行容器

(5)停止容器:docker stop 容器id

(6)若出现容器名称冲突,删除容器名称,重新启动,或者重新命名。

(7)后台方式启动rabbitmq并设置用户名和密码:docker run -d --name rabbitmq -e RABBITMQ_DEFAULT_USER=root -e RABBITMQ_DEFAULT_PASS=123456 -p 15672:15672  rabbitmq:latest

-e RABBITMQ_DEFAULT_USER=root 设置用户名

-e RABBITMQ_DEFAULT_PASS=123456设置密码

(8)进入容器rabbitmq:sudo docker exec -it 96a93d53e2e0 /bin/bash

(9)开启rabbitmq服务插件:rabbitmq-plugins enable rabbitmq_management

(10)浏览器输入:http://192.168.229.130:15672/#/,输入用户名和密码。

注意:若输入地址无法访问该网站,需要进入容器开启rabbitmq插件,步骤按照(8)和(9)操作即可。

 

2.rabbitmq使用

(1)rabbitmq简单介绍

(2)cmd下找到python安装目录,安装pika,pip install pika

(3)编写python发送和接收的脚本

#!usr/bin/env
import  pika
class send():
    def _init_(self):
        self._impl = self._create_connection(host='http://192.168.229.130:15672/#/')
    def _create_connection(self):
        #建立到rabbitmq服务器的链接
        connection=pika.BlockingConnection(pika.ConnectionParameters(self._impl))
        channel=connection.channel()
        #声明一个队列,命名为name
        channel.queue_declare(queue='name')
        #exchange为空字符串标示默认交换机,指定队列名字,以及设置参数
        channel.basic_publish(exchange='',routing_key='name',body='this is a queue!')
        print("[x] Sent 'this is a queue!'")
        #raise self._reap_last_connection_workflow_error(error='falid')
        #for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
         #   socket.gaierror
    def _resolve(self):
        #关闭链接
        self.connection.close()

if __name__ == '__main__':
    send()
#!/usr/bin/env
import pika

class recevice():
    def _init_(self):
        self._impl = self._create_connection(host='http://192.168.229.130:15672/#/')
    def _create_connection(self):
        #建立到rabbitmq服务器的链接
        connection=pika.BlockingConnection(pika.ConnectionParameters(self._impl))
        channel=connection.channel()
        #声明一个队列,命名为name
        channel.queue_declare(queue='name')
        #回调函数,将信息输出到屏幕上
    def callback(ch, method, properties, body,self):
        print(" [x] Received %r" % body)
        #回调函数将从队列name中取出消息
        self.channel.basic_consume(self.callback,queue='name',no_ack=True)
        #raise self._reap_last_connection_workflow_error(error='falid')
        #for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
        #   socket.gaierror
    def _resolve(self):
        #等待消息
        print(' [*] Waiting for messages. To exit press CTRL+C')
        self.channel.start_consuming()

if __name__ == '__main__':
    recevice()
import json
import pika
import  datetime

class message():
   # def _init_(self):
        #self._impl=self._create_connection(host='http://192.168.229.130:15672/#/')
        #raise self._reap_last_connection_workflow_error()
    #消费处、接收消息处
    def get_message(self):
        #生成5条消息
        for i in  range(5):
            message=json.dumps({'id':"10000%s"%i,'amount':100*i,'name':"jams",'createtime':str(datetime.datetime.now())})
            self.producter(message)
    #生产处、消息生产者
    def producter(message):
        #与rabbitmq服务建立连接
        connection=pika.BlockingConnection(pika.ConnectionParameters(host='192.168.229.130',port=15672,credentials=pika.PlainCredentials('root','123456')))
        #创建一个AMQP信道
        channel=connection.channel()
        #声明一个队列,名称叫name,若不存在将创建
        channel.queue_declare(queue='name')
        #向队列中插入数值,routing_key的队列名为name,body是放入的消息内容
        #exchange指定消息在哪个队列传递,默认exchange为空字符串,能发送消息到队列中
        channel.basic_publish(exchange='',routing_key='name',body=message)
        #关闭连接
        connection.close()

if __name__ == '__main__':
    #程序执行的入口
    message()

(4)容器中查找rabbitmq配置文件

进入容器:sudo docker exec -it 96a93d53e2e0 /bin/bash

查找进程:ps -ef|grep rabbitmq*

切换到配置文件目录:cd /opt/rabbitmq/sbin/

打开配置文件:more rabbitmq-defaults

(5)页面查看容器详情

overview-Name-进入可查看具体信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值