一)自主研发的push服务的特点及优势:

1) 消息回执确认(ack);

2) 有效期推送(设置消息的有效期);

3) 精准推送(设置设备组别推送);

4) 下发任务分解(拆分任务,多进程);

5) 长连接心跳(tcp长连接、有限状态机fsm).

二)工作调优和改进的有:

1) 调整linux系统参数,erlang虚拟机参数以及TCP协议栈网络参数调整;

2) Monitor 主要用作系统状态,进程、堆栈信息、节点状态、gc、连接数等,以及服务的拉起脚本;

3) 对收发消息的监控,以及对正在发生的消息可取消发送处理的功能;

4) mongodb的主从切换驱动完善;

5) redis支持双写双读及横向扩展(策略);

6) mnesia数据库的定时任务删除过期数据;

7) 消息心跳包的测试及优化调整心跳包大小;

8) redis连接池驱动修改添加池成员超时时间逻辑;

9) 登录设备和组里设备取交集;

10) ETS和timer 实现类似redis的ttl过期时间策略;

11) token的登录,RSA加密算法处理,保证token的合法性;

12) 多进程接收处理不同queue的mq来源的消息;

13) 添加完善推送渠道——厂商渠道推送(小米、华为、oppo、魅族),提高消息到达率;

14)对redis、mongo、mysql主从节点切换的监控;

15) 日活数(UV)的统计、消息总量的统计、每条消息的统计、当前在线设备数的统计;

16)集群机器的动态添加节点,分发策略根据节点数和发送量,按段发送。(分而治之思想)

17) Android推送,地理库(geoip)的添加处理,获取登录设备的经纬度和城市地域;

18) Rebar服务构建部署;

19) 华为推送的http_client的修改(hackney升级、hackney换成ibowsers);

20) 华为推送的限流大小调整(每秒1000条);

21) 修复http_client的hackney开源驱动的死等的问题;

22) 接口的发送时间统计;

23) Android推送,横向扩容(添加server节点),分布式消息分发策略;

24) 批量存mongo,异步ets批量存储;

25) 修改批量存mongo和redis的策略;

26) 调整修改获取access_token的方式;

27) 调整修改mongo的connection,根据创建索引的过期时间删除记录;

28)接收华为push的回执消息(cowboy);

记录下push推送优化改进点的更多相关文章

  1. Android push推送消息到达成功率优化

    Android push推送消息到达成功率优化 问题:server向client发送消息.未考虑client是否在线,这种消息到达率是非常低的. 第一次优化:使用server离线缓存数据,推断假设cl ...

  2. 58同城高性能移动Push推送平台架构演进之路

    本文详细讲述58同城高性能移动Push推送平台架构演进的三个阶段,并介绍了什么是移动Push推送,为什么需要,原理和方案对比:移动Push推送第一阶段(单平台)架构如何设计:移动Push推送典型性能问 ...

  3. 转: 58同城高性能移动Push推送平台架构演进之路

    转: http://geek.csdn.net/news/detail/58738 文/孙玄 本文详细讲述58同城高性能移动Push推送平台架构演进的三个阶段,并介绍了什么是移动Push推送,为什么需 ...

  4. iOS8自定义推送显示按钮及推送优化

    http://www.jianshu.com/p/803bfaae989e iOS8自定义推送显示按钮及推送优化 字数1435 阅读473 评论0 喜欢2 导语 在iOS8中,推送消息不再只是简单地点 ...

  5. iPhone的Push(推送通知)功能原理浅析

    第一部分:Push原理(以下绝大多数内容参考自.图片来自iPhone OS Reference Library)机制简介Push 的工作机制可以简单的概括为下图图中,Provider是指某个iPhon ...

  6. 移动端Push推送

    移动端Push推送 移动端开发逃不掉要做推送,这里给出服务端一种省时省力的解决方案. iOS:PushSharp.Apple.苹果有自己的推送服务,我们按照规则推送数据就好.这里我选取PushShar ...

  7. 浅谈push推送的一点感受

    在手机已成为生活必不可分的一部分,push服务伴随而来.ios的apns,android随着谷歌退出中国市场,各家在android的推送不断展开.有厂商的推送,如小米.华为.魅族.oppo等,还有中间 ...

  8. push推送服务设计

    PUSH系统架构设计简述 一.网络传输协议的选择 PUSH系统协议选取: UDP协议实时性更好,但是如何处理安全可靠的传输并且处理不同客户端之间的消息交互是个难题,实现起来过于复杂,那就非TCP协议莫 ...

  9. 为什么PUSH推送要经常背锅?

    前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 自从做了推送以后,每隔一段时间就发现有各大的公司 ...

随机推荐

  1. [Git] 根据commiter过滤该用户的所有提交

    git log --pretty=oneline --author="xxxx" -(n) 仅显示最近的 n 条提交 --since,--after 仅显示指定时间之后的提交 -- ...

  2. Cobbler安装CentOS 7网卡命名修改

    准备上线CentOS 7.x,在Cobbler上导入后,发现网卡名称变成了eno1这样的,好吧,那就添加两个内核参数上去,让它变回eth0. cobbler profile edit --name=C ...

  3. fl2440 platform总线button字符设备驱动

    驱动程序: #include "s3c_driver.h" #define DRV_DESC "S3C24XX button driver" /* Driver ...

  4. javascriptMVC框架面向对象编程

    //抽象形状类 $.Class("Shape", {}, { //构造函数 init : function(edge) { this.edge = edge; }, //实例方法 ...

  5. android源代码下载备注

    android源代码下载的參考网上比較多,就不贴上来了,主要是备注下下载源代码过程中须要注意的地方. 1. google官方下载步骤地址: http://source.android.com/sour ...

  6. 【Java】Java_09 类型转换

    1.自动类型转换 自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型.在图中,黑色的实线表示无数据丢失的自动类型转换,而红色的虚线表示在转换时可能会精度的损失. 特例: 可以将整型常量直接赋 ...

  7. 《memcached全面剖析》

    第1章 memcached的基础 1.1 memcached是什么? memcached是高性能的分布式内存缓存服务器. 一般的做法是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态web应用 ...

  8. Nginx Errors: upstream response cache error

    Nginx Errors upstream response cache error *2470578 an upstream response is buffered to a temporary ...

  9. MATLABR 2016 b 安装教程

    1.下载相应的 MATLABR 2016 b 版本如下: 主要是下面三个文件,其中, Matlab 2016b Win64 Crack.rar 是破解文件.另两个为安装包.(本软件在win8/10上不 ...

  10. 冲销会计凭证:FBRP与FB08的区别

    FBRA一般是用来对已经清帐的凭证进行冲销的,我们知道普通的冲销只要用FB08就可以了,但是对于已经被清帐和凭证,我们只能用FBRA来进行清帐,我们来按以下的没测试来做验证一下.STEP1:用F-22 ...