CN109951560A - 提高应用服务并发量及应用速度的方法、终端及存储介质 - Google Patents

提高应用服务并发量及应用速度的方法、终端及存储介质 Download PDF

Info

Publication number
CN109951560A
CN109951560A CN201910239539.5A CN201910239539A CN109951560A CN 109951560 A CN109951560 A CN 109951560A CN 201910239539 A CN201910239539 A CN 201910239539A CN 109951560 A CN109951560 A CN 109951560A
Authority
CN
China
Prior art keywords
service
application
redis
application service
concurrency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910239539.5A
Other languages
English (en)
Other versions
CN109951560B (zh
Inventor
倪秉炬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nubia Technology Co Ltd
Original Assignee
Nubia Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nubia Technology Co Ltd filed Critical Nubia Technology Co Ltd
Priority to CN201910239539.5A priority Critical patent/CN109951560B/zh
Publication of CN109951560A publication Critical patent/CN109951560A/zh
Application granted granted Critical
Publication of CN109951560B publication Critical patent/CN109951560B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种提高应用服务并发量及应用速度的方法,所述方法包括:将同一个手机厂商的所有应用所需要用到的Redis缓存服务统一为一个Redis缓存服务;更改应用服务访问Redis的方式,从HTTP接口的TCP短连接方式,更改为TCP长连接方式;当客户端的接口请求进入应用服务时,应用服务判断该请求是否需要从缓存服务获取数据,如果需要,则将请求参数封装为json数据,并建立一个线程,将参数传入该线程;所述线程通过统一的TCP长连接去Redis缓存服务获取数据,数据获取到后,通过TCP长连接返回给该线程。从而可以提高应用服务的并发量,并提高应用的响应速度,从而提高用户体验和对手机品牌的认可度。

Description

提高应用服务并发量及应用速度的方法、终端及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种提高应用服务并发量及应用速度的方法、终端及计算机可读存储介质。
背景技术
随着科学技术的不断发展,通信技术也得到了飞速的发展,电子产品的种类也越来越多,人们也享受到了科技发展带来的各种便利。现在人们可以通过各种类型的电子设备,享受随着科技发展带来的舒适生活。而为了满足用户多样化的需求,电子设备会实时接收并响应用户大量的操作请求,并返回对应的数据呈现给用户,供用户浏览,在移动设备领域,手机客户端的数量越来越多,而一个手机厂商的用户量也动辄上亿。用户在使用手机各个应用的过程中,对应用服务的并发量提出了更高的要求,当同一时间内使用应用的用户不断增加,由于应用服务并发量有限,这时候应用的使用速度和流畅度都会有一定的下降。为了提高并发量,手机厂商往往都是通过增加应用服务器的数量和带宽来实现,但是这样的成本过高。
然而,通过增加应用服务器的数量和带宽的方法存在的以下问题:
1.购买更多的应用服务器和带宽,成本过高。
2.需要动态调整应用服务器的数量,各系统的维护复杂度和成本也很高。
3.在调整应用服务器数量的过程中,仍然会有用户感受到应用的些微卡顿,影响用户体验。
因此,需要实现一套新的方案,以解决现有技术中的这些问题。
发明内容
针对上述技术问题,设计了一套提高应用服务并发量及应用速度的方案,将分布式存储方式与区块链技术结合,1.对Redis缓存服务进行改造,使其支持手机厂商的所有应用。2.实现系统配置服务,记录手机厂商所有应用服务器的地址信息和认证信息。3.改造应用服务连接Redis的各命令,将其短连接方式改造为长连接方式,省去每次访问Redis缓存服务建立连接的过程。4.在Redis底层,实现TCP长连接服务,保证与各个应用服务的连接不断开。5.引入Zookeeper服务,监控所有应用服务与Redis服务的连接情况,一旦发现由于某些异常情况断开,则进行自动重连。封装应用服务发送Redis命令的方式,提高Redis缓存服务的响应速度。
本发明旨在至少解决现有技术中存在的技术问题。为此,本发明公开了一种提高应用服务并发量及应用速度的方法,方法包括:
将同一个手机厂商的所有应用所需要用到的Redis缓存服务统一为一个Redis缓存服务;更改应用服务访问Redis的方式,从HTTP接口的TCP短连接方式,更改为TCP长连接方式。
可选地,当应用服务向Redis缓存服务请求数据时,不需要再次建立和释放TCP短连接而是直接从同一个TCP长连接中获取数据。
可选地,当客户端的接口请求进入应用服务时,应用服务判断该请求是否需要从缓存服务获取数据,如果需要,则将请求参数封装为json数据,并建立一个线程,将所述参数传入该线程。
可选地,所述线程通过统一的TCP长连接去Redis缓存服务获取数据,数据获取到后,通过TCP长连接返回给该线程。
可选地,在Redis服务器中加入Zookeeper模块监控各个长连接。
可选地,所述在Redis服务器中加入Zookeeper模块监控各个长连接,进一步包括:每个应用服务在启动时,首先在Zookeeper上注册与Redis缓存服务的连接信息,根据连接信息,Zookeeper对TCP长连接进行监控,
可选地,Zookeeper模块一旦发现连接断开,就会立即通知到应用服务,应用服务接收到Zookeeper的通知后,会立即再次建立与Redis的长连接。
可选地,在Redis缓存服务增加系统配置服务,记录手机厂商各个应用服务的信息,所述各个应用服务的信息包括应用ID、各应用服务器的IP地址,只有在系统配置中存在的信息记录时,在进行长连接时,Redis缓存服务才会接受。
本发明进一步公开了一种移动终端,所述移动终端包括处理器以及存储器;
所述存储器用于存储可执行程序;
所述处理器用于执行所述可执行程序以实现上述的提高应用服务并发量及应用速度的方法。
本发明进一步公开了一种计算机存储介质,所述计算机存储介质上存储有可执行程序,所述可执行程序被执行时以实现上述的提高应用服务并发量及应用速度的方法。
本发明的有益效果:通过上述方案,改造Redis缓存服务的访问方式,以TCP长连接替代短连接,从而省去了每次客户端请求时需要耗费的建立和断开连接的时间,另外,各个应用服务使用同一个Redis缓存服务,省去相同缓存数据的建立时间。这样,客户端使用到Redis缓存服务的请求时间都会得到一定程度上的减少,从而可以提高应用服务的并发量,并提高应用的响应速度,从而提高用户体验和对手机品牌的认可度。
附图说明
从以下结合附图的描述可以进一步理解本发明。图中的部件不一定按比例绘制,而是将重点放在示出实施例的原理上。在图中,在不同的视图中,相同的附图标记指定对应的部分。
图1为实现本发明各个实施例的移动终端的硬件结构示意图;
图2为本发明实施例提供的一种通信网络系统架构图;
图3是本发明的一种提高应用服务并发量及应用速度的方法的流程图;
图4是本发明的一个实施例中所示的方法流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。需要说明的是,结合附图所阐述的详细描述旨在作为对各种配置的描述,而不旨在表示其中可以实践本文所描述的概念的唯一配置。本文中所记载的装置实施例和方法实施例将在下面的详细描述中进行描述,并在附图中通过各种框、模块、单元、组件、电路、步骤、过程、算法等等(统称为“要素”)来予以示出。这些要素可以使用电子硬件、计算机软件或者其任意组合来实现。至于这些要素是实现为硬件还是软件,取决于特定应用和施加在整体系统上的设计约束。本发明的说明书和权利要求书以及说明书附图中的术语如果使用“第一”、“第二”等描述,该种描述是用于区别不同对象,而不是用于描述特定顺序。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
请参阅图1,其为实现本发明各个实施例的一种移动终端的硬件结构示意图,该移动终端100可以包括:RF(Radio Frequency,射频)单元101、WiFi模块102、音频输出单元103、A/V(音频/视频)输入单元104、传感器105、显示单元106、用户输入单元107、接口单元108、存储器109、处理器110、以及电源111等部件。本领域技术人员可以理解,图1中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对移动终端的各个部件进行具体的介绍:
射频单元101可用于收发信息或通话过程中,信号的接收和发送,具体的,将基站的下行信息接收后,给处理器110处理;另外,将上行的数据发送给基站。通常,射频单元101包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元101还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA2000(CodeDivision Multiple Access 2000,码分多址2000)、WCDMA(Wideband Code DivisionMultiple Access,宽带码分多址)、TD-SCDMA(Time Division-Synchronous CodeDivision Multiple Access,时分同步码分多址)、FDD-LTE(Frequency DivisionDuplexing-Long Term Evolution,频分双工长期演进)和TDD-LTE(Time DivisionDuplexing-Long Term Evolution,分时双工长期演进)等。
WiFi属于短距离无线传输技术,移动终端通过WiFi模块102可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了WiFi模块102,但是可以理解的是,其并不属于移动终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
音频输出单元103可以在移动终端100处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将射频单元101或WiFi模块102接收的或者在存储器109中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元103还可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元103可以包括扬声器、蜂鸣器等等。
A/V输入单元104用于接收音频或视频信号。A/V输入单元104可以包括图形处理器(Graphics Processing Unit,GPU)1041和麦克风1042,图形处理器1041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元106上。经图形处理器1041处理后的图像帧可以存储在存储器109(或其它存储介质)中或者经由射频单元101或WiFi模块102进行发送。麦克风1042可以在电话通话模式、记录模式、语音识别模式等等运行模式中经由麦克风1042接收声音(音频数据),并且能够将这样的声音处理为音频数据。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可经由射频单元101发送到移动通信基站的格式输出。麦克风1042可以实施各种类型的噪声消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干扰。
移动终端100还包括至少一种传感器105,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1061的亮度,接近传感器可在移动终端100移动到耳边时,关闭显示面板1061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可包括显示面板1061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1061。
用户输入单元107可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元107可包括触控面板1071以及其他输入设备1072。触控面板1071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1071上或在触控面板1071附近的操作),并根据预先设定的程式驱动相应的连接装置。触控面板1071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器110,并能接收处理器110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1071。除了触控面板1071,用户输入单元107还可以包括其他输入设备1072。具体地,其他输入设备1072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种,具体此处不做限定。
进一步的,触控面板1071可覆盖显示面板1061,当触控面板1071检测到在其上或附近的触摸操作后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板1061上提供相应的视觉输出。虽然在图1中,触控面板1071与显示面板1061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板1071与显示面板1061集成而实现移动终端的输入和输出功能,具体此处不做限定。
接口单元108用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元108可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端100和外部装置之间传输数据。
存储器109可用于存储软件程序以及各种数据。存储器109可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器109可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器110是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器109内的软件程序和/或模块,以及调用存储在存储器109内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器110可包括一个或多个处理单元;优选的,处理器110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器110中。
移动终端100还可以包括给各个部件供电的电源111(比如电池),优选的,电源111可以通过电源管理系统与处理器110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管图1未示出,移动终端100还可以包括蓝牙模块等,在此不再赘述。
为了便于理解本发明实施例,下面对本发明的移动终端所基于的通信网络系统进行描述。
请参阅图2,图2为本发明实施例提供的一种通信网络系统架构图,该通信网络系统为通用移动通信技术的LTE系统,该LTE系统包括依次通讯连接的UE(User Equipment,用户设备)201,E-UTRAN(Evolved UMTS Terrestrial Radio Access Network,演进式UMTS陆地无线接入网)202,EPC(Evolved Packet Core,演进式分组核心网)203和运营商的IP业务204。
具体地,UE201可以是上述终端100,此处不再赘述。
E-UTRAN202包括eNodeB2021和其它eNodeB2022等。其中,eNodeB2021可以通过回程(backhaul)(例如X2接口)与其它eNodeB2022连接,eNodeB2021连接到EPC203,eNodeB2021可以提供UE201到EPC203的接入。
EPC203可以包括MME(Mobility Management Entity,移动性管理实体)2031,HSS(Home Subscriber Server,归属用户服务器)2032,其它MME2033,SGW(Serving Gate Way,服务网关)2034,PGW(PDN Gate Way,分组数据网络网关)2035和PCRF(Policy andCharging Rules Function,政策和资费功能实体)2036等。其中,MME2031是处理UE201和EPC203之间信令的控制节点,提供承载和连接管理。HSS2032用于提供一些寄存器来管理诸如归属位置寄存器(图中未示)之类的功能,并且保存有一些有关服务特征、数据速率等用户专用的信息。所有用户数据都可以通过SGW2034进行发送,PGW2035可以提供UE 201的IP地址分配以及其它功能,PCRF2036是业务数据流和IP承载资源的策略与计费控制策略决策点,它为策略与计费执行功能单元(图中未示)选择及提供可用的策略和计费控制决策。
IP业务204可以包括因特网、内联网、IMS(IP Multimedia Subsystem,IP多媒体子系统)或其它IP业务等。
虽然上述以LTE系统为例进行了介绍,但本领域技术人员应当知晓,本发明不仅仅适用于LTE系统,也可以适用于其他无线通信系统,例如GSM、CDMA2000、WCDMA、TD-SCDMA以及未来新的网络系统等,此处不做限定。
基于上述移动终端硬件结构以及通信网络系统,提出本发明方法各个实施例。
实施例一
如图3所示的一种提高应用服务并发量及应用速度的方法,所述方法包括:
步骤S101,将同一个手机厂商的所有应用所需要用到的Redis缓存服务统一为一个Redis缓存服务;
步骤S102,更改应用服务访问Redis的方式,从HTTP接口的TCP短连接方式,更改为TCP长连接方式;
步骤S103,当客户端的接口请求进入应用服务时,应用服务判断该请求是否需要从缓存服务获取数据,如果需要,则将请求参数封装为json数据,并建立一个线程,将参数传入该线程;
步骤S104,所述线程通过统一的TCP长连接去Redis缓存服务获取数据,数据获取到后,通过TCP长连接返回给该线程。
更进一步地,所述方法还包括:
步骤S105,为了保证应用服务与Redis缓存服务的TCP长连接不断开,在Redis服务器中加入Zookeeper模块监控各个长连接。
更进一步地,步骤5还包括:每个应用服务在启动时,首先在Zookeeper上注册与Redis缓存服务的连接信息,根据连接信息,Zookeeper对TCP长连接进行监控,一旦发现连接断开,就会立即通知到应用服务,应用服务接收到Zookeeper的通知后,会立即再次建立与Redis的长连接。
更进一步地,在Redis缓存服务增加系统配置服务,记录手机厂商各个应用服务的信息,包括应用ID、各应用服务器的IP地址,只有在系统配置中存在的信息,在进行长连接时,Redis缓存服务才会接受。
在本实施例中客户端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal DigitalAssistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU回收、事务以及不同级别磁盘持久化功能,同时通过RedisSentinel提供高可用,通过Redis Cluster提供自动分区。
Redis集群是一种可以令数据在多个Redis节点之间进行传输的设施,通常用作构建分布式缓存。
Redis集群的优势主要集中在以下两个方面:
1.自动分割数据到不同的节点
2.部分节点宕机或不可达的情况下,能够继续处理命令。
每个节点都需要保持两个TCP端口处于打开状态,其中一个用于与客户端进行交互,另一个用于集群内部节点之间传输信息。这两个连接的端口号的差值默认为10000,例如第一个端口号为6379,则另外一个为16379。第二个端口用于集群链接(cluster bus),这是一种使用一个二进制协议来进行点对点(node-to-node)交互的通道。集群链接用户宕机检测,配置更新,失效备援(failover)认证等等。客户端永远都不需要试图通过集群链接端口进行交互,而应当通过普通的Redis命令端口。哈希槽是Redis集群中的一个重要的概念,它其实就是代表这一个keys的集合。Redis集群共有16384个哈希槽,每个key通过CRC16校验然后对16384进行取模来决定该key应当被放到哪个槽中。
Zookeeper是一个开放源码的分布式服务协调组件,是Google Chubby的开源实现,是一个高性能的分布式数据一致性解决方案。它把复杂的分布式进行了简化、并把容易出错的一致性服务巧妙地进行封装,然后暴露一些简化后的接口供用户调用。Zookeeper它解决了分布式数据的一致性问题,提供了顺序一致性、原子性、单一视图、可靠性、实时性等。
客户端通过HTTP接口调用服务器的请求,然后服务器为了提高接口的响应速度,往往会使用Redis缓存服务,将接口的响应结果保存在缓存服务中,然后响应接口请求时,从Redis缓存服务将结果取出返回给客户端。取值的过程中,应用服务器也是通过HTTP接口调用Redis缓存服务的命令实现的,这种调用都是通过TCP短连接的方式实现。当客户端的请求并发量非常巨大时,每次应用服务器建立和释放TCP短连接的耗时累加起来就是一个非常巨大的值,会降低应用服务的并发量以及应用的使用速度。
该方案首先将同一个手机厂商的所有应用所需要用到的Redis缓存服务统一为一个Redis缓存服务,这样可以降低系统的维护成本,并提高维护效率。当某些应用使用到相同的缓存时,就可以节省缓存服务的成本,并减少缓存数据的建立时间,从而提高缓存的获取速度。
实施例二
在本实施例中,进一步公开了一种提高应用服务并发量及应用速度的系统,所述系统包括:Redis缓存服务器组,同一个手机厂商的所有应用所需要用到的Redis缓存服务统一到一个Redis缓存服务组;连接单元,更改所述手机厂商所生产的客户端的应用服务访问Redis服务器组的方式,并从HTTP接口的TCP短连接方式,更改为TCP长连接方式;判断与封装单元,当客户端的接口请求进入应用服务时,应用服务判断该请求是否需要从缓存服务获取数据,如果需要,则将请求参数封装为json数据,并建立一个线程,将参数传入该线程;线程传输单元,所述线程通过统一的TCP长连接去Redis缓存服务器组获取数据,数据获取到后,通过TCP长连接返回给该线程。
更进一步地,所述系统还包括:
监控单元,为了保证应用服务与Redis缓存服务的TCP长连接不断开,在Redis服务器组中加入Zookeeper模块监控各个长连接。
更进一步地,所述监控单元还包括:每个应用服务在启动时,首先在Zookeeper上注册与Redis缓存服务的连接信息,根据连接信息,Zookeeper对TCP长连接进行监控,一旦发现连接断开,就会立即通知到应用服务,应用服务接收到Zookeeper的通知后,会立即再次建立与Redis的长连接。
更进一步地,所述系统进一步包括:系统配置服务单元,在Redis缓存服务增加系统配置服务,记录手机厂商各个应用服务的信息,包括应用ID、各应用服务器的IP地址,只有在系统配置中存在的信息,在进行长连接时,Redis缓存服务才会接受。
服务发现机制是以最大限度提高资源和服务的访问有用性及有效性的解决方案,包括资源和服务的注册、访问、管理和维护。服务发现记录了大规模分布式系统中所有服务的信息,是服务框架所面临的一个基础问题。高效的服务发现机制是衡量服务框架好坏的标志之一。服务状态一般包括上线、下线、重新上线、异常等。服务状态维护是指由系统识别并跟踪服务的状态变化,根据状态的变化触发相应的处理逻辑,使得系统各参与方对服务状态变化进行感知。传统的服务状态维护方式一般是通过轮询,即由服务提供者周期性地向注册中心汇报自身状态,或注册中心周期性地向服务提供者探测状态,再由服务调用者周期性地向注册中心检查服务提供者的状态,然而这种仅依靠“轮询方式”维护服务状态,存在以下问题,其一,状态实时性存在一定局限性。轮询间隔期间,存在延时间隙。当某服务A不可用时,在下一次服务调用者想要调用服务A时,由于服务调用者无法及时感知服务A的状态更新,继续调用将导致这段期间内对A的服务调用错误;其二,服务调用的稳定性依赖于注册中心。第三方的注册中心可能由于自身的软件bug或网络环境等原因,容易出现不稳定的情况。而服务提供者和服务调用者因时刻维护服务状态,两者均与注册中心交互频繁,这样容易导致服务调用的可靠性受限于第三方组件。而Redis是一个基于内存的高性能的Key-value数据库,并且所有操作都是原子性的,每个数据中心设有用于缓存应用服务集群的数据的Redis集群。服务集群通过心跳包来实现掉线检测,保持与APP的长连接,通过Redis集群来管理会话。其中,设置轮询间隔期间可以保持与APP的长连接,
通过长连接的方式与客户端连接通信,客户端可以请求服务端也可以实时向服务端发送信息,相反服务端也可以请求客户端实时向客户端发送信息。
客户端的应用的信息与服务器存在对应关系,其中的关系例如以日志型哈希完整性检测,通过ID直接获取服务器需要处理的服务集合。
所述监控单元,配置服务器具体可以是Zookeeper服务器,其作为配置服务器存储了推送服务器的服务信息,例如,IP端口号、服务类型、和/或在线状态等,这里仅是举例说明,不具有任何限定作用。至少一个推送服务器将其提供的服务类型和端口号注册到Zookeeper服务器,而网关服务器则从Zookeeper服务器获取推送服务器的服务信息,将用户登录信息上报给推送服务器,其中,Zookeeper服务器一般配置三到五台的业务服务器组成集群,具有容灾能力,保证服务稳定可用,下面将结合具体实施例进行详细介绍:私有部署一份配置中心服务,客户端可以通过Socket连接或者Zookeeper的Watcher机制,监听服务端的配置变化。
实施例三
一种提高应用服务并发量及应用速度的方法,所述方法包括:
步骤1,将同一个手机厂商的所有应用所需要用到的Redis缓存服务统一为一个Redis缓存服务;
步骤2,更改应用服务访问Redis的方式,从HTTP接口的TCP短连接方式,更改为TCP长连接方式;
步骤3,当客户端的接口请求进入应用服务时,应用服务判断该请求是否需要从缓存服务获取数据,如果需要,则将请求参数封装为json数据,并建立一个线程,将参数传入该线程;
步骤4,所述线程通过统一的TCP长连接去Redis缓存服务获取数据,数据获取到后,通过TCP长连接返回给该线程。
更进一步地,所述方法还包括:
步骤5,为了保证应用服务与Redis缓存服务的TCP长连接不断开,在Redis服务器中加入Zookeeper模块监控各个长连接。
更进一步地,步骤5还包括:每个应用服务在启动时,首先在Zookeeper上注册与Redis缓存服务的连接信息,根据连接信息,Zookeeper对TCP长连接进行监控,一旦发现连接断开,就会立即通知到应用服务,应用服务接收到Zookeeper的通知后,会立即再次建立与Redis的长连接。
更进一步地,在Redis缓存服务增加系统配置服务,记录手机厂商各个应用服务的信息,包括应用ID、各应用服务器的IP地址,只有在系统配置中存在的信息,在进行长连接时,Redis缓存服务才会接受。
本发明进一步公开了一种提高应用服务并发量及应用速度的系统,所述系统包括:Redis缓存服务器组,同一个手机厂商的所有应用所需要用到的Redis缓存服务统一到一个Redis缓存服务组;连接单元,更改所述手机厂商所生产的客户端的应用服务访问Redis服务器组的方式,并从HTTP接口的TCP短连接方式,更改为TCP长连接方式;判断与封装单元,当客户端的接口请求进入应用服务时,应用服务判断该请求是否需要从缓存服务获取数据,如果需要,则将请求参数封装为json数据,并建立一个线程,将参数传入该线程;线程传输单元,所述线程通过统一的TCP长连接去Redis缓存服务器组获取数据,数据获取到后,通过TCP长连接返回给该线程。
更进一步地,所述系统还包括:
监控单元,为了保证应用服务与Redis缓存服务的TCP长连接不断开,在Redis服务器组中加入Zookeeper模块监控各个长连接。
更进一步地,所述监控单元还包括:每个应用服务在启动时,首先在Zookeeper上注册与Redis缓存服务的连接信息,根据连接信息,Zookeeper对TCP长连接进行监控,一旦发现连接断开,就会立即通知到应用服务,应用服务接收到Zookeeper的通知后,会立即再次建立与Redis的长连接。
更进一步地,所述系统进一步包括:系统配置服务单元,在Redis缓存服务增加系统配置服务,记录手机厂商各个应用服务的信息,包括应用ID、各应用服务器的IP地址,只有在系统配置中存在的信息,在进行长连接时,Redis缓存服务才会接受。
本实施例还公开了一种电子装置,包括:
处理器;以及,
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述的提高应用服务并发量及应用速度的方法。
本实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的提高应用服务并发量及应用速度的方法。
客户端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
客户端通过HTTP接口调用服务器的请求,然后服务器为了提高接口的响应速度,往往会使用Redis缓存服务,将接口的响应结果保存在缓存服务中,然后响应接口请求时,从Redis缓存服务将结果取出返回给客户端。取值的过程中,应用服务器也是通过HTTP接口调用Redis缓存服务的命令实现的,这种调用都是通过TCP短连接的方式实现。当客户端的请求并发量非常巨大时,每次应用服务器建立和释放TCP短连接的耗时累加起来就是一个非常巨大的值,会降低应用服务的并发量以及应用的使用速度。
该方案首先将同一个手机厂商的所有应用所需要用到的Redis缓存服务统一为一个Redis缓存服务,这样可以降低系统的维护成本,并提高维护效率。当某些应用使用到相同的缓存时,就可以节省缓存服务的成本,并减少缓存数据的建立时间,从而提高缓存的获取速度。
然后需要改造应用服务访问Redis的方式,从HTTP接口的TCP短连接方式,改造为TCP长连接方式。即某个应用服务每次向Redis缓存服务请求数据时,都不需要再次建立和释放TCP短连接,而是直接从同一个TCP长连接中获取数据即可。应用服务在启动时,首先会建立与Redis缓存服务的长连接,并保持连接不断开。当客户端的接口请求进入应用服务时,应用服务判断该请求是否需要从缓存服务获取数据,如果需要,则将请求参数封装为json数据,并建立一个线程,将参数传入该线程。然后该线程通过统一的TCP长连接去Redis缓存服务获取数据,数据获取到后,通过TCP长连接返回给该线程。
为了保证应用服务与Redis缓存服务的TCP长连接不断开,引入Zookeeper监控各个长连接。每个应用服务在启动时,首先在Zookeeper上注册与Redis缓存服务的连接信息,根据连接信息,Zookeeper对TCP长连接进行监控,一旦发现连接断开,就会立即通知到应用服务。应用服务接收到Zookeeper的通知后,会立即再次建立与Redis的长连接。
同时,为了保证Redis缓存服务各长连接的安全性。引入系统配置服务,记录手机厂商各个应用服务的信息,包括应用ID、各应用服务器的IP地址等,只有在系统配置中存在的信息,在进行长连接时,Redis缓存服务才会接受。
本实施例中,进一步地,优化了网络通信模块,改变了传统网络库中单IO线程的方式,实现了多核下的Reactor模型,即多IO线程配合线程池的模式。对于应用层缓存的进行了优化,减少系统调用以及利用了临时栈空间,这样能够提高系统的网络吞吐量以及降低延迟;
为了提高系统的可用性引入了2个开源组件ZooKeeper、Redis,ZooKeeper解决了分布式系统中的命名、分布式锁、负载均衡、协调等一致性问题,Redis作为内存数据库加载系统中的热点数据,来缓解传统磁盘数据库的压力,这样的改进增加了系统的吞吐以及降低延迟,由于Redis是以集群的方式部署在系统中,也保证了系统的可用性以及性能。
任务可以在不同节点移动,从而实现负载均衡,由于slave可以动态的添加,由master来监视slave节点并且实现简单的负载均衡策略,这样就保证了系统的伸缩性。
数据服务为整个系统提供数据服务,属于分布式数据架构,是逻辑集中的实体,在集群中多台机器上进行数据分区,通过对多台机器上不同数据分区的控制,就可以实现负载均衡以及伸缩性。
通过上述方案,改造Redis缓存服务的访问方式,以TCP长连接替代短连接,从而省去了每次客户端请求时需要耗费的建立和断开连接的时间,另外,各个应用服务使用同一个Redis缓存服务,省去相同缓存数据的建立时间。这样,客户端使用到Redis缓存服务的请求时间都会得到一定程度上的减少,从而可以提高应用服务的并发量,并提高应用的响应速度,从而提高用户体验和对手机品牌的认可度。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。因此,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以下权利要求(包括所有等同物)旨在限定本发明的精神和范围。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

