基于Netty框架的高并发量推送服务

 2022-02-06 07:02

论文总字数:23648字

摘 要

本文基于Netty框架,设计一种高并发量的推送模式框架,为应用程序实现推送提供一种实施方案。

本设计分为三个部分:应用服务商部分、中间转发部分和客户端接收部分,分别为服务提供商、推送服务器、客户端提供另一种解决方案,三个部分协作,实现应用服务提供商推送信息给客户端。

本设计还设计了本地缓存系统和中间转发部分的通信系统,并运用Redis、ZooKeeper等主流技术和Netty、Thrift等框架,实现了推送个人消息、推送离线消息、推送公共消息三个功能,利用服务发现,动态地创建连接,以避免由于服务器宕机引起的服务关闭问题和繁琐的配置。

本设计框架扩展性好,易于开发,具有高并发、分布式中间转发部分、弹性分配服务器资源的特点。

关键词:Netty,高并发,推送服务,分布式

A HIGH-CONCURRENCY PUSH SERVICE BASED ON FRAMEWORK NETTY

Abstract

This paper designs a high-concurrency push service framework based on framework Netty for application service to provide a implementation to push content.

This design contains three parts: Service Provider Part, Intermediate Retransmission Part and Client Part. Service Provider Part is designed for application service provider, Intermediate Retransmission Part for push service and Client Part for client. With hree parts’s cooperation we can implement that application service servers push content to client..

This design also includes a local caching system and the network in Intermediate. It implements to push personal message, to push offline message and to push common message to user with the design of local caching and the network between Dispatcher Part and Sender Part and usage of technique of Redis, ZooKeeper and framework of Netty, Thrift. And it uses service discovery to create connection to avoid the problem server’s crash brings and tedious configuration.

This framework has Good scalability and is easy to develop with. It has the following features: high concurrency, distributed intermediate retransmission part and flexible allocation of server resources.

KEYWORDS: Netty, high-concurrency, push service, distribution

目录

摘要 2

Abstract 2

第一章 绪论 6

1.1 引言 6

1.2 现有推送方式 6

1.3 现有推送框架研究 7

1.4 研究目的和主要内容 8

第二章 推送服务整体框架 9

2.1 应用服务商部分 9

2.2 中间转发部分 10

2.2.1 调度部分 11

2.2.2 发送部分 15

2.3 客户端接收部分 17

第三章 数据传输 19

3.1 推送过程 19

3.2 拉取过程 20

第四章 相关设计 22

4.1 Redis部分 22

4.2 本地缓存 22

4.3 数据库设计 25

4.4 调度部分与发送部分间通信 25

4.5 ZooKeeper设计 28

第五章 使用的技术 29

5.1 Thrift框架 29

5.2 Netty框架 29

5.3 Redis 29

5.4 MySQL 30

5.5 ZooKeeper 30

第六章 结果与讨论 31

结论 33

致谢 34

参考文献 35

绪论

引言

如今互联网时代,互联网已经渗透进生活的方方面面,我们的生活已经离不开互联网了。在互联网中,无线互联网扮演着重要的角色,手机在网民的上网设备中的比重越来越大。同时,人们对信息的依赖越来越强烈,信息获取方式成为了一个热门的研究课题。

目前,通过无线网络获取信息的方式主要有两种:拉取和推送。

拉取模式中,信息获取是由用户请求或建立通信流。这种模式要求用户扮演主动的角色,重复请求来获取新的信息。拉取模式比较符合计算机网络的模式,其实现也相对比较简单,然而,有些信息的获取并不适合拉取模式。

推送模式中,信息由数据源或网络基础设施负责通信。用户只需要选择合适的通信流。推送服务能够以合适的方式在合适的时候推送合适的内容给合适的人。推送模式更能满足人们对信息获取需要,但是比较难实现。

现有推送方式

不同的操作系统有不同的实现推送的方法。

Android的实现方法主要有这几种:GCM服务、XMPP协议、MQTT协议和第三方推送服务。GCM是Google推出的云推送消息服务,但是在国内不稳定,受限颇多;MPP协议是基于标准通用标记语言的子集XML的协议,实现多个网络实体之间的结构化可扩展数据的近实时交换;MPP协议成熟,可扩展性强,但是费流量费电。

IOS的主要实现方法是APNS服务。APNS先对用户进行物理连接认证和设备令牌认证,然后接收并保存服务器信息,查找设备后将信息发送给相应设备。

Windows Phone的实现方式是微软提供的MPNS服务,主要有三种推送技术:toast,tile和raw notifications。

黑莓手机则是使用黑莓提供的BBPS。推送服务器的推送初始化器无需等待手机应用的请求就能通过黑莓服务器、黑莓网络服务或黑莓设备服务推送8KB的内容。[1]

由于智能手机的普及,用户和服务提供商对推送服务的需求日益增大。目前,Android平台的推送服务由于没有统一的规定和方式,各家服务提供商往往自己开发研究推送服务。研究出一种普适性、易用性强的推送服务可以为应用开发带来很大的便利,为用户带来更好的用户体验。

现有推送框架研究

目前推送框架研究较多,此处以三个典型框架为例说明。

剩余内容已隐藏,请支付后下载全文,论文总字数:23648字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;