上篇博文中我们介绍了Azure ServiceBus Messaging的消息事务机制:

Azure Messaging-ServiceBus Messaging消息队列技术系列7-消息事务(2017-03-30 22:12)

本文中我们介绍一下ServiceBus Messaging的一些配额,或者说使用说明和限制。原文请参考:

https://docs.microsoft.com/zh-cn/azure/service-bus-messaging/service-bus-quotas

我们着重介绍在实际消息应用开发时,会用到的、需要重点关注的几个配额选项。

1. 命名空间上限:即每个 Azure 订阅的基本/标准命名空间数上限:100,

2. 队列/主题大小,即我们使用的Queue或者Topic的容量,白话一点就是消息队列能承载多少消息,我们在实际应用时,一定要做一个评估,评估有两个方面,一个是我们业务高峰期会有多少消息,即消息的QPS,另一个是,未来1~2年,随着业务规模的扩张,现有的Queue/Topic的容量是否满足我们未来发展的要求。

Azure ServiceBus Messaging中已经显式的说明:系统将拒绝传入消息,且调用代码将收到异常。

队列/主题的大小,在声明时指定,Azure ServiceBus Messaging提供了1、2、3、4 或 5 GB选项,同时,如果已启用分区,最大队列/主题大小是 80 GB。

相信这个大小是Azure已经评估过的,大多数场景和规模都可以满足。

3. 并发连接数,并发连接数,Azure在命名控制和队列、主题、订阅这个层面统一做了限制。其中:

命名空间上的并发连接数:NetMessaging:1,000,AMQP:5,000

队列/主题/订阅实体上的并发连接数:受每个命名空间的并发连接限制的约束;

队列/主题/订阅实体上的并发接收请求数:5,000

当超过并发连接数时:系统将拒绝后续的附加连接请求,且调用代码将收到异常。 同时,REST 操作不计入并发 TCP 连接数。

这点大家要注意!

4. 每个服务命名空间的主题/队列数:即我们在每个服务的Namespace上可以创建多少个队列或者主题,这项配额是10000,服务命名空间中主题和队列的数目之和必须小于或等

于 10,000。如果超过这个配额:将拒绝后续的在服务命名空间中创建新主题或队列的请求。 因此,如果是通过 Azure 门户配置的,将生成错误消息。 如果是通过管理 API 调

用的,调用代码将收到异常。

这个队列数和主题数限制对于大规模消息应用的开发来说是有影响的,我们如果使用多个Namespace就可以横向扩展队列和主题的个数,这有点上业界主流的Sharding机制。赞

一个。

5. 任一消息实体路径的最大大小:队列或主题,即消息队列或者主题名称的长度是:260个字符

6. 队列/主题/订阅实体的消息大小:这个选项对我们来说非常重要,直接影响我们构造消息的大小。最大消息大小:256KB(标准层)/1MB(高级层)。 注意由于系统开销问

题,此限制通常略小一点,最大标头(消息头)大小:64KB,属性包(消息属性)中的最大标头属性数:byte/int.MaxValue,属性包中属性的最大大小:没有明确的限制。 受最

大标头大小限制。

7. 队列/主题/订阅实体的消息属性大小:每个属性的最大消息属性大小为 32K。 所有属性的累计大小不得超过 64K。如果超过这个配额:将生成 SerializationException

常。

8. 每个主题的订阅数:即每个Topic可以有多少订阅,2000,如果超过这个配额:

Azure将拒绝后续的为主题创建附加订阅的请求。 因此,如果是通过门户配置的,将显示错误消息。 如果是通过管理 API 调用的,调用代码将收到异常。

周国庆

2017/4/11

