【阿里云产品公测】消息队列服务MQS java SDK 机器人应用初体验
【阿里云产品公测】消息队列服务MQS java SDK 机器人应用初体验
作者:阿里云用户啊里新人
初体验 之 测评环境
由于MQS支持外网访问,因此我在本地做了一些简单测试(可能有些业余),之后使用mqs应用到我的程序中在阿里云的ecs中运行。
先上一张图这是初体验结果

开始正文
本地模式

网络环境

阿里云服务器环境

初体验 之 准备测试
首先就是阅读一下阿里的文档,以及介绍这个事必要的,磨刀不误砍柴工功么!建议大概的通读一下,然后可以将入门指南仔细看一下,里面包含了详细的操作,以及一些demo,包括界面上的操作,和java,Python的。可以让你很快的上手。
MQS基本概念
MQS功能和特点
MQS安全和可靠性
MQS限制与局限
MQS服务访问和地域
MQS API&SDK
MQS使用指南
通读之后有几点我提一下
1,MQS是支持外网访问的,这意味着你即使不是阿里的服务器也可以使用MQS
2,MQS的保留时间最长15天
3,消息最长64KB
4,队列个数和消息个数没有限制(不知道公测之后会怎么计算)
5,消息不保证按照生产的先后顺序被消费,(因为是集群的,只是保证优先)
初体验 之 本地基础测试
用了大概一下午的时间看阿里提供的所有帮助和文档,在脑海里基本有了一个印象,提供一套http的api,并提供几个版本的sdk,我就选择的顺手的java sdk测试了。
这里要说的是大家可以在入门指南中看到有示例代码。如果不是细心看完所有的文档,这里可能会让初接触者有些不容易找到sdk和示例代码之间的关系。关于这点稍后再说。
测试内容
1,外网消息生产速度
2,外网消息消费速度
3,定时消息延迟情况
4,消息的先后消费情况
测试基于javasdk,直接循环发送10000调消息,求平均时间
最终的测试结果为
发送消息测试10000调
发送时间538639毫秒,不到九分钟,平均18.58条/每秒
获取消息10000调
361956s 约6分钟,平均27.62 条/每秒
获取消息并删除
729420s 约12.157 分钟 平均 平均 13.7条
以上数据看来,get消息要比put消息快一些,
以上测试都是单线程测试。
另外对定时消息做了一个测试,测试的过程依然是10000调消息,
一个生产者,四个消费者,同时开始工作,定时10s
平均时间在11s接收并消费成功,四个消费者的消费个数也在2500左右,下面两张是运行最后的截图,(秒级别的消息提醒已经满足我的应用需求,稍后的应用会用到。这里还是比较开心的解决了我的一个一直想做的小功能。)
本地基本上就做这些测试都是基于外网访问,相信如果放在ecs之后内网访问效率会更高!,然后就准备进入实战阶段了。嵌入我的应用,应用才是王道。
MQS初体验 之 应用实战
我的应用比较特殊,是个小机器人,提供一些公共服务,比如天气,歌词,成语学习,小游戏。本次的测试想通过mqs的定时消息,实现一些生活中的小提醒功能。
就拿我本程序猿来说,公司的上班时间是弹性制的,但是每次快到下班的时候总是忘记了具体是什么时候到公司的,要不需要问前台,(不太合适吧?嘿嘿),还有个办法就是看开机时间这个也差不了多少,但是看开始时间还是需要个cmd,或者我的电脑看启动日志,或者任务管理器看,(不过这里我总是觉得不太准)。如果这时候,当我到下班时间直接有个qq消息告诉我可以走了。是不是就爽了很多哈哈
先展示一下目前的实现

