Neutron Message Queue

1.单个worker queue创建情况:

 1 q-plugin: # neutron-sever topic of q-plugin
 2
 3 1.exchange => neutron
 4   queue=>q-plugin
 5   router_key=>q-plugin
 6 2.exchange=>neutron
 7   queue=>q-plugin.newton-controller
 8   router_key=>q-plugin.newton-controller
 9 3.exchange=>q-plugin_fanout
10   queue=>q-plugin_fanout_707fee67cf9746a2aa121593c73e84b1
11   router_key=>q-plugin

2. Consumer 创建监听(executor_thread_pool_size = 64):

 1 start_rpc_listeners(plugin.py) -> create_consumer(neutron/common/rpc.py) -> get_rpc_server(oslo_messaging/rpc/server.py) -> MessageHandlingServer(oslo_messaging/server.py)
 2                                  | # Create listener
 3                                   consume_in_threads(neutron/common/rpc.py) -> start(oslo_messaging/server.py:MessageHandlingServer)
 4                                   -> _runner(oslo_messaging/server.py:MessageHandlingServer) -> _listen(oslo_messaging/transport.py:Transport)
 5                                          | # Dispatch message to Endpoint
 6                                           __call__(oslo_messaging/rpc/dispatcher.py) -> __init__(oslo_messaging/rpc/dispatcher.py:DispatcherExecutorContext)
 7                                           -> run(oslo_messaging/rpc/dispatcher.py:DispatcherExecutorContext)-> _dispatch_and_reply(oslo_messaging/rpc/dispatcher.py)
 8                                           -> _dispatch(oslo_messaging/rpc/dispatcher.py:RPCDispatcher)[_is_compatible] -> _do_dispatch(oslo_messaging/rpc/dispatcher.py)
 9                                           -> reply(oslo_messaging/_drivers/amqpdriver.py:AMQPIncomingMessage) -> direct_send(oslo_messaging/_drivers/impl_rabbit.py:Connection)
10                                   -> listen(oslo_messaging/_drivers/amqpdriver.py:AMQPDriverBase) -> poll(oslo_messaging/_drivers/amqpdriver.py:AMQPListener)
11                                   -> consume(oslo_messaging/_drivers/impl_rabbit.py:Connection)-> autoretry(kombu.connection.Connection)
12                                   -> _consume(oslo_messaging/_drivers/impl_rabbit.py:Connection) -> drain_events(kombu.connection.Connection)
13                                   -> consume(oslo_messaging/_drivers/impl_rabbit.py:Consumer)
14                                          | # Dispatch message to MessageHandlingServer-> _callback(oslo_messaging/_drivers/impl_rabbit.py:Consumer)
15                                           -> __call__(oslo_messaging/_drivers/amqpdriver.py:AMQPListener)

2. Publisher 发送情况(rpc_response_timeout = 60):

 1 report_state(neutron/common/rpc.py:PluginReportStateAPI) -> get_client(neutron/common/rpc.py) -> __init__(neutron/common/rpc.py:BackingOffClient)-> __init__(oslo_messaging/rpc/dispatcher.py:RPCClient)
 2                                                            |
 3                                                             prepare(neutron/common/rpc.py:BackingOffClient) -> prepare(oslo_messaging/rpc/dispatcher.py:RPCClient)
 4                                                             ->prepare(oslo_messaging/rpc/dispatcher.py:_CallContext)
 5                                                            |
 6                                                             call(oslo_messaging/rpc/dispatcher.py:_CallContext) -> _send(oslo_messaging/transport.py:Transport)
 7                                                             ->send(oslo_messaging/_drivers/amqpdriver.py:AMQPDriverBase) -> _send
 8                                                                   -> _get_reply_q(oslo_messaging/_drivers/amqpdriver.py:AMQPDriverBase)
 9                                                                   -> wait(oslo_messaging/_drivers/amqpdriver.py:ReplyWaiter) -> _process_reply
10                                                             ->topic_send(oslo_messaging/_drivers/impl_rabbit.py:Connection) -> _ensure_publishing -> _publish
时间: 2024-08-27 03:57:59

Neutron Message Queue的相关文章

HDU 1509 Windows Message Queue

题目链接 Problem Description Message queue is the basic fundamental of windows system. For each process, the system maintains a message queue. If something happens to this process, such as mouse click, text change, the system will add a message to the qu

HDU 1509:Windows Message Queue【优先队列】

Windows Message Queue Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4505    Accepted Submission(s): 1794 Problem Description Message queue is the basic fundamental of windows system. For each

Message Queue基本使用说明

一.安装Message Queue: 在Win7之前,控制面板,添加删除组件(Windows Message Queue). Win7~Win8:控制面板,程序和功能,启用或关闭Windows功能(找到Windows Message Queue服务器)选项,连同所有子类一并勾上即可,自动安装. 二.使用Message Queue: 1)用于各类服务器.计算机之间的通讯: 本地,自己给自己发(直接是.\\Private$\\Queue的私有名字). 远程计算机: FormatName:Direct

在单线程模型中 Message、Handler、Message Queue、Looper 之间的关系

Message,信息的载体,用来传递数据给Handler. Handler (Handler处理者,是 Message 的主要处理者,负责 Message 的发送,Message 内容的执行处理)发送和处理Message和Runable对象,这些对象和一个线程的MessageQueue相关联.每一个线程实例和一个单独的线程以及该线程的 MessageQueue 相关联.Handler和创建它的线程绑定在一起,把 Message和Runable 对象传递给 MessageQueue,这些对象离开

ZOJ2724_Windows Message Queue(STL/优先队列)

解题报告 题意: 看输入输出就很明白. 思路: 优先队列. #include <algorithm> #include <iostream> #include <cstring> #include <cmath> #include <queue> #include <vector> #include <cstdio> #include <map> using namespace std; struct node

hdu1509(Windows Message Queue) 优先队列

点击打开链接 Problem Description Message queue is the basic fundamental of windows system. For each process, the system maintains a message queue. If something happens to this process, such as mouse click, text change, the system will add a message to the

【排序,先入先出】Windows Message Queue

Windows Message Queue Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 73  Solved: 41 [Submit][Status][Discuss] Description Message queue is the basic fundamental of windows system. For each process, the system maintains a message queue. If something h

Windows Message Queue

D - Windows Message Queue Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit Status Practice ZOJ 2724 Description Message queue is the basic fundamental of windows system. For each process, the system maintains a messag

You Probably Don’t Need a Message Queue

原文地址 I’m a minimalist, and I don’t like to complicate software too early and unnecessarily. And adding components to a software system is one of the things that adds a significant amount of complexity. So let’s talk about message queues. Message Queu