Claims (10)

1.一种提高应用服务并发量及应用速度的方法,其特征在于,所述方法包括:
将同一个手机厂商的所有应用所需要用到的Redis缓存服务统一为一个Redis缓存服务;更改应用服务访问Redis的方式,从HTTP接口的TCP短连接方式,更改为TCP长连接方式。
2.如权利要求1所述的一种提高应用服务并发量及应用速度的方法,其特征在于,当应用服务向Redis缓存服务请求数据时,不需要再次建立和释放TCP短连接而是直接从同一个TCP长连接中获取数据。
3.如权利要求2所述的一种提高应用服务并发量及应用速度的方法,其特征在于,当客户端的接口请求进入应用服务时,应用服务判断该请求是否需要从缓存服务获取数据,如果需要,则将请求参数封装为json数据,并建立一个线程,将所述参数传入该线程。
4.如权利要求3所述的一种提高应用服务并发量及应用速度的方法,其特征在于,所述线程通过统一的TCP长连接去Redis缓存服务获取数据,数据获取到后,通过TCP长连接返回给该线程。
5.如权利要求4所述的一种提高应用服务并发量及应用速度的方法,其特征在于,在Redis服务器中加入Zookeeper模块监控各个长连接。
6.如权利要求1-5中任一项所述的一种提高应用服务并发量及应用速度的方法,其特征在于,所述在Redis服务器中加入Zookeeper模块监控各个长连接,进一步包括:每个应用服务在启动时,首先在Zookeeper上注册与Redis缓存服务的连接信息,根据连接信息,Zookeeper对TCP长连接进行监控。
7.如权利要求6所述的一种提高应用服务并发量及应用速度的方法,其特征在于,Zookeeper模块一旦发现连接断开,就会立即通知到应用服务,应用服务接收到Zookeeper的通知后,会立即再次建立与Redis的长连接。
8.如权利要求7所述的一种提高应用服务并发量及应用速度的方法,其特征在于,在Redis缓存服务增加系统配置服务,记录手机厂商各个应用服务的信息,所述各个应用服务的信息包括应用ID、各应用服务器的IP地址,只有在系统配置中存在的信息记录时,在进行长连接时,Redis缓存服务才会接受。
9.一种移动终端,其特征在于,所述移动终端包括处理器以及存储器;
所述存储器用于存储可执行程序;
所述处理器用于执行所述可执行程序以实现如权利要求1-8任一项所述的提高应用服务并发量及应用速度的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有可执行程序,所述可执行程序被执行时以实现如权利要求1-8任一项所述的提高应用服务并发量及应用速度的方法。
CN201910239539.5A 2019-03-27 2019-03-27 提高应用服务并发量及应用速度的方法、终端及存储介质 Active CN109951560B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910239539.5A CN109951560B (zh) 2019-03-27 2019-03-27 提高应用服务并发量及应用速度的方法、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910239539.5A CN109951560B (zh) 2019-03-27 2019-03-27 提高应用服务并发量及应用速度的方法、终端及存储介质

