如何提高推送的到达率

如何提高推送的到达率,第1张

为了提高用户体验,现在大多数的应用都会增加推送功能,目前主流的第三方推送有 个推、mi push、百度、Jpush、极光等,但是 推送的到达率却是不尽人意的 ,拿个推而言,服务器这边统计的结果是到达率仅有90%(仅做参考)。当然了还有官方的推送Google Cloud Messaging,可惜在国内然并卵,暂不做讨论。

推送到达率问题的解决是刻不容缓的 ,因为在目前互联网大用户量的场景下,10%的用户数还是相当大的。

我们知道,推送的技术原理主要是保持网络的长连接,在TCP长连接建立成功的基础上,推送不能如期到达的原因主要和网络状况有关,比如网络慢、丢包等等,这个是所有网络访问遇到的问题,不是导致推送到达率如此低的主要原因。

那么,其最主要原因是什么呢?显然是TCP长连接持续保持这个前提未能得到保证,也就是:
推送时,移动端未在线

现在我们找到了其原因所在,那么要解决这个问题,就要从两方面入手:

其实也就是我们常说的 进程保活 ,可以创建一个幽灵进程进行保活 *** 作,也可以直接用应用主进程进行保活,用这个进程中建立TCP连接,保证其存活的最大时长。方案主要以下几种:

注意:
保证移动端在线确实能有效的提高推送的到达率,但是需要注意频繁的唤醒应用会导致应用耗电量的增加,所以要把握一定的度。

监听系统事件广播来唤醒应用,常用的广播有:

注意:

该方案是应用范围最最广泛的一种手段,主要是启动一个前台service,并利用系统漏洞避免其在通知栏处显示Notification。这样既能保证进程的优先级高于普通后台进程,又将用户感知降到最低。

思路:

adb shell dumpsys activity services 查看结果看到前台service已经启动,但在通知栏里并未显示

当然了,我们可以结合上面这两个方案:
创建一个广播 DaemonReceiver ,该广播监听某些系统事件广播,在广播处理中启动 DaemonService

鉴于当app被杀死后是监听不到系统广播的,而我们还需要保持 DaemonService 以确保推送TCP连接的建立,那我们可以在 DaemonService 的 onDestroy() 中启动一个新的service DaemonReStartService , 在 DaemonReStartService 中来重新启动 DaemonService 。

Android中的应用就是这么一步步被玩的卡的不要不要的,所以请谨慎使用。

流程如下:

不以用户利益为出发点的手段都是耍流氓。
进程保活必定导致应用一直保持唤醒状态一直在后台运行,不可避免的导致耗电量增加;发送回执消息则会额外消耗用户流量(可以考虑一段时间内的回执消息合并后统一发送),服务器保存每条推送记录可能会导致服务器压力过大。
所以,在尽可能保证用户到达率的情况下,也要考虑节能和流量,和使用设计模式一样,凡事皆有度,万事不可过。