由于时间的原因,目前还不成熟,文案也有一点小问题,不过定时消息结合mqs的架构已经基本实现,慢慢把MQS用起来,改进一下,实现我的目标,(我的目标是用我的代码服务的我生活。)
下面说一下实现,我使用的javaSDK版本,其实很简单,如果仔细看就会发现在入门教程中是有demo的,我刚看一些文档的时候还抱怨没有教程,在我看完所有帮助文档说明之类的之后总算是看到了,(这里稍后有话要说)
首先建议通读一下 入门指南 然后去下载sdk,
这里阿里有说明如果是 maven环境很简单,只需要在项目的pom.xml 添加代码即可。相应的依赖包就可以加载进来,
我使用的不是maven环境,这里也有全部依赖包的打包下载 传送门
然后解压到项目就可以了,这里我就遇到一个坑,我的源码使用了和mqs的包有重叠,并且版本冲突。我哭了,没办法,只要修改了源码。(不多说都是泪)Java的sdk对队列的操作都做了基本的封装。以下将常用的代码列一下,
Mqs 的客户端实例化
很简单只需要提供一个访问地址,以及你自己的应用key,secret
首先就是创建一个队列
这里创建队列方法返回的是队列访问地址,例如
获取消息队列列表
结果
http://iveo7.mqs-cn-qingdao.aliyuncs.com/MyQueue
http://iveo7.mqs-cn-qingdao.aliyuncs.com/dddddd
修改队列属性
获取队列属性
删除队列
发送消息
获取消息
删除消息
查看消息
并不会改变消息的状态,即被 PeekMessage 获取消息后消息仍然处于 Active 状态,仍然可被查看或消费
修改消息不可见时间
以上代码包括了api的基本操作。
初体验 之 总结
目前我的小机器人已经使用了mqs的消息队列,总而言之,Sdk封装后,接口使用简单,只需要了解了接口的概念,和设一下方法的参数就可以很快的上手。不过建议使用者将先关的文档全部通读一下,也没有多少。
另外就是sdk建议对方法加上描述,和参数说明,或者提供一个文档,不然刚入还需要看一下源码,对一些方法只能根据名字猜测。
现在只是应用了mqs的延时消息做定时任务类题型,其实mqs还可以做很多事情 例如
定时消息(延迟服务)
目前小机器人就是使用的定时消息。
多个应用之间的通信(外网访问,内网多应用)
之后机器人会实现多渠道通信功能,比如网页发送qq题型消息,或者公告类消息。(已经在计划中)
公告类消息推送
mqs运行一个消息被多次消费,或者说查看。那么就可以作为公告类的消息通道来使用,一条公告被多个消费者查看。(可能会考虑这么干)
任务执行类型消息(并且是有优先级的)
很多应用需要在后台去执行不同的任务,通过MQS可以将任务执行和应用分离,并且按照优先级去执行。让你的应用功能解耦。单独的任务执行功能从MQS获取任务,然后去执行。这个记得之前做个一个采集类项目为了突破防采集就是使用这个原理干的,不过那时候还没有MQS,使用的是MQ.
目前想到的使用场景,也许大家有更多的使用方式和场景,快来试试吧
初体验 之 建议&意见
1,文档有些乱,比如入门指南,和sdk没有很好的说明关联,最一开始都不知道入门指南里面的代码是sdk的。
--建议已记录
2,sdk的方法都没有说明,只能是根据入门指南的一些代码查看,另外看到sdk其实还提供一些别的方法,但是没有说明,只能去看源码了。
-- 主要是有Api Reference文档
3,mqs控制台的消息和api的消息是不通的,我在控制台添加的消息在api获取到是乱码,在通过api添加的消息在控制台看到的也是加密之后的。这点不知道是什么原因,还望阿里工程狮看看。如果这里不互通,感觉页面上添加消息接口也没有什么意义。
--建议已记录
最后,特大字号告诉坚持读到这的你一个秘密,原来sdk的jar解压之后竟然有源码。。。。悲催的我自己弄了半天,原来有源码。。。。
微博互动:http://weibo.com/1644971875/BrFjWoX3I?ref=#_rnd1413352813344
【阿里云产品公测】消息队列服务MQS java SDK 机器人应用初体验的更多相关文章
- 【阿里云产品公测】以开发者角度看ACE服务『ACE应用构建指南』
作者:阿里云用户mr_wid ,z)NKt# @I6A9do 如果感觉该评测对您有所帮助, 欢迎投票给本文: UO<claV RsfTUb)< 投票标题: 28.[阿里云 ...
- 【阿里云产品公测】利用PTS服务优化网站数据库读写性能
[阿里云产品公测]利用PTS服务优化网站数据库读写性能 作者:阿里云用户千鸟 写这个帖子主要也是因为在用PTS测试网站的时候,手动访问网站进入报错页面,主要原因是数据库连接对象存在问题,导致并发多的时 ...
- 【阿里云产品公测】结构化数据服务OTS之JavaSDK初体验
[阿里云产品公测]结构化数据服务OTS之JavaSDK初体验 作者:阿里云用户蓝色之鹰 一.OTS简单介绍 OTS 是构建在阿里云飞天分布式系统之上的NoSQL数据库服务,提供海量结构化数据的存储和实 ...
- 【阿里云产品公测】简单日志服务SLS使用评测 + 教程
[阿里云产品公测]简单日志服务SLS使用评测 + 教程 评测介绍 被测产品: 简单日志服务SLS 评测环境: 阿里云基础ECS x2(1核, 512M, 1M) 操作系统: CentOS 6.5 x6 ...
- 【阿里云产品公测】高大上的搜索服务OpenSearch,你值得拥有!
[阿里云产品公测]高大上的搜索服务OpenSearch,你值得拥有! 作者:阿里云用户trcher 一.前言: 在OpenSearch没出来之前,就一直想给网站做个搜索功能,虽然网站本身自带搜索功 ...
- 【阿里云产品公测】云引擎ACE初体验
作者:阿里云用户蓝色之鹰 :RYYjmG5; 来投票支持我把=i2]qj\ 序号2. [阿里云产品公测]云引擎ACE初体验:作者:蓝色之鹰 e(OKE7 序号10.[阿里云产品公测]结构化数据服 ...
- 【阿里云产品公测】大数据下精确快速搜索OpenSearch
[阿里云产品公测]大数据下精确快速搜索OpenSearch 作者:阿里云用户小柒2012 相信做过一两个项目的人都会遇到上级要求做一个类似百度或者谷歌的站内搜索功能.传统的sql查询只能使用like ...
- 【阿里云产品公测】离线归档OAS,再也不用担心备份空间了
[阿里云产品公测]离线归档OAS,再也不用担心备份空间了 作者:阿里云用户莫须有3i 1 起步 1.1 初识OAS 啥是OAS,请看官方说明: 引用: 开放归档服务(Open Archive Se ...
- 【阿里云产品公测】云引擎ACE新手实战基于Wordpress
[阿里云产品公测]云引擎ACE新手实战基于Wordpress 作者:阿里云用户imnpc ACE(Aliyun Cloud Engine) 是一款弹性.分布式的应用托管环境,支持Java.php多种语 ...
随机推荐
- 支付结果回调v7核心,投保确认接口..
<?xml version="1.0" encoding="GBK"?> <PACKET type="REQUEST"&g ...
- oracle学习 一 (持续更新中)
首先你需要创建一个表空间,然后,再创建一个用户名,用户名要给他指定一个表空间,并且给这个用户赋予权限, DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构. RESOURCE:拥有 ...
- HDU4289Control(最大流)
看了这道题,然后重新开始练习自己的刚敲不久的网络流,发现还是难以一遍敲得完整啊,,,,, 调了...遍,改了...遍,测了...遍,交了,,,遍,总算是A了,,不简单啊 然后试着用了其他两种算法EK和 ...
- iOS摄像头和相册-UIImagePickerController-浅析
转载自:http://blog.sina.com.cn/s/blog_7b9d64af0101cfd9.html 在一些应用中,我们需要用到iOS设备的摄像头进行拍照,视频.并且从相册中选取我们需要的 ...
- installshield Basic 工程每次安装完提示重启电脑
将Sequence中的ScheduleReboot Action的Condition清空即可.
- Error opening trace file: No such file or directory (2)
想看sharepreference保存的键值对的数据,用到单元测,运行函数总是报这种错,且看不到file explorer-->data>对应工程包的xml文件:
- 压力测试工具:tsung
http://tsung.erlang-projects.org/user_manual/introduction.html#what-is-tsung
- c++中智能输出文件
首先我们要为每一时间步,设置一个文件名: ] = "; itoa(time,timestr,); std::string s; s += timestr; std::string path ...
- github 多帐户使用
同一台电脑有2个github账号?咋办 比如一个公司账号一个个人账号. 私人账号如下: 邮箱example@126.com 账号:example 公司工作账号如下: work@xx.com 账号:my ...
- SpinLock 自旋锁, CAS操作(Compare & Set) ABA Problem
SpinLock 自旋锁 spinlock 用于CPU同步, 它的实现是基于CPU锁定数据总线的指令. 当某个CPU锁住数据总线后, 它读一个内存单元(spinlock_t)来判断这个spinlock ...
















