手動搭建RabbitMQ服務

2022-08-02 10:36:06 字數 1933 閱讀 4439

(因為rabbitmq是erlang語言編寫的,所以如果想在自己服務手動搭建rabbitmq環境,需要先安裝erlang的執行環境。這裡選擇了直接啟動乙個docker映象)

1.啟動rabbitmq的docker服務

docker run -itd  --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

docker找不到映象會主動去pull,pull完成過後會主動執行

3. 進入容器內部

docker exec -it b815 bash

4. 新增使用者密碼及許可權設定

rabbitmqctl add_user lixiaoxuan 123456

建立完使用者後,還沒許可權訪問web ui,需要賦予許可權

rabbitmqctl set_user_tags lixiaoxuan administrator

rabbitmqctl set_permissions -p / lixiaoxuan ".*" ".*" ".*"

(具體的使用者角色跟許可權控制可參考文件

5. 登入rabbitmq管理ui 10.11.60.104:15672

exchange='user_action'

queue='user_action_network_request_finished'

routing_key='network_request_finished'

sender.py

#!/usr/bin/env python

# coding=utf-8

import pika

#建立連線

connection = pika.blockingconnection(pika.connectionparameters('

localhost'))

#建立通道

channel =connection.channel()

#發布訊息

channel.basic_publish(exchange='

user_action

',routing_key='

network_request_finished

',body='

hello,world!')

print (

"sent 'hello world '")

#斷開連線

connection.close()

view code

receive.py

#!/usr/bin/env python

# coding=utf-8

import pika

#建立連線

connection = pika.blockingconnection(pika.connectionparameters('

localhost'))

#建立通道

channel =connection.channel()

#**函式

def callback(ch,method,properties,body):

print (

"[x] received %r

" %body)

#消費訊息

channel.basic_consume(queue='

user_action_network_request_finished

',auto_ack=true,on_message_callback=callback)

print(

'[*] waiting for messages. to exit press ctrl+c')

#開始消費訊息

channel.start_consuming()

view code

參考

伺服器搭建 Linux安裝rabbitmq

安裝rabbitmq需要先安裝erlang 安裝erlang參考 我是安裝在 usr local soft 目錄下,首先切換到 usr local soft 目錄沒有soft資料夾的需要先建立資料夾 進入到rabbit檔案內,其命令檔案存在於sbin資料夾下,因此需要將sbin資料夾的路徑新增到pa...

RabbitMQ搭建流程

rabbitmq是最受歡迎的開源訊息中介軟體之一,在全球範圍內被廣泛應用。rabbitmq是輕量級且易於部署的,能支援多種訊息協議。rabbitmq可以部署在分布式系統中,以滿足大規模 高可用的要求。我們先來了解下rabbitmq中的相關概念,這裡以5種訊息模式中的路由模式為例 640.png 1 ...

RabbitMQ環境搭建

翻譯自 rabbitmq是乙個訊息佇列,用於接收並傳遞訊息。可以把它當作是乙個郵局,放入一封信件後信件最終會發到收信人,而rabbitmq扮演了郵局和郵差的角色。而rabbitmq和郵局的區別在於rabbitmq的訊息不是紙質訊息,接收 儲存和 的是二進位制資料 messages。在rabbitmq...