AMQP协议二

8 篇文章 0 订阅

书一   类型


1.1 类型系统

       AMQP类型定义了常用的基本类型来用于互相操作数据时的表示。AMQP使用一些额外的语义信息来描述基本类型对应的值。这就允许与AMQP值相关联的一些描述信息作为基本类型出现在规范中。例如:URL通常被定义成字符串,但是不是所有的字符串都是有效的URL,同时许多其它的语言也用一些特殊的类型定义了URL。在AMQP中,当一个字符串是被用于URL的时候,系统会定义一个特殊的编码值来注释这个特殊的字符串为URL。


1.1.1 基本类型

 以下是定义的基本类型:

      null              定义一个空值

      boolean       描述true和false

      ubyte           0到2^8-1范围的整数

      ushort          0到 2^16-1范围的整数

      uint              0到2^32-1范围的整数

      ulong           0到2^64-1范围的整数

      byte             -(2^7)到(2^7-1)范围的整数

      short            -(2^15)到(2^15-1)范围的整数

      int                -(2^31)到(2^31-1)范围的整数

      long             -(2^63)到(2^63-1)范围的整数

      float             32位浮点数(IEEE 754-2008 binary32)

      double         64位浮点数(IEEE 754-2008 binary64)

      decimal32   32位数字类型(IEEE 754-2008 decimal32)

      decimal64   64位数字类型(IEEE 754-2008 decimal64)

      decimal128 128位数字类型(IEEE 754-2008 decimal128)

      char             unicode码字符

      timestamp   时间戳

      uuid             全球唯一ID(定义在RFC-4122文档中4.1.2章节)

      binary          8位的一个序列

      string           字符串

      symbol         固定域中的符号值

      list                列表

      map              映射表

      array             数组


1.1.2 描述类型

      AMQP直接定义了许多在其它常用语言中使用的基本类型,因此这些基本类型可以用于一些基本数据的交换。事实上,最基本的应用也有它自己描述特殊模型概念的类型,比如应用的域,消息等,这些定制的类型也需要额外的传输。

     AMQP提供一个机制来做这个事情,那就是允许AMQP的类型去注释一个描述符。描述符在用户的定制类型和AMQP类型之间形成关联。这种关联可以理解为AMQP类型是用户定制类型的一个描述。最后AMQP类型和它对应的描述符就构成了描述类型。
     一个描述类型包含两种类型信息。它既标识AMQP类型,又标识用户类型(可以看做是他俩之间的关联),因此能理解成两个不同的层次。对于一个给定详细描述信息域的应用来说,可以把描述类型看成是用户类型,因此解析和处理就可以根据用户类型描述的形式一样。对于一个没有详细信息域的应用来说,仍然可以把描述类型看成是AMQP类型,解析和处理就按照AMQP类型来做。

1.1.3 描述符

     描述符的值除了语法符号或者数字外,其它值在语法上来讲都是不合法的。为了使用户使用描述符的值在与其它描述符的值不冲突的情况下,一种分配语法符号及数字描述符的规则在下边说明。

      语法符号和数字符号的名字空间被分成了两个独立的域中。AMQP工作组为每个域中定义分配了语法符号或者数字id。在AMQP规格中,数字ID是被分配成域ID的,这些域ID是和IANA中私有企业号(PEN)相同的,对应IANA链接为http://www.iana.org/assignments/enterprise-numbers,其中域ID中的0是被保留的。

描述符被分配到每个域是按照如下的规则来的:

语法描述符:
       <domain>:<name>
数字描述符:
       (domain-id << 32) | descriptor-id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值