【无中生有】---7---分布式消息队列
2015-06-25 16:39
267 查看
技术背景:
为什么使用分布式消息队列:参考:使用消息队列的 10 个理由
几种常见分布式消息队列各有所长,有的性能好,有的数据安全性好,有的社区支持好。
但是无论使用何种消息队列,将自己需求进行分析后抽象为业务接口对成品消息队列产品进行封装是一种较好的选择,既便于消息队列软件和自己的业务软件之间解耦合,也能进行多个不同特点消息队列软件的同时集成,方便不同业务场景调用所需要特点的队列软件。cap原则在此也会有一定的作用性,所以根据不同业务场景选择对应特性的消息队列软件是一个很好的选择。而由于大部分的消息队列软件基于非windows平台,考虑非web形式的服务调用,java以及基于mono的c#是很好的封装语言载体。
软件对比:
4 款消息队列软件产品大比拼业务场景应用分析:
从数据操作角度,如果消息对应的操作是数据读取,通常不存在数据序列化或者去重的问题。但是如果通知消息对应的操作是数据插入、修改或者删除三种操作,尤其是所操作的数据和通知消息同时到达。而且通常情况下,消息通知机制更多是作用于数据更改操作的,尤其是数据插入的操作,在高并发情况下面临数据重复插入或数据排序的问题。因此在面临这两种数据操作时,即使分布式消息队列也存在一个瓶颈点-----就是对数据去重和排序的功能点。消息队列本身的对列排序由于前端用户业务服务器响应时长的问题,尤其是高并发情况下,消息队列排序不一定符合业务要求,所以按照业务需求封装数据去重和排序功能也有相当的必要性。由于这个功能不一定是必须的,更适用于适配器模式,并通过配置或者客户端选择是否调用业务层次的数据去重或者排序。而这个功能单点特性变为必须的,而队列数据也必须能够持久化已支持在进行故障转移时不会发生丢失。
三重封装:业务客户端调用消息队列、后端服务调用消息队列、数据去重和排序功能
相关文章推荐
- 《Objective-C Runtime分析(二)-Class,Method,SEL,IMP》
- CAS认证(3):验证用户信息
- 深入理解Loadrunner中的Browser Emulation
- 分布式文件系统FastDFS原理介绍
- StringBuffer和StringBuilder常用方法
- 自定义iphone页面添加到主屏幕图标
- office2013卸载办法
- iOS开发,使用keychain保存用户名密码
- Android开发:IntentService使用(源码分析)
- RouterOS 自动邮件备份脚本
- CAS认证(2):认证过程
- Mac下搭建 Jenkins+Github+蒲公英/fir.im 持续集成环境(iOS自动打包)
- Win8.1电脑玩大型游戏卡屏没有以前那么顺畅的解决方法
- javaFX资料
- Data Sets 数据源
- 3--FreeRTOS常用资源
- java web应用URL过滤
- 【基础练习】【线性DP】codevs1058 合唱队形题解
- WordPress 添加后台管理项目
- CAS认证(1):流程详解