0.引言:
企业应用血统的MQ,无论是JMS还是AMQP的实现,都比较复杂而Scalability又马马虎虎. 打算找些真正有互联网血统的那些简单,简陋但务实的MQ系统来看下, 计划有Amazon的SQS,Linkedin贡献出来的Apache Karfka , 偏重于Log收集的Apache Flume 和 Facebook Scribe,或是借助一些NOSQL系统来简单搭建的方法。
1.Amazon SQS:
Amazon SQS(Simple Queue Service)是亚马逊云上的MQ服务.
核心API很简单,Sender方面的SendMessage和Receiver方面的ReceiveMessage,DeleteMessage,都是Restful的接口.
Sender没什么好说的。Receiver方面则会:
1. 先主动用ReceiveMessage轮询消息(JMS里的Pull模式,Message Driven Bean那种Push模式是没有的),一次接收到若干条消息(受MaxNumberOfMessages参数限制,默认为1)。
2. 处理完每条消息后,必须显式调用DeleteMessage在Server端删除消息(也就是JMS里的CLIENT_ACKNOWLEDGE模式,AUTO_ACKNOWLEDGE自动删除模式是没有的)。为了性能还有个BatchDeleteMessage的API,但就要冒一点消息被重复处理的风险了。
3. 为了避免消息在被处理完Delete掉之前,被其他接收者接收,会有一段保护时间(Queue有个VisibilityTimeout属性, 默认30秒),过期后消息还没被Delete掉,就会让其他接收者接手处理。还有个ChangeMessageVisibility的API可以延长此消息的保护期。
简单,实用的保证消息被at lease once的处理,同时尽可能的避免被重复处理,是这些互联网血统MQ的设计特征。但如果消息真的被重复发送,就还是只能靠客户端那边的自我保护机制,消息属性里会提供SentTimestamp,ReceiveCount,FirstReceiveTimestamp的信息做参考。
另外SQS有个好玩的Pattern,你可以用GetQueueAttributes获得Queue中待处理的消息数,如果过多了,可以临时启动多几个Receiver的EC2实例来处理,没什么剩了,就又shutdown回去,很经济的云计算。
其他MQ系统待续......
分享到:
相关推荐
成就图标 Daryl Mandryk Steven Skidmore
一个软件学院的创新血统,南阳理工软件学院的计算机软件教育的创新血统
选择不同比例民猪血统(民猪血统比例为1,1/2,1/4,1/8,0)的商品仔猪60头,在同一营养水平 下,研究民猪血统对生长肥育猪肌肉品质及肌纤维特性的影响。结果表明,民猪及其杂种猪与杜大长杂种猪相比 肉色好( P<0.05),pH...
《暗黑血统1》物品收集.doc
Unity3D游戏外籍军团游戏界面,帮助大家学习GUISkin
初中语文文摘历史骆家辉我为华人血统骄傲
血统游戏界面,帮助大家了解GUISkin的用法
Ashampoo WinOptimizer 19 是拥有德国纯正血统的军刀级阿香婆系统优化软件,能帮助大家清理、隐私保护、服务禁用、空间回收、保护和最大程度优化用户的计算机操作系统,威航软件园提供的最新版本的Ashampoo ...
分析了现有企业内部办公网络系统中导致文件泄密的根本原因——孤立地看待文件之间的关联关系,忽视用户之间的亲疏关系。提出用文件血统来表示文件之间的安全关联关系,用角色亲和度来衡量角色(用户)间的亲疏关系,用...
:airplane: 最高血统计算器计算你的下降 在我的空闲时间,我经常使用 X Plane 11 模拟器飞行,最近我想创建下降顶部 (TOD) 计算器,来计算下降路径。 TOD 是飞机应该开始下降以接近或任何其他目标高度的点。 我创建...
Ashampoo WinOptimizer 19 是拥有德国纯正血统的军刀级阿香婆系统优化软件,能帮助大家清理、隐私保护、服务禁用、空间回收、保护和最大程度优化用户的计算机操作系统 阿香婆系统优化软件都能面面俱到的帮助大家轻松...
延续王者血统,演绎中端经典 Lynnfield处理器抢先深度报道.pdf
使用 https://github.com/lineageos4microg/docker-lineage-cicd 制作请记住,我只是按照指南进行了相应操作。 我不是 ROM 开发人员或任何东西。 因此,我无法修复您可能面临的任何错误。 我会尝试更新ROM,至少每3...
实际是纯正血统源码改编,deilph编译通过
版权2018-LineageOS项目 摩托罗拉X4(佩顿)的设备配置 基本的 规格表 中央处理器 八核(8x2.2 GHz ARM Cortex A53) 芯片组 高通MSM8998金鱼草630 显卡 肾上腺素508 记忆 3GB 搭载Android版本 ...16 MP
我提供基于 lineageOs 的 ROM
本书以C#作为开发语言,以.NET Framework 3.5作为开发平台,站在开发人员的视角,深入剖析了10个企业级应用程序的构建,内容涉及Windows Forms数据库应用程序、WPF华丽界面的多媒体软件、Web数据库应用程序,以及...
Ice(Internet Communications Engine)是ZeroC公司的杰作,继承了CORBA的血统,是新一代的面向对象的分布式系统中间件。Ice是RPC通讯领域里最稳定、强大、高性能、跨平台、多语言支持的老牌开源中间件,特别适合于...
■ 你能从我们的暗黑血统3主题中得到以下功能:新标签提供数千高清墙纸为您定制一个简单,美丽,干净,高清新标签页。最好的暗黑血统3高清壁纸,高清墙纸,4K分辨率的桌面和平板电脑在您的开始页。也可以搜索关键字...
用系统发育树和空间数据做有趣的事情的脚本 血统分布模型 Python脚本可估计种内谱系的分布,以配合我们在PlosOne中的论文一起使用。该脚本与ArcGIS库(arcpy)一起运行。 警告:本节的作品,但尚不能保证是用户友好...