码迷,mamicode.com
首页 > 其他好文 > 详细

topic型交换机实现灵活路由键的组合分发

时间:2020-10-09 21:38:16      阅读:31      评论:0      收藏:0      [点我收藏+]

标签:int   debian   ever   exchange   分发   python   utf-8   channel   tin   

[root@jinkang-e2elog rabbitmq]# cat topic-send.py
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import pika
import sys

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

channel.exchange_declare(exchange=topic_logs, exchange_type=topic)

severity = sys.argv[1] if len(sys.argv) > 1 else vm.centos
message =  .join(sys.argv[2:]) or Hello World!
channel.basic_publish(
    exchange=topic_logs, routing_key=severity, body=message)
print(" [x] Sent %r:%r" % (severity, message))
connection.close()
#!/usr/bin/env python
import pika
import sys

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

channel.exchange_declare(exchange=topic_logs, exchange_type=topic)

result = channel.queue_declare(queue=‘‘, exclusive=True)
queue_name = result.method.queue

bonding_keys = sys.argv[1:]
if not bonding_keys:
    sys.stderr.write("Usage: %s [info] [warning] [error]\n" % sys.argv[0])
    sys.exit(1)

for bonding_key in bonding_keys:
    channel.queue_bind(
        exchange=topic_logs, queue=queue_name, routing_key=bonding_key)

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


def callback(ch, method, properties, body):
    print(" [x] %r:%r" % (method.routing_key, body))


channel.basic_consume(
    queue=queue_name, on_message_callback=callback, auto_ack=True)

channel.start_consuming()

以上demo 实现一个  环境类型.OS类型的 信息的发送分发

 python   topic-send.py  ph.debian

 python   topic-send.py  vm.debian

 python   topic-send.py  ph.centos

 

实现虚拟机/物理机  不同OS 的信息的发送分发。

python  topic-rec.py "ph.*"

python topic-rec.py  "vm.*"

python topic-rec.py  "#"

*  星号用来表示任务一个单词

#  井号用来表示数量的单词(0个或无数个)

 

使用topic 型交换机 可以实现复灵活的 信息的分发实现

topic型交换机实现灵活路由键的组合分发

标签:int   debian   ever   exchange   分发   python   utf-8   channel   tin   

原文地址:https://www.cnblogs.com/jkklearn/p/13787494.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!