openstack nova 基础知识——Kombu

「源码解析」 消息队列Kombu基本架构综述 =========以 redis 为 broker,我们简要说明:发送消息的对象,称为生产者Producer。connections建立 redis 连接,channel 是一次连接会话。Exchange 负责交换消息,消息通过channel发送到Exchange,由于Exchange绑定Queue和routing_key。消息会被转发到 redis 中匹配routing_key的Queue中。 阅读详情

Kombu是一个AMQP(Advanced Message Queuing Protocol)消息框架。所谓框架,就是一个软件的半成品,是为了提高开发效率而开发的。


AMQP是一个协议,而RabbitMQ是对这个协议的一个实现。


Kombu和RabbitMQ的关系是什么呢?

我觉得就好像javaAPI和Structs/Hibernate这些框架的关系一样,Kombu对RabbitMQ提供的API进行了封装,使得程序更加面向对象化,比如封装出了Exchange, Queue等这些类,使得对RabbitMQ的操作更加简单,同时,功能更加强悍。


在nova支持好几种这样的框架,可以通过配置文件来配置使用哪种框架,默认的就是使用Kombu。但是Kombu比较让人头疼的地方就是资料太少了,谷歌百度翻墙狂搜下来,也没找到几个有用的介绍,这让小白如何是好?官方文档也甚是简陋,整个文档下来,才2、3个例子,而且还是让人摸不着头脑,没办法,只能硬着头皮上了,把官方的那个example试探性的改了一下,改的简单了一点,最基本的原型。再加上前一篇对RabbitMQ的理解和示例,然后再结合Kombu的文档看,也就慢慢摸清楚状况了。


简单的示例:

#! -*- coding:cp936 -*-
# entity.py

from kombu import Exchange, Queue

#定义了一个exchange
task_exchange = Exchange('tasks', type='direct')

#在这里进行了exchange和queue的绑定,并且指定了这个queue的routing_key
task_queue = Queue('piap', task_exchange, routing_key='suo_piao')
# send.py

from kombu import Connection
from kombu.messaging import Producer
from entity import task_exchange
from kombu.transport.base import Message

connection = Connection('amqp://guest:guest@localhost:5672//')
channel = connection.channel()

message=Message(channel,body='Hello Kombu')

# produce
producer = Producer(channel,exchange=task_exchange)
producer.publish(message.body,routing_key='suo_piao')

#! -*- coding:cp936 -*-
# recv.py

from kombu import Connection
from kombu.messaging import Consumer
from entity import task_queue

connection = Connection('amqp://guest:guest@localhost:5672//')
channel = connection.channel()

def process_media(body, message):#body是某种格式的数据,message是一个Message对象,这两个参数必须提供
    print body
    message.ack()

# consume
consumer = Consumer(channel, task_queue)
consumer.register_callback(process_media)
consumer.consume()

while True:
    connection.drain_events()






nova的rpc调用机制 1 Nova Rpc调用 Openstack中使用RabbitMQ作为消息队列。本文从Kombu入手,讲述openstack中RPC远程过程调用的机制。 1.1 Kombu介绍 Kombu是什么?Openstack使用的消息队列是RabbitMQ,它是基于AMQP协议实现的。而Kombu是AMQP消息框架。Kombu对RabbitMQ提供的API进行了封装,使得程序更加面向对象化,比如封 阅读详情

相关推荐

Openstack Nova(十)----Instance 创建(RPC基础 )

在前一章中, 学习了Computer API及Conductor调用RPC做下一步处理。那么, 这里就有个问题, Openstack中RPC是怎么工作的? 想要知道RPC是怎么工作的, 那么第一个要了解的是什么是RPC? RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

2006

Python消息库——kombu的简单使用

相比于pika,kombu考虑的更全面,如它支持重连策略、支持connection pool和producer pool、故障转移策略等,于是我选择了kombu作为RabbitMQ的client端。 kombu文档 连接池(connection pools) 1、创建连接池 翻译自kombu文档:通过kombu.pools.connections可以得到一个连接池,传入一个连接实例,kombu.pools.connections会返回一个连接池实例。如果创建连接实例所传入的参数是一样的,如Connectio

a512961402的博客 6184

OpenStack Nova手动安装:从源码编译到生产就绪的完整指南

OpenStack Nova是云平台的核心计算服务,本质是一套强耦合、高依赖的分布式服务集群,而非独立可执行软件。其运行原理依赖Keystone认证、Glance镜像、Neutron网络、Cinder存储及Placement资源调度五大协同组件,技术价值在于提供虚拟机全生命周期管理能力与硬件资源抽象能力。典型应用场景包括信创环境私有云部署、GPU直通定制化云节点、离线可控云平台建设等。本文聚焦Nova服务端的手动安装实践,深入解析Python版本约束(3.9–3.11)、MySQL/PostgreSQL数据