Publications (2)

Publication Number Publication Date
CN109951560A true CN109951560A (zh) 2019-06-28
CN109951560B CN109951560B (zh) 2023-11-14

Family

ID=67012036

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910239539.5A Active CN109951560B (zh) 2019-03-27 2019-03-27 提高应用服务并发量及应用速度的方法、终端及存储介质

Country Status (1)

Country Link
CN (1) CN109951560B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110493030A (zh) * 2019-07-05 2019-11-22 中国平安财产保险股份有限公司 网络优化方法、装置、计算机设备及存储介质
CN114064149A (zh) * 2021-11-22 2022-02-18 首约科技(北京)有限公司 一种服务启动请求失败的降低方法
CN114095559A (zh) * 2021-11-17 2022-02-25 北京同城必应科技有限公司 一种在长连接高并发下场景下解决在线状态存储一致性的解决方案

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917490A (zh) * 2010-09-16 2010-12-15 北京开心人信息技术有限公司 一种读取缓存数据的方法及系统
WO2016070373A1 (zh) * 2014-11-06 2016-05-12 北京安奇智联科技有限公司 用于在移动设备和web终端之间进行同步预览显示的方法
CN106210117A (zh) * 2016-08-01 2016-12-07 浪潮软件股份有限公司 一种通过云端缓存实现的高性能服务架构
CN106897299A (zh) * 2015-12-17 2017-06-27 阿里巴巴集团控股有限公司 一种数据库访问方法及装置
CN108289055A (zh) * 2018-01-05 2018-07-17 创盛视联数码科技(北京)有限公司 一种基于Redis订阅服务的分布式实时聊天系统及方法
US20180267969A1 (en) * 2010-09-28 2018-09-20 Redis Labs Ltd. Systems, methods, and media for managing an in-memory nosql database

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917490A (zh) * 2010-09-16 2010-12-15 北京开心人信息技术有限公司 一种读取缓存数据的方法及系统
US20180267969A1 (en) * 2010-09-28 2018-09-20 Redis Labs Ltd. Systems, methods, and media for managing an in-memory nosql database
WO2016070373A1 (zh) * 2014-11-06 2016-05-12 北京安奇智联科技有限公司 用于在移动设备和web终端之间进行同步预览显示的方法
CN106897299A (zh) * 2015-12-17 2017-06-27 阿里巴巴集团控股有限公司 一种数据库访问方法及装置
CN106210117A (zh) * 2016-08-01 2016-12-07 浪潮软件股份有限公司 一种通过云端缓存实现的高性能服务架构
CN108289055A (zh) * 2018-01-05 2018-07-17 创盛视联数码科技(北京)有限公司 一种基于Redis订阅服务的分布式实时聊天系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
牵小柴散步: "分布式缓存Redis应用场景解析", 《百度TTPS://BBS.HUAWEICLOUD.COM/BLOGS/102482》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110493030A (zh) * 2019-07-05 2019-11-22 中国平安财产保险股份有限公司 网络优化方法、装置、计算机设备及存储介质
CN114095559A (zh) * 2021-11-17 2022-02-25 北京同城必应科技有限公司 一种在长连接高并发下场景下解决在线状态存储一致性的解决方案
CN114064149A (zh) * 2021-11-22 2022-02-18 首约科技(北京)有限公司 一种服务启动请求失败的降低方法

