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系统待续......
分享到:
相关推荐
《新血统游戏界面》是基于Unity3D引擎制作的一款游戏界面设计,旨在为开发者提供一个学习和研究GUISkin的实例。Unity3D作为一款强大的跨平台游戏开发工具,其内置的GUI系统允许开发者创建丰富的用户界面,而GUISkin...
《暗黑血统3》是一款深受玩家喜爱的动作冒险游戏,其独特的艺术风格和精心设计的视觉元素是游戏的一大亮点。这个名为"《暗黑血统3》游戏美术参考图片材料集合.zip"的压缩包文件,显然是为了展示和分享游戏开发过程中...
"血统游戏界面"项目旨在提供一个示例,帮助开发者深入理解如何利用GUISkin来创建和自定义游戏用户界面。在这个项目中,我们可以看到一系列的文件,可能包括GUISkin配置文件、预设UI元素以及相关的脚本,这些都封装在...
【标签】"sun solaris10 unix 系统管理"明确了教材的焦点,"sun"代表SUN公司,"solaris10"是指特定的操作系统版本,"unix"强调了Solaris的Unix血统,而"系统管理"则揭示了教程的主题,即如何有效管理这个Unix-like...
华数是拥有广电和电信双重血统的运营商,业务范围包括固定电话、移动电话、WiFi、WiMax、宽带业务、有线电视、数字电视、移动电视等。华数副总裁赵志峰透露,根据发展的重心不同,华数的电视业务分成了三个梯队,...
《暗黑血统1》物品收集.doc
【标题】"Rosy:基于血统的rom-开源"是指一个名为Rosy的自定义Android ROM项目,它建立在LineageOS的基础上。LineageOS是Android操作系统的一个流行开源版本,由原来的CyanogenMod发展而来,旨在为用户提供更多的...
初中语文文摘历史骆家辉我为华人血统骄傲
4. **祖先路径查询**:寻找一个成员的所有祖先,了解其直系血统。 5. **鼻祖查询**:确定一个家族的始祖,即家族树的根节点。 6. **家族成员查询**:包括父母、兄弟姐妹、堂兄弟姐妹、子女和子孙的信息查询。 7. **...
Ashampoo WinOptimizer 19 是拥有德国纯正血统的军刀级阿香婆系统优化软件,能帮助大家清理、隐私保护、服务禁用、空间回收、保护和最大程度优化用户的计算机操作系统,威航软件园提供的最新版本的Ashampoo ...
使用 https://github.com/lineageos4microg/docker-lineage-cicd 制作请记住,我只是按照指南进行了相应操作。 我不是 ROM 开发人员或任何东西。 因此,我无法修复您可能面临的任何错误。 我会尝试更新ROM,至少每3...
分析了现有企业内部办公网络系统中导致文件泄密的根本原因——孤立地看待文件之间的关联关系,忽视用户之间的亲疏关系。提出用文件血统来表示文件之间的安全关联关系,用角色亲和度来衡量角色(用户)间的亲疏关系,用...
:airplane: 最高血统计算器计算你的下降 在我的空闲时间,我经常使用 X Plane 11 模拟器飞行,最近我想创建下降顶部 (TOD) 计算器,来计算下降路径。 TOD 是飞机应该开始下降以接近或任何其他目标高度的点。 我创建...
Ashampoo WinOptimizer 19 是拥有德国纯正血统的军刀级阿香婆系统优化软件,能帮助大家清理、隐私保护、服务禁用、空间回收、保护和最大程度优化用户的计算机操作系统 阿香婆系统优化软件都能面面俱到的帮助大家轻松...
### 加拿大数据科学家对可信人工智能系统的开发实践 #### 摘要 随着人工智能(AI)技术的迅猛发展,其在社会各个领域的应用日益广泛。AI系统不仅能够提高决策效率,还能为用户提供更加个性化的服务。然而,AI系统...
2. **Unix 血统与兼容性**: Linux 基于 Unix 系统的设计理念,继承了 Unix 的诸多优点,如稳定性、可移植性和安全性。这使得Unix上的应用程序可以方便地在Linux上运行。而Windows则遵循不同的设计哲学,虽然提供了...
作者将“血统”一词用于形容网站的用户群体特质,强调保持社区的纯正性对于维持讨论质量和产品可持续性至关重要。一个健康的社区需要筛选和管理用户,防止不符合社区定位的行为和内容出现。 总体来看,互联网创业的...
系统能够跟踪种猪的血统、健康状况、繁殖记录等,帮助管理者优化种群结构,提高种猪的生产性能。通过数据分析,可以预测种猪的最佳配种时间,减少无效繁殖,提高仔猪出生率。 生猪管理功能对育肥猪的生长阶段进行...