将消息队列技术模型简化,并打造成更适合互联网+与敏捷开发的云服务模式,好像已经是行业趋势,阿里云也在推荐使用消息服务(HTTP协议为主)而来替代消息队列(TCP协议、MQTT协议为主),并且将消息服务纳入到了存储体系内(Azure也是,有人知道为什么吗,是因为数据持久化在了磁盘上?)
更搞笑的是,阿里云还在帮助中心贴了一个表格
真是扎心了老铁,这不是自己怼自己,逼人用消息服务吗。。
回到本文主题上来,这几天用了Azure的存储服务里面的存储队列,感觉还是非常好用的,大道至简,傻瓜又方便,简单记录一下
产品结构:Azure-存储-存储队列
新建一个存储
在填写参数的时候,建议选择ARM模式(资源管理),然后复制性默认是RA-GRS,这个没有细研究,就按这个来了
等待几分钟,就建好了,我们会发现,这个存储内默认可以使用Blob,文件,表和队列服务
前往队列的面板
可以看到这里还不支持一些可视化的面板操作,于是找到官方教程页面,https://www.azure.cn/documentation/articles/storage-dotnet-how-to-use-queues/
下面学习一下存储队列的使用
可以说官方的这个教程页面的逻辑结构还是非常清晰的,首先介绍了存储队列基础概念和技术逻辑结构,简单摘要一些如下
-
存储帐户:对 Azure 存储空间的所有访问都要通过存储帐户来完成。有关存储帐户容量的详细信息,请参阅 Azure 存储空间可伸缩性和性能目标。
-
队列:一个队列包含一组消息。所有消息必须位于相应的队列中。请注意,队列名称必须全部小写。有关命名队列的详细信息,请参阅命名队列和元数据。
-
消息:一条消息(不管采用何种格式)的最大大小为 64 KB。消息可以保留在队列中的最长时间为 7 天。
URL 格式:可使用以下 URL 格式对队列进行寻址:http://<storage account>
.queue.core.chinacloudapi.cn/<queue>
可使用以下 URL 访问示意图中的某个队列:http://myaccount.queue.core.chinacloudapi.cn/imagesToDownload
对于.NET的实践,直接在Nuget中应用两个包
WindowsAzure.Storage
WindowsAzure.ConfigurationManager
看了下应该也提供了对.NET Core的支持
然后在教程中,给出了9个典型场景和方法,并给出了一些解释和说明,相信是能够覆盖到绝大多数的用户场景的
-
创建队列
-
在队列中插入消息
-
扫视下一条消息
-
更改已排队消息的内容
-
取消对下一条消息的排队
-
将 Async-Await 模式与公用队列存储 API 配合使用
-
使用其他方法取消对消息的排队
-
获取队列长度
-
删除队列
相关代码也很清晰,只是美中不足的是,日常的一些操作,例如消息调试、队列创建删除等,只能通过代码或者PowerShell进行操作,不像阿里云那样,在控制面板中就能操作
所以就抽空做了一个
弥补一些AzurePortal的缺失,目前先做一个存储队列的辅助功能,包括队列创建删除和消息的处理
地址是:https://www.alphams.cn/AzureHelper
希望可以帮助到大家
总结一下:
1、Azure这样的存储队列和阿里云的消息服务功能等类似的服务是消息队列技术的演变,这样简化的消息队列服务一定会得到越来越广泛的使用
2、Azure的控制面板确实得再加强加强,总是功能缺失,不知道Global的Azure是不是也这样。。
3、蓝天助手会持续开发,希望能够拓展出一些有意思的辅助和功能
转载请注明出处,欢迎邮件交流:zhangrou@printhelloworld.com,或者加QQ群:11444444