weixin_33829657的博客 559

Kombu库用法详解(连接、连接池、生产者、消费者)

Kombu库用法详解(连接、连接池、生产者、消费者)

IT之一小佬的博客 2616

nova-protocol:Nova 协议文档

Nova 协议文档 协议说明 Nova 的协议建立在低功耗蓝牙之上。 本节的其余部分假设您了解 BLE 的基础知识。 使用服务 UUID FFF0和外设名称发现: Nova 两个特性:一个用于向 Nova FFF3发出请求,一个用于读取响应FFF4 这是一个请求/响应协议。 电话将始终发出请求,Nova 将回复一个单一的响应。 每个请求都包含一个 ID (0-255)、一个命令类型,以及一些命令的一组参数。 每个响应只是一个确认。 如果您的手机在 2 秒内未收到确认,则认为连接已失效。 请求 ID 在 ack 中回显,因此您可以匹配它们。 Nova 不会对 ID 执行任何其他操作。 我的图书馆只计数 0-255 然后换行。 消息是 ASCII 字符串。 编码为十六进制的数字(uint8 为 2 位,uint16 为 4 位),如有必要,前导 0 填充。 消息的框架如下(

Xtract or Ucfyber的最条理的整理入门级教程

XTRACT可以对任意截面进行全过程截面分析。工程中常用来分析各种截面(如异形柱、组合截面等)的非线性特征点及承载力校核。 xtract主要思路也是根据各种材料本构关系,基于平截面假定,用fiber划分截面进行全过程非线性分析。......

→★佐佑思维★← 8402

python中kombu库其他用法详解

python中kombu库其他用法详解

IT之一小佬的博客 637

zabbix6.0.4拓扑图链路显示流量

1. 背景介绍 网络流量监控是网络管理员必备功课,以前研究cacti的weathermap插件,网络流量大小和拥塞情况一清二楚,随着cacti的没落,weathermap插件也不能再继续使用,此时就需要学习了解新的替代方案。 经过研究和实际测试,发现zabbix的拓扑图有这个功能。 以下验证了zabbix的拓扑图显示线路流量的功能。 2. Zabbix 6显示拓扑图流量过程 选择监测-拓扑图 点进Local ne...

u013930899的博客 8485

Python 中的 Kombu 类库

Kombu 是一个用于 Python 的消息队列库,提供了高效、灵活的消息传递机制。它是 Celery 的核心组件之一,但也可以单独使用。Kombu 支持多种消息代理(如 RabbitMQ、Redis、Amazon SQS 等),并提供了消息生产者和消费者的功能。安装命令 pip install kombu redis。

NLP工程化 2795

别再只调电位器了!用单片机PWM控制LM317输出电压,精度和玩法都多了

本文探讨了如何利用单片机PWM控制LM317输出电压,替代传统的电位器调节方案。通过PWM信号的有源滤波和运放处理,实现了更高精度(±5mV)、更好温度稳定性(0.01%/°C)的数控稳压电源设计,支持远程控制和可编程曲线输出,为经典电路注入数字化智能。

weixin_29164497的博客 360

鸿蒙接入微信支付 微信H5网页在鸿蒙系统的适配方法(含支付兼容方案) 微信H5适配鸿蒙系统 | ArkWeb识别 | 鸿蒙浏览器UA | 微信支付鸿蒙适配 | 鸿蒙微信判断方式

微信H5网页鸿蒙系统适配指南 针对微信H5网页在鸿蒙系统出现的兼容问题,本文提供完整适配方案。关键点包括: 环境识别:

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1301

openstack nova基础知识——rpc模块中的kombu

nova中的rpc模块并没有直接使用kombu,而是又对它进行了一次封装,封装的主要是发送者和接收者,在nova中,封装成了两个类:Publisher和ConsumerBase,并且根据这两个类派生出了DirectPublisher, DirectConsumer, TopicPublisher, TopicConsumer等子类,使操作更加的方便。 一直就觉得Exchange和发送者的关系很密

成长的足迹 5822

LDO 上电过冲的根因

LDO在上电瞬间常出现短时过冲电压(3.4V-3.5V),可能损坏敏感器件。其根本原因是:低

硬核科技 296

openstack nova 基础知识——rpc回调机制(callback) 和rpc模块中的kombu

http://www.verydemo.com/demo_c288_i57159.html 前几篇已经知道了nova中消息是怎么发送和接收的了,但是不太明白消息被接收之后,是怎么处理的,看代码中消息接收那块传递的参数不是proxy就是callback,或者是callbacks,这个回调方法到底调用的是哪的方法呢? 从一个服务的启动程序上看,有这样一段代码: 查

ztejiagn的专栏 1661

YOLO11改进 - 卷积Conv | StripBlockStripBlock大条带卷积块,通过顺序条带卷积捕获方向性长程依赖,强化高长宽比目标特征提取 | AAAI 2026

本文介绍了面向高纵横比目标检测的条带卷积模块——StripBlock,适用于遥感、船只、车道等细长结构目标的特征增强。该方法先通过 `5×5` 深度卷积提取局部空间信息,再利用 `1×19` 与 `19×1` 的正交长条卷积分别建模横向和纵向长程依赖,最后通过 `1×1` 卷积生成空间注意力权重,并以逐元素门控方式重标定输入特征。我们将 StripBlock 成功集成进 YOLO11,在检测头的多尺度特征层中引入条带式空间建模能力,从而增强模型对细长目标和复杂遥感场景的定位与识别效果。

魔改工程师的博客 234

理想L9高通QAM8797座舱域控制器全拆解|全网独家复现 硬件架构升级、电源散热优化、多屏低延迟交互、车机系统赋能高端智能座舱落地

随着智能汽车向舱驾一体、全域智能化、多模交互方向迭代,传统单一功能座舱芯片已无法满足多屏高刷渲染、全车AI语音、车内视觉感知、高速车载通信的叠加算力需求。2026款全新理想L9作为旗舰级智能SUV,全面搭载高通新一代旗舰座舱域控制器QAM8797,搭配自研马赫M100 AI芯片、国产车规主控芯片,构建起高性能、高可靠、低延迟的车载中央计算平台。

getusushu的博客 387

OpenStack学习笔记之——OpenStack Nova解析

由于工作原因接触OpenStack不久,下面对自己的Openstack的学习资料进行简单的总结和梳理,之前对于云计算及Openstack几乎没有接触过,这方面的学习也几乎是从零开始,所以有一些理解错误和不全面的地方,望不吝赐教和指正。 本文主要是对Openstack核心组件Nova进行初步的分析和解读。   1.      基础概念 Openstack云中实例(instances)生命周期

Hcloud 5513

超分辨率重建:ESPCN与SRGAN技术对比

超分辨率重建:ESPCN与SRGAN技术对比​ 人工智能,计算机视觉,大模型,AI,超分辨率重建是一种通过技术手段,将低分辨率图像转换为高分辨率图像的过程。它的目的是恢复低分辨率图像中丢失的细节信息,使图像具有更高的清晰度和视觉质量。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 7万+

OpenStack Nova服务端手动安装与配置指南

OpenStack Nova是云计算平台的核心计算服务,负责虚拟机全生命周期管理。其本质是一套基于Python的分布式服务组件,依赖Keystone认证、MySQL数据库、RabbitMQ消息队列及libvirt虚拟化层。理解Nova服务端(非CLI客户端)的架构原理,对私有云部署、故障排查和安全合规至关重要。技术价值体现在高度可控性、深度定制能力与生产级可调试性,广泛应用于金融、政务、边缘计算等需强审计与内核适配的场景。本文聚焦Nova服务端的手动部署实践,覆盖环境准备、源码安装、配置详解与服务注册全流程

virusswb的专栏 411

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

OpenStack版本升级之Nova

F版对依赖库的变化 F版Nova对依赖库的变化比较大,官网文档就提到了5点,另外还增加和去掉了一些依赖,详情如下: [plain] view plaincopy [ugyn@localhost nova]$ git diff origin/stable/essex:tools/pip-requires origin/stable/folsom:to

Hello World! 1519

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

OpenStack impl_kombu

nova中的rpc模块并没有直接使用kombu,而是又对它进行了一次封装,封装的主要是发送者和接收者,在nova中,封装成了两个类:Publisher和ConsumerBase,并且根据这两个类派生出了DirectPublisher, DirectConsumer, TopicPublisher, TopicConsumer等子类,使操作更加的方便。 一直就觉得Exchange和发送者的关系很密

spch2008的专栏 1582

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

kombu_update

1. 总体介绍 1.1. 现状分析 1.2. 变更原因 1.3. 变更后效果 2. 系统版本 3. 系统测试情况 3.1. 测试内容 3.2. 测试效果 4. 变更策略 5. 变更步骤 5.1. 变更前准备 5.1.1. 控制节点: 5.1.2. 确保Rabbitmq 集群正常 6. 实施过程 6.1. ...

weixin_30339969的博客 201
上一篇: openstack nova基础知识——RabbitMQ
下一篇: openstack nova基础知识——rpc模块中的kombu
hackerain
博客等级 码龄16年 753粉丝 220原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值