首页> 中文学位 >支持事务的分布式消息队列中间件的设计与实现
【6h】

支持事务的分布式消息队列中间件的设计与实现

代理获取

目录

声明

摘要

1.1 系统的开发背景

1.2 国内外相关研究现状

1.2.1 国外

1.2.2 国内

1.3 本文的主要工作

1.4 本文的组织结构

第2章 系统需求分析

2.1 系统总体需求分析

2.2 功能性需求分析

2.2.1 消息处理分析

2.2.2 性能和可靠性需求分析

2.2.3 分布式事务需求分析

3.1 系统架构设计

3.2 分布式存储设计

3.2.1 整体存储结构设计

3.2.2 异常恢复设计

3.2.3 存储数据结构设计

3.3 系统功能设计

第4章 系统详细设计

4.1.1 普通消息

4.1.2 顺序消息

4.2 消息过滤与查询

4.2.1 按照Tag过滤消息

4.2.2 按照Message Id查询消息

4.2.3 按照Message Key查询消息

4.3 消息重复设计

4.4 分布式事务设计

4.4.1 Kafka分布式事务

4.4.2 Percolator

4.4.3 Haeinsa

4.4.4 本文设计

5.1 消息传输实现

5.1.1 普通消息

5.1.2 顺序消息

5.2分布式事务实现

5.2.1 发送分布式事务消息

5.2.2 消费分布式事务消息

5.3 系统可用性保障

5.3.1 零拷贝实现

5.3.2 集群高可用备份实现

5.3.3 网络传输实现

5.4 系统优化

5.4.1 文件系统比较

5.4.2 I/O调度算法选择

5.4.3 Linux系统调优

5.4.4 系统测试

第6章 总结与展望

参考文献

致谢

展开▼

摘要

互联网加的模式带来应用架构的改变,应用从传统客户端/服务端模型向客户端/中间件服务器/数据库服务器三层模型改变。其中中间件服务对接各种功能的服务(集群)集合,为其它应用服务提供良好的使用环境。消息中间件主要应对突发消息和持续消息洪峰,提供平衡服务器资源负载和稳定生产环境的能力。消息中间件的异步服务能力改变了业务层层依赖问题,系统在水平扩展方面变的容易。消息中间件又称开放式消息服务,各大厂商都有不同的实现方案。早期的消息中间件多为国外技术厂商研发用于内部的商业软件,使用难度高、设计复杂、通用性差、技术不开源等,并不能满足互联网应用的复杂环境。分布式事务消息是要求多条消息完整、有序的特例,实现理念和使用场景导致各消息中间件设计方案不同。早期分布式事务设计更多考虑严格事务一致性,并没有关注事务消息的拆分、异步执行、事务消息重排序的等优化手段。目前国内互联网行业的兴起,提出了消息中间件自己的设计方案。比较国内外同行以高吞吐量为设置目标支持高并发的开源消息中间件,并拥有成熟的分布式事务解决方案仍没有成熟的标准。针对业务多样、峰值不确定、高效并发、使用方便、服务稳定,本文描述了一款基于java语言实现的高性能、轻量级消息中间件DTube。
  本文结合Linux操作系统的管理机制和分布式系统理论,设计基于消息中间件的分布式存储的实现,主要工作包括以下几个方面:
  (1)设计并实现用于消息堆积的分布式存储模型。这一部分包括消息分类的设计、消息存储队列、消息存储的分布式分发。分布式存储模型逻辑上把每个存储服务器当做一个文件使用。基于分布式存储模型可以实现:发送与接收普通消息;发送与接收顺序消息;消息在消费时服务端的过滤。分析分布式一致性的相关理论:两军问题、拜占庭将军问题、paxos算法,设计用于处理消息重复问题的方法。分析消息中间件规范,参考相关先进的消息中间件的设计思路。
  (2)设计并实现用于分布式事务消息处理模型。分布式事务基于XA两阶段提交协议原理实现。这一部分为了解决多阶段的分布式事务的处理问题。基于此模型可以实现:发送端的分布式事务处理提交和消费端批量消息消费的处理提交。
  (3)设计并实现用于分布式消息的查询功能。这一部分提供用于大规模消息查询的功能:通过Message Id查询消息;通过Message Key查询消息。Message Id查询是通过记录文件的位置。Message Key查询设计了一个类似Java7的HashMap的文件存储结构。随后阐述了不同类型消息在消息队列中存储的原理已经发送消费消息简单例子和流程。
  (4)使用DTube的优化和其它实现细节。优化包括:文件系统、部署方式、Linux系统内核调优。DTube其它方面的设计包括:网络传输与序列化、I/O的零拷贝、高可用备份设计。优化网络传输与序列化是提高性能的有效手段。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号