Also Published As

Publication number Publication date
CN109951560B (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
CN104639672B (zh) 进行域名解析的方法和装置
CN111416845B (zh) 一种配置边缘设备的方法、装置及存储介质
CN108509299B (zh) 消息处理方法、设备及计算机可读存储介质
CN114048046B (zh) 一种服务的调用方法、装置及负载均衡设备
CN107133297A (zh) 数据交互方法、系统及计算机可读存储介质
CN107135128B (zh) 调用链数据采集方法、移动终端及计算机可读存储介质
CN109951560A (zh) 提高应用服务并发量及应用速度的方法、终端及存储介质
CN108881184A (zh) 访问请求处理方法、终端、服务器及计算机可读存储介质
CN108566304A (zh) 接口控制方法、电子设备及计算机可读存储介质
CN108768775A (zh) 信息处理方法、电子设备及计算机存储介质
CN107528825A (zh) 一种资源下载方法、终端及计算机可读存储介质
CN109766080A (zh) 微服务注册方法、装置、电子设备及可读存储介质
CN109905380A (zh) 一种分布式系统中的节点控制方法和相关装置
CN107172197A (zh) 一种业务处理方法、系统及设备
CN107786424A (zh) 音视频通信方法、终端及服务器
CN109144705A (zh) 应用程序管理方法、移动终端及计算机可读存储介质
CN108600516A (zh) 数据采集方法、移动终端及计算机可读存储介质
CN107135156A (zh) 调用链数据采集方法、移动终端及计算机可读存储介质
WO2014206331A1 (zh) 一种资源访问方法和计算机设备
CN108846051A (zh) 数据处理方法、装置及计算机可读存储介质
CN108011937A (zh) 消息推送方法、服务器、智能终端及计算机可读存储介质
CN108449736A (zh) 一种数据传输方法、终端和计算机可读存储介质
CN109728952A (zh) 一种通信方法、移动终端以及计算机可读存储介质
CN108306856A (zh) 一种接口合并方法、客户端、服务器及计算机可读存储介质
CN108509586A (zh) 缓存管理的方法、装置及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant