ssh和dubbo的信息推送服务中间件的研究和应用(源码)【字数:22418】
摘 要本文针对传统消息中间件无法实现服务信息持久化、无法快速定位、检索某次服务信息以及无法在通讯双方不同通讯协议中使用等问题,旨在创建一个可对服务信息持久化,可快速定位、检索服务信息以及可在双方不同通讯协议中使用的信息推送服务中间件。该信息推送服务中间件基于现有的Spring、Hibernate、Dubbo框架整合而成,由Spring框架负责构建中间件的Web控制层、由Spring和Hibernate共同作用,作为中间件系统的数据处理层,并由Spring和Dubbo共同架构中间件核心的远程调用服务控制层,实现对整个中间件的结构层次划分。该信息推送服务中间件的运行依赖于MySQL、Redis数据库和Zookeeper服务器。该信息推送服务中间件以与发送方通讯协议不一致的第三方短信推送接口为例,对其进行整合,实现短信推送服务。该信息推送服务中间件通过Dubbo远程调用的方式,为外部系统提供信息推送服务。
目 录
第一章 绪论 1
1.1 研究背景 1
1.2 现状分析 1
1.3 研究的内容和目标 2
1.4 论文的结构 2
第二章 相关技术分析 4
2.1 Spring框架 4
2.2 Spring MVC框架 5
2.3 Hibernate框架 6
2.4 Dubbo框架 7
2.5 MySQL数据库 8
2.6 Redis数据库 9
2.7 Zookeeper服务器 9
第三章 中间件设计 10
3.1 中间件核心及实现架构 10
3.2 第三方短信接口分析 11
3.3 唯一标识号概要设计 12
3.3.1 设计目标 13
3.3.2 功能结构描述 13
3.3.3 数据库设计 13
3.4 用户权限组概要设计 14
3.4.1 设计目标 14
3.4.2 功能结构描述 14
3.4.3 数据库设计 15
3.5管理后台功能概要设计 16
3.5.1 设计目标 16
3. *好棒文|www.hbsrm.com +Q: @351916072@
5.2 功能结构描述 16
3.5.3 数据库设计 17
3.6 短信推送服务概要设计 19
3.6.1 设计目标 19
3.6.2 功能结构描述 19
第四章 中间件实现 22
4.1 唯一标识号生成 22
4.2 管理后台详细设计与实现 26
4.3 短信推送服务模块详细设计与实现 34
第五章 中间件系统测试 39
5.1 功能性测试 39
5.2 非功能性测试 44
5.3 本章小结 44
结束语 45
致 谢 46
参考文献 47
第一章 绪论
1.1 研究背景
当前,互联网的发展日新月异,在各行各业开发的各种应用系统中,消息中间件已成为其应用重点,很多地方都能看到消息中间件的存在。在现在的应用系统开发中,选择一个合适的消息中间件来实现项目,已经越来越被开发者重视。消息中间件的诞生源于1994年IBM发布的消息队列服务MQ系列产品,其解决分布式系统异步、可靠、传输的通讯服务问题。
消息中间件是一种为应用程序之间提供数据交换能力的软件,应用程序通过存放和获取队列中的数据(消息)来进行数据传输,而不需要自己制定通信链路来连接应用程序[1]。在传统的消息中间件中,发布方通过网络传输把数据寄存到消息中间件的队列中,消息中间件等待订阅方从消息中间件的队列中获取,当消息中间件队列中的数据确认被订阅方获取,消息中间件队列中的该数据就会被消息中间件删除。队列是数据传输的通道,使用队列能实现数据的寄存,这样就能实现数据的即时或延时读取,实现消息的同步或异步传输。
消息中间件不同于传统的应用程序间的通讯,一般传统的通讯方式,通讯双方会直接依赖对方,一方出现问题将会影响另一方,不能实现通讯的异步,而通讯双方使用消息中间件作为中间对象,双方的通讯将不会再直接依赖对方,一方出现问题,不会导致另一方也出现问题,也能实现数据的同步或异步传输。
1.2 现状分析
随着消息中间件的发展,目前市场上应用比较广泛的消息中间件有ActiveMQ、RocketMQ、Kafka等,这些消息中间件都有它们自身的特点,在性能、安全性、健壮性、稳定性上都比较突出。
随着互联网的发展,各行各业的使用消息中间件越来越频繁,而重度使用消息中间件的产品,消息中间件每一次服务信息的管理和监控对产品显得特别重要,一旦某次服务出现异常,其服务信息对于分析其异常原因非常重要,特别是一些金融、军工等重要领域,而目前市面上应用比较广泛的ActiveMQ、RocketMQ、Kafka等消息中间件均存在无法快速定位、检索某次服务信息的问题,而要解决此类问题,则需改造消息中间件,使每次的消息中间件服务都返回发送方服务信息的唯一标识,并且使用数据库分门别类地存储服务信息,以达到快速定位、检索服务信息。
一般我们选用消息中间件的时候都会根据应用程序的需要而选择比较合适的消息中间件,而目前市面上的消息中间件,都是点对点进行的消息通讯,通讯双方使用的都是共同的通讯协议,意味着如果通讯双方应用程序只要其中一方无法兼容消息中间件的通讯协议的话,则消息中间件将无用武之地。市面上的这些消息中间件,通讯协议单一,如果要兼容双方不一致的通讯协议,则需对消息中间件进行改造,兼容其中一方,但目前这些消息中间件都实现复杂,这样的改造将会变得十分困难。
1.3 研究的内容和目标
本文针对消息中间件无法快速定位、检索某次服务信息以及消息中间件无法兼容通讯双方不同通讯协议的问题出发,旨在创建一个可快速定位、检索服务信息以及可快速兼容不同通讯协议方的信息推送服务中间件,该信息推送服务中间件基于现有的Spring、Hibernate、Dubbo框架以及MySQL、Redis数据库和Zookeeper服务器实现,以与发送方通讯协议不一致的第三方短信推送接口为例,对其进行整合。该信息推送服务中间件通过Dubbo远程调用的方式提供给外部系统,为外部系统接入信息推送服务中间件提供一个统一的通讯协议和接入方式,并且提供了一套服务信息持久化方案,由于中间件系统可快速接入不同通讯协议的第三方服务,因此,外部系统在使用某些第三方消息服务时,就可把第三方服务快速迁移到信息推送服务中间件,这样外部系统就避免了大量的代码侵入。在外部系统通过远程调用中间件时,中间件都会分配一个本次服务的唯一标识号,然后对服务信息以及唯一标识进行持久化,因此外部系统无需再关心信息推送过程服务的持久化,并且减少了外部系统对存储系统的依赖需求以及相关代码的编写,然而信息推送服务中间件过程中,其服务不能保证一定能成功运行,所以当出现异常时,中间件系统将会输出带有唯一标识的流水号的异常信息日志,根据流水号,开发和运维人员就能快速找到异常信息日志,准确定位问题产生的原因,进而迅速解决问题。
目 录
第一章 绪论 1
1.1 研究背景 1
1.2 现状分析 1
1.3 研究的内容和目标 2
1.4 论文的结构 2
第二章 相关技术分析 4
2.1 Spring框架 4
2.2 Spring MVC框架 5
2.3 Hibernate框架 6
2.4 Dubbo框架 7
2.5 MySQL数据库 8
2.6 Redis数据库 9
2.7 Zookeeper服务器 9
第三章 中间件设计 10
3.1 中间件核心及实现架构 10
3.2 第三方短信接口分析 11
3.3 唯一标识号概要设计 12
3.3.1 设计目标 13
3.3.2 功能结构描述 13
3.3.3 数据库设计 13
3.4 用户权限组概要设计 14
3.4.1 设计目标 14
3.4.2 功能结构描述 14
3.4.3 数据库设计 15
3.5管理后台功能概要设计 16
3.5.1 设计目标 16
3. *好棒文|www.hbsrm.com +Q: @351916072@
5.2 功能结构描述 16
3.5.3 数据库设计 17
3.6 短信推送服务概要设计 19
3.6.1 设计目标 19
3.6.2 功能结构描述 19
第四章 中间件实现 22
4.1 唯一标识号生成 22
4.2 管理后台详细设计与实现 26
4.3 短信推送服务模块详细设计与实现 34
第五章 中间件系统测试 39
5.1 功能性测试 39
5.2 非功能性测试 44
5.3 本章小结 44
结束语 45
致 谢 46
参考文献 47
第一章 绪论
1.1 研究背景
当前,互联网的发展日新月异,在各行各业开发的各种应用系统中,消息中间件已成为其应用重点,很多地方都能看到消息中间件的存在。在现在的应用系统开发中,选择一个合适的消息中间件来实现项目,已经越来越被开发者重视。消息中间件的诞生源于1994年IBM发布的消息队列服务MQ系列产品,其解决分布式系统异步、可靠、传输的通讯服务问题。
消息中间件是一种为应用程序之间提供数据交换能力的软件,应用程序通过存放和获取队列中的数据(消息)来进行数据传输,而不需要自己制定通信链路来连接应用程序[1]。在传统的消息中间件中,发布方通过网络传输把数据寄存到消息中间件的队列中,消息中间件等待订阅方从消息中间件的队列中获取,当消息中间件队列中的数据确认被订阅方获取,消息中间件队列中的该数据就会被消息中间件删除。队列是数据传输的通道,使用队列能实现数据的寄存,这样就能实现数据的即时或延时读取,实现消息的同步或异步传输。
消息中间件不同于传统的应用程序间的通讯,一般传统的通讯方式,通讯双方会直接依赖对方,一方出现问题将会影响另一方,不能实现通讯的异步,而通讯双方使用消息中间件作为中间对象,双方的通讯将不会再直接依赖对方,一方出现问题,不会导致另一方也出现问题,也能实现数据的同步或异步传输。
1.2 现状分析
随着消息中间件的发展,目前市场上应用比较广泛的消息中间件有ActiveMQ、RocketMQ、Kafka等,这些消息中间件都有它们自身的特点,在性能、安全性、健壮性、稳定性上都比较突出。
随着互联网的发展,各行各业的使用消息中间件越来越频繁,而重度使用消息中间件的产品,消息中间件每一次服务信息的管理和监控对产品显得特别重要,一旦某次服务出现异常,其服务信息对于分析其异常原因非常重要,特别是一些金融、军工等重要领域,而目前市面上应用比较广泛的ActiveMQ、RocketMQ、Kafka等消息中间件均存在无法快速定位、检索某次服务信息的问题,而要解决此类问题,则需改造消息中间件,使每次的消息中间件服务都返回发送方服务信息的唯一标识,并且使用数据库分门别类地存储服务信息,以达到快速定位、检索服务信息。
一般我们选用消息中间件的时候都会根据应用程序的需要而选择比较合适的消息中间件,而目前市面上的消息中间件,都是点对点进行的消息通讯,通讯双方使用的都是共同的通讯协议,意味着如果通讯双方应用程序只要其中一方无法兼容消息中间件的通讯协议的话,则消息中间件将无用武之地。市面上的这些消息中间件,通讯协议单一,如果要兼容双方不一致的通讯协议,则需对消息中间件进行改造,兼容其中一方,但目前这些消息中间件都实现复杂,这样的改造将会变得十分困难。
1.3 研究的内容和目标
本文针对消息中间件无法快速定位、检索某次服务信息以及消息中间件无法兼容通讯双方不同通讯协议的问题出发,旨在创建一个可快速定位、检索服务信息以及可快速兼容不同通讯协议方的信息推送服务中间件,该信息推送服务中间件基于现有的Spring、Hibernate、Dubbo框架以及MySQL、Redis数据库和Zookeeper服务器实现,以与发送方通讯协议不一致的第三方短信推送接口为例,对其进行整合。该信息推送服务中间件通过Dubbo远程调用的方式提供给外部系统,为外部系统接入信息推送服务中间件提供一个统一的通讯协议和接入方式,并且提供了一套服务信息持久化方案,由于中间件系统可快速接入不同通讯协议的第三方服务,因此,外部系统在使用某些第三方消息服务时,就可把第三方服务快速迁移到信息推送服务中间件,这样外部系统就避免了大量的代码侵入。在外部系统通过远程调用中间件时,中间件都会分配一个本次服务的唯一标识号,然后对服务信息以及唯一标识进行持久化,因此外部系统无需再关心信息推送过程服务的持久化,并且减少了外部系统对存储系统的依赖需求以及相关代码的编写,然而信息推送服务中间件过程中,其服务不能保证一定能成功运行,所以当出现异常时,中间件系统将会输出带有唯一标识的流水号的异常信息日志,根据流水号,开发和运维人员就能快速找到异常信息日志,准确定位问题产生的原因,进而迅速解决问题。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/rjgc/39.html