说白了,Oracle License就是一张纸,一张许可证。这跟许多软件产品是一样的,有没有许可证的产品在功能上是没有区别的,仅仅是一个法律问题。也就是说,随便到网上下的Oracle都可以免费正常使用,只不过这个使用是有区别的,如果是测试或研发,那没关系,随便用;如果是用于商业用途,那就是违法的了,Oracle公司有权起诉!
与免费的下载版本不同,正式版的Oracle在购买后,用户会得到一个产品服务码,凭此Oracle服务码,可以得到Oracle的在线升级等服务,Oracle的服务分为好多级,不同级别提供相对应的在线或是现场服务。
现在Oracle有两种授权方式,按CPU(Process)数和按用户数(NamedUser Plus)。前一种方式一般用于用户数不确定或者用户数量很大的情况,典型的如互联网环境,而后一种则通常被用于用户数确定或者较少的情况。
按CPU:License数=CPU数系数。系数来自Oracle的一个参数表,如IBM Power6的处理器为1,AMD和Intel的处理器为05,详细情况见下:
参数
处理器型号
025
Sun UltraSPARC T1 处理器
050
Sun UltraSPARC T1处理器
050
Intel、AMD处理器
050
Sun UltraSPARC T2+ 处理器
100
IBM POWER6、POWER7 处理器
075
其他多核处理器
100
单核处理器
则根据公式可以算出,一个SUN UltraSparc T1的48核处理器需要48025=8个CPU licenses
按用户数:Oracle数据库按照用户数授权,是指最终端的连接到Oracle数据库的用户数。按照用户数来买的时候只能用于一个系统,不允许在多台机器上安装。每一个访问Oracle数据库的用户,无论是自然人还是设备,都算作一个用户 (Named User)。如果是B/S架构,那么是指连接到中间件上的用户数。
Named User Plus: is defined as anindividual authorized by you to use the programs which are installed on a singleserver or multiple servers, regardless of whether the individual is activelyusing the programs at any given time A non human operated device will becounted
按用户数购买则对应相应的产品有对应的License的最低购买量限制,如下:
产品
最低License数
Oracle Database Standard Edition ONE
5 Named User Plus licenses
Oracle Database Standard Edition
5 Named User Plus licenses
Oracle Database Enterprise Edition
25 Named User Plus licenses per CPU
Oracle Application Server Standard Edition ONE
5 Named User Plus licenses
All other Oracle Application Server products
10 Named User Plus licenses per CPU
当然用户应该根据自己的实际用户数订购,且不少于相应版本所要求的最低用户数。
一般情况下,1CPU的费用约等于50user的费用,所以如果用户数>CPU数系数50,则按CPU订购反而更为经济。
更换服务器,OracleLicense要重新购买吗?
如果用户是按照用户数购买的Oracle,更改硬件不需要重新购买License;
如果是按照CPU个数买,有相应的换算方法,具体请咨询Oracle公司。
这里是Oracle 11g企业版的销售价格:
每个License还有有效期的分类(不论是User License还是CPU License),分别为:1年、2年、3年、4年、5年、永久。当然价格也是依次增加。
当前Oracle 11G的User License无限使用期的价格为人民币3千5左右,按50个User License无限使用期的购买量则价格为175万;每个CPU License无限使用期的价格为17万9千,按IBM小机的系数计算,则购买价格为17万9千,和50个User License的价格相近。
关于服务价格:一般地,购买Oracle的License都包含首年的服务费,以后的费用按每年原价的22%计算。
更多的产品价格可以访问>一、概述
交换技术是一个具有简化、低价、高性能和高端口密集特点的交换产品,体现了桥接技术的复杂交换技术在OSI参考模型的第二层作。与桥接器一样,交换机按每一个包中的MAC地址相对简单地决策信息转发。而这种转发决策一般不考虑包中隐藏的更深的其他信息。与桥接器不同的是交换机转发延迟很小,作接近单个局域网性能,远远超过了普通桥接互联网络之间的转发性能。
交换技术允许共享型和专用型的局域网段进行带宽调整,以减轻局域网之间信息流通出现的瓶颈问题。现在已有以太网、快速以太网、FDDI和ATM技术的交换产品。
交换机能经济地将网络分成小的冲突网域,为每个工作站提供更高的带宽。协议的透明性使得交换机在软件配置简单的情况苯影沧霸诙嘈�橥�缰校唤换换�褂孟钟械牡缋隆⒅屑唐鳌⒓�咂骱凸ぷ髡镜耐�ǎ�槐刈鞲卟愕挠布��叮唤换换�怨ぷ髡臼峭该鞯模�庋�芾砜��土��蚧�送�缃诘愕脑黾印⒁贫�屯�绫浠�作。
利用专门设计的集成电路可使交换机以线路速率在所有的端口并行转发信息,提供了比传统桥接器高得多的作性能。专用集成电路技术使得交换器在更多端口的情况下以上述性能运行,其端口造价低于传统型桥接器。
二、三种交换技术
1.端口交换
端口交换技术最早出现在插槽式的集线器中,这类集线器的背板通常划分有多条以太网段(每条网段为一个广播域),不用网桥或路由连接,网络之间是互不相通的。以大主模块插入后通常被分配到某个背板的网段上,端口交换用于将以太模块的端口在背板的多个网段之间进行分配、平衡。根据支持的程度,端口交换还可细分为:
模块交换:将整个模块进行网段迁移。
端口组交换:通常模块上的端口被划分为若干组,每组端口允许进行网段迁移。
端口级交换:支持每个端口在不同网段之间进行迁移。这种交换技术是基于OSI第一层上完成的,具有灵活性和负载平衡能力等优点。如果配置得当,那么还可以在一定程度进行客错,但没有改变共享传输介质的特点,自而未能称之为真正的交换。
2.帧交换
帧交换是目前应用最广的局域网交换技术,它通过对传统传输媒介进行微分段,提供并行传送的机制,以减小冲突域,获得高的带宽。一般来讲每个公司的产品的实现技术均会有差异,但对网络帧的处理方式一般有以下几种:
直通交换:提供线速处理能力,交换机只读出网络帧的前14个字节,便将网络帧传送到相应的端口上。
存储转发:通过对网络帧的读取进行验错和控制。
前一种方法的交换速度非常快,但缺乏对网络帧进行更高级的控制,缺乏智能性和安全性,同时也无法支持具有不同速率的端口的交换。因此,各厂商把后一种技术作为重点。
有的厂商甚至对网络帧进行分解,将帧分解成固定大小的信元,该信元处理极易用硬件实现,处理速度快,同时能够完成高级控制功能(如美国MADGE公司的LET集线器)如优先级控制。
3.信元交换
ATM技术代表了网络和通讯技术发展的未来方向,也是解决目前网络通信中众多难题的一剂“良药”,ATM采用固定长度53个字节的信元交换。由于长度固定,因而便于用硬件实现。ATM采用专用的非差别连接,并行运行,可以通过一个交换机同时建立多个节点,但并不会影响每个节点之间的通信能力。ATM还容许在源节点和目标、节点建立多个虚拟链接,以保障足够的带宽和容错能力。ATM采用了统计时分电路进行复用,因而能大大提高通道的利用率。ATM的带宽可以达到25M、155M、622M甚至数Gb的传输能力。
三、局域网交换机的种类和选择
局域网交换机根据使用的网络技术可以分为:
以大网交换机;
令牌环交换机;
FDDI交换机;
ATM交换机;
快速以太网交换机等。
如果按交换机应用领域来划分,可分为:
台式交换机;
工作组交换机;
主干交换机;
企业交换机;
分段交换机;
端口交换机;
网络交换机等。
局域网交换机是组成网络系统的核心设备。对用户而言,局域网交换机最主要的指标是端口的配置、数据交换能力、包交换速度等因素。因此,在选择交换机时要注意以下事项:
(1)交换端口的数量;
(2)交换端口的类型;
(3)系统的扩充能力;
(4)主干线连接手段;
(5)交换机总交换能力;
(6)是否需要路由选择能力;
(7)是否需要热切换能力;
(8)是否需要容错能力;
(9)能否与现有设备兼容,顺利衔接;
(10)网络管理能力。
四、交换机应用中几个值得注意的问题
1.交换机网络中的瓶颈问题
交换机本身的处理速度可以达到很高,用户往往迷信厂商宣传的Gbps级的高速背板。其实这是一种误解,连接入网的工作站或服务器使用的网络是以大网,它遵循CSMA/CD介质访问规则。在当前的客户/服务器模式的网络中多台工作站会同时访问服务器,因此非常容易形成服务器瓶颈。有的厂商已经考虑到这一点,在交换机中设计了一个或多个高速端口(如3COM的Linkswitch1000可以配置一个或两个100Mbps端口),方便用户连接服务器或高速主干网。用户也可以通过设计多台服务器(进行业务划分)或追加多个网卡来消除瓶颈。交换机还可支持生成树算法,方便用户架构容错的冗余连接。
2.网络中的广播帧
目前广泛使用的网络作系统有Netware、Windows NT等,而Lan Server的服务器是通过发送网络广播帧来向客户机提供服务的。这类局域网中广播包的存在会大大降低交换机的效率,这时可以利用交换机的虚拟网功能(并非每种交换机都支持虚拟网)将广播包限制在一定范围内。
每台文交换机的端口都支持一定数目的MAC地址,这样交换机能够“记忆”住该端口一组连接站点的情况,厂商提供的定位不同的交换机端口支持MAC数也不一样,用户使用时一定要注意交换机端口的连接端点数。如果超过厂商给定的MAC数,交换机接收到一个网络帧时,只有其目的站的MAC地址不存在于该交换机端口的MAC地址表中,那么该帧会以广播方式发向交换机的每个端口。
3.虚拟网的划分
虚拟网是交换机的重要功能,通常虚拟网的实现形式有三种:
(1)静态端口分配
静态虚拟网的划分通常是网管人员使用网管软件或直接设置交换机的端口,使其直接从属某个虚拟网。这些端口一直保持这些从属性,除非网管人员重新设置。这种方法虽然比较麻烦,但比较安全,容易配置和维护。
(2)动态虚拟网
支持动态虚拟网的端口,可以借助智能管理软件自动确定它们的从属。端口是通过借助网络包的MAC地址、逻辑地址或协议类型来确定虚拟网的从属。当一网络节点刚连接入网时,交换机端口还未分配,于是交换机通过读取网络节点的MAC地址动态地将该端口划入某个虚拟网。这样一旦网管人员配置好后,用户的计算机可以灵活地改变交换机端口,而不会改变该用户的虚拟网的从属性,而且如果网络中出现未定义的MAC地址,则可以向网管人员报警。
(3)多虚拟网端口配置
该配置支持一用户或一端口可以同时访问多个虚拟网。这样可以将一台网络服务器配置成多个业务部门(每种业务设置成一个虚拟网)都可同时访问,也可以同时访问多个虚拟网的资源,还可让多个虚拟网间的连接只需一个路由端口即可完成。但这样会带来安全上的隐患。虚拟网的业界规范正在制定当中,因而各个公司的产品还谈不上互作性。Cisco公司开发了Inter-Switch Link(ISL)虚拟网络协议,该协议支持跨骨干网(ATM、FDDI、Fast Ethernet)的虚拟网。但该协议被指责为缺乏安全性上的考虑。传统的计算机网络中使用了大量的共享式Hub,通过灵活接入计算机端口也可以获得好的效果。
4高速局域网技术的应用
快速以太网技术虽然在某些方面与传统以大网保持了很好的兼容性,但100BASE-TX、100BASAE-T4及100BASE-FX对传输距离和级连都有了比较大的限制。通过100Mbps的交换机可以打破这些局限。同时也只有交换机端口才可以支持双工高速传输。
目前也出现了CDDI/FDDI的交换技术,另外该CDDI/FDDI的端口价格也呈下降趋势,同时在传输距离和安全性方面也有比较大的优势,因此它是大型网络骨干的一种比较好的选择。
3COM的主要交换产品有Linkswitch系列和LANplex系列;BAY的主要交换产品有LattisSwitch2800,BAY stack workgroup、System3O00/5000(提供某些可选交换模块);Cisco的主要交换产品有Catalyst 1000/2000/3000/5000系列。
三家公司的产品形态看来都有相似之处,产品的价格也比较接近,除了设计中要考虑网络环境的具体需要(强调端口的搭配合理)外,还需从整体上考虑,例如网管、网络应用等。随着ATM技术的发展和成熟以及市场竞争的加剧,帧交换机的价格将会进一步下跌,它将成为工作组网的重要解决方案


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13319718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-14
下一篇 2023-07-14

发表评论

登录后才能评论

评论列表(0条)

保存