第 14 章 互操作性


本章讨论了如何将 AMQ Python 与其他 AMQ 组件结合使用。有关 AMQ 组件的兼容性概述,请参阅 产品简介

14.1. 与其他 AMQP 客户端交互

AMQP 消息使用 AMQP 类型系统 组成。这种通用格式是以不同语言的 AMQP 客户端能够相互互操作的原因之一。

发送消息时,AMQ Python 会自动将语言原生类型转换为 AMQP 编码的数据。收到信息时,反向转换就发生。

注意

有关 AMQP 类型的更多信息,请访问由 Apache Qpid 项目维护 的交互式类型参考

表 14.1. AMQP 类型
AMQP 类型描述

null

一个空值

布尔值

true 或 false 值

char

单个 Unicode 字符

string

一系列 Unicode 字符

二进制

一个字节序列

byte

签名的 8 位整数

short

签名的 16 位整数

int

签名的 32 位整数

long

签名的 64 位整数

ubyte

未签名的 8 位整数

ushort

未签名的 16 位整数

uint

未签名的 32 位整数

ulong

未签名的 64 位整数

浮点值

32 位浮点号

double

64 位浮点号

数组

单个类型的值的序列

list

变量类型的序列值

map

从不同键到值的映射

uuid

通用唯一标识符

符号

来自受限域的 7 位 ASCII 字符串

timestamp

一个绝对时间点

表 14.2. 在编码前和解码后 AMQ Python 类型
AMQP 类型编码前的 AMQ Python 类型解码后 AMQ Python 类型

null

布尔值

bool

bool

char

proton.char

unicode

string

unicode

unicode

二进制

bytes

bytes

byte

proton.byte

int

short

proton.short

int

int

proton.int32

long

long

long

long

ubyte

proton.ubyte

long

ushort

proton.ushort

long

uint

proton.uint

long

ulong

proton.ulong

long

浮点值

proton.float32

浮点值

double

浮点值

浮点值

数组

proton.Array

proton.Array

list

list

list

map

dict

dict

符号

proton.symbol

str

timestamp

proton.timestamp

long

表 14.3. AMQ Python 和其他 AMQ 客户端类型(2 的 1)
编码前的 AMQ Python 类型AMQ C++ 类型AMQ JavaScript 类型

nullptr

null

bool

bool

布尔值

proton.char

wchar_t

number

unicode

std::string

string

bytes

proton::binary

string

proton.byte

int8_t

number

proton.short

int16_t

number

proton.int32

int32_t

number

long

int64_t

number

proton.ubyte

uint8_t

number

proton.ushort

uint16_t

number

proton.uint

uint32_t

number

proton.ulong

uint64_t

number

proton.float32

浮点值

number

浮点值

double

number

proton.Array

-

Array

list

std::vector

Array

dict

std::map

object

uuid.UUID

proton::uuid

number

proton.symbol

proton::symbol

string

proton.timestamp

proton::timestamp

number

表 14.4. AMQ Python 和其他 AMQ 客户端类型(2 个)
编码前的 AMQ Python 类型AMQ .NET 类型AMQ Ruby 类型

null

nil

bool

system.Boolean

true, false

proton.char

system.Char

字符串

unicode

system.String

字符串

bytes

System.Byte[]

字符串

proton.byte

system.SByte

整数

proton.short

System.Int16

整数

proton.int32

System.Int32

整数

long

System.Int64

整数

proton.ubyte

system.Byte

整数

proton.ushort

System.UInt16

整数

proton.uint

System.UInt32

整数

proton.ulong

System.UInt64

整数

proton.float32

system.Single

浮点值

浮点值

system.Double

浮点值

proton.Array

-

Array

list

Amqp.List

Array

dict

Amqp.Map

hash

uuid.UUID

system.Guid

-

proton.symbol

Amqp.Symbol

符号

proton.timestamp

System.DateTime

Time

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.