Azure Messaging-ServiceBus Messaging消息队列技术系列8-服务总线配额的更多相关文章

  1. Azure Messaging-ServiceBus Messaging消息队列技术系列-索引篇

    Azure Messaging ServiceBus Messaging相关的技术系列,最近已经整理了不少了,统一做一个索引链接,置顶. 方便查找,并后续陆陆续续再增加. 学习消息队列技术,可以先看第 ...

  2. Window Azure ServiceBus Messaging消息队列技术系列2-编程SDK入门

    各位,上一篇基本概念和架构中,我们介绍了Window Azure ServiceBus的消息队列技术的概览.接下来,我们进入编程模式和详细功能介绍模式,一点一点把ServiceBus技术研究出来. 本 ...

  3. Azure Messaging-ServiceBus Messaging消息队列技术系列3-消息顺序保证

    上一篇:Window Azure ServiceBus Messaging消息队列技术系列2-编程SDK入门  http://www.cnblogs.com/tianqing/p/5944573.ht ...

  4. Azure Messaging-ServiceBus Messaging消息队列技术系列4-复杂对象消息是否需要支持序列化和消息持久化

    在上一篇中,我们介绍了消息的顺序收发保证: Azure Messaging-ServiceBus Messaging消息队列技术系列3-消息顺序保证 在本文中我们主要介绍下复杂对象消息是否需要支持序列 ...

  5. Azure Messaging-ServiceBus Messaging消息队列技术系列5-重复消息:at-least-once at-most-once

    上篇博客中,我们用实际的业务场景和代码示例了Azure Messaging-ServiceBus Messaging对复杂对象消息的支持和消息的持久化: Azure Messaging-Service ...

  6. Azure Messaging-ServiceBus Messaging消息队列技术系列6-消息回执

    上篇博文中我们介绍了Azure Messaging的重复消息机制.At most once 和At least once. Azure Messaging-ServiceBus Messaging消息 ...

  7. Azure Messaging-ServiceBus Messaging消息队列技术系列2-编程SDK入门

    各位,上一篇基本概念和架构中,我们介绍了Window Azure ServiceBus的消息队列技术的概览.接下来,我们进入编程模式和详细功能介绍模式,一点一点把ServiceBus技术研究出来. 本 ...

  8. Window Azure ServiceBus Messaging消息队列技术系列1-基本概念和架构

    前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家. 首先,Windows Azure提供了两种类型 ...

  9. Azure Messaging-ServiceBus Messaging消息队列技术系列1-基本概念和架构

    前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家. 首先,Windows Azure提供了两种类型 ...

随机推荐

  1. Mysql动态sql语句,用当前时间做表名

    在mysql备份操作中, 我们可能要使用表名和当前时间来做为备份表的名称,但是MySQL在存储过程中不支持使用变量名来做表名或者列名. 例如:有一个表"user",我需要备份一份, ...

  2. Linux安装 Mysql

    背景 前不久开始学习部署ambari,在安装mysql的时候遇到了点问题,现在从网上找了点部署流程记录下来便于以后安装mysql. Centos 7.2 安装 Mysql 5.7.13 首先要安装yu ...

  3. SVN服务搭建

    yum方式搭建: 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion 2,创 ...

  4. C#泛型编程

    1.泛型的概念     C#中的泛型与C++中的模板类似,泛型是实例化过程中提供的类型或类建立的.泛型并不限于类,还可以创建泛型接口.泛型方法,甚至泛型委托.这将极大提高代码的灵活性,正确使用泛型可以 ...

  5. 中文分词工具thulac4j正式发布

    1. 介绍 thulac4j是THULAC的Java 8实现,相比于官方Java实现THULAC-Java,我们做了如下工作: 规范化分词词典,并去掉一些无用词: 重写DAT(双数组Trie树)的构造 ...

  6. shell [ff: 未找到命令

    在学习shell脚本时遇到一个问题:  [ff: 未找到命令 相信很多初学者都会遇到,再次说明一下,希望对大家有所帮助: shell脚本代码如下: #!/bin/bash echo -n " ...

  7. Oracle 字符集设置

    因为装Linux系统时选择的是英文版,所以当需要测试中文数据库时会出现乱码,这里记录一下我修改字符集的操作. 一些命令: 1.查看sqlplus客户编码: $ echo  $NLS_LANG 2.查看 ...

  8. 基于Selenium2+Java的UI自动化(8)- 显式等待和隐式等待

    一.隐式等待 package com.automation.waits; import java.util.concurrent.TimeUnit; import org.openqa.seleniu ...

  9. 南京.NET技术行业落地分享交流会圆满成功

    3月11日,由南京.NET社区发起,纳龙科技赞助,并联合举办的,.NET技术线下交流活动,圆满成功. 这是南京.NET圈子第一次的小型聚会,为了办好此次活动,工作人员不敢怠慢.早早准备好了小奖品与水果 ...

  10. java算法 蓝桥杯(题+答案) 方格填数

    6.方格填数  (结果填空) 如下的10个格子 (如果显示有问题,也可以参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案 ...