推送业务的逻辑设计

项目上线至今已有1年左右的时间了,回头查看自己以前写的比较low的东西,感觉确实可笑,但是当时也是形势所迫嘛。

现在为止,东西已经基本完善,不能说有多好吧,支持现在业务量肯定是没有问题的。

梳理以前东西的时候,偶然间发现了我们的推送业务,顺便整理了下,利用58速运和我们自己的对比了下,下面有原文地址,感谢对方的贡献。

简述:

(1)系统间各种信息的通知与交互,这种现在无非是采用MQ(消息系统)的方式,而在众多的MQ方案中,使用的比较广泛且性能较高的开源项目则是RabbitMQ了。

RabbitMQ是采用Erlang语言编写,天生的支持高并发,而且内部有不同其它MQ的独特设计。

(2)实现推送的业务,现在的情况无非就是两种,一种借助第三方已经实现好的,去集成。或者就是自己购买相关设备,自己去实现。

推送逻辑:

我们业务量小点,是基于第三方的推送设计:

推送设计【原文地址:58速运】:

APP端,用户或司机会有下单的流程,有两类消息:第一类消息从APP端发起,用户下单,最终将消息推送给APP-server,另外一个就是从APP-server往APP端走。

msg-gate负责整合百万连接,维护与APP端的海量tcp连接;建立安全的消息通道,消息加解密、消息解压缩、消息流量监控、黑白名单;消息投递,接收APP端投递过来的消息,推送app-server投递过来的消息给APP端。因为要得到实时,优化了没有采用现有业务的方式上报。这边对于gate就是百万链接的流量整合。另外一个它会有逻辑层,将逻辑层转换MQ,这是整体的流程。

一般像我们服务的话,因为哪一个司机和哪个客户对接都要通过消息平台进行发送,所以对于gate层是比较特殊的,是有状态的。另外有一个逻辑层,主要职责也比较简单,就是跟业务相关的,逻辑层最核心的东西就是必须把gate层这边的消息重组到APP上,就是gate和APP有怎样的关系,这是server往APP端的东西。逻辑层职责比较简单,一个就是业务处理,还有也是业务相关的逻辑。

  

时间: 2024-10-28 10:00:21

推送业务的逻辑设计的相关文章

友盟推送里面的Alias怎么用?可以理解成账号吗?

友盟推送里面的Alias怎么用?可以理解成账号吗? 我们的App有自己的账号体系的,想在每次用户登陆的时候,给用户发一个欢迎消息. 看了一下友盟推送,里面有一个概念叫做Alias(别名),但是官方文档写着Alias是和设备绑定的,感觉Alias算不上是严格意义的账号.不知道其它集成过友盟推送的兄弟们是否有类似的需求,是否可以通过友盟推送提供的Alias功能来满足我们的需求? 作者:沙漠链接:http://www.zhihu.com/question/31882775/answer/5425406

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

转: http://geek.csdn.net/news/detail/58738 文/孙玄 本文详细讲述58同城高性能移动Push推送平台架构演进的三个阶段,并介绍了什么是移动Push推送,为什么需要,原理和方案对比:移动Push推送第一阶段(单平台)架构如何设计:移动Push推送典型性能问题分析解决,以及高可用.高性能.高稳定性如何保证. 什么是移动Push推送 移动Push推送是移动互联网最基础的需求之一,用于满足移动互联环境下消息到达App客户端.以转转(58赶集旗下真实个人的闲置交易平

IONIC集成jPush极光推送

一.简介: 极光推送(JPush)是独立的第三方云推送平台,致力于为全球移动应用开发者提供专业.高效的移动消息推送服务. 极光推送,英文简称 JPush,是一个面向普通开发者开放的,免费的第三方消息推送服务. 二.官网:https://www.jiguang.cn/ 首先注册一个账号,登陆平台,在控制台添加我们的应用信息 点击提交 会成一个AppKey和Master Secret这两个密钥主要用来配置服务端发送通知使用. 三.开整 官方的栗子:https://github.com/jpush/j

聊聊推送的架构及关键技术实现

推送是在日常终端使用场景中经常碰到,特别是移动互联网普及之后,手机终端成为了消息推送的主战场,例如生活服务类的优惠券推送,咨询类的新闻推送,电商类的购物推送等等,在业务用户触达上起到了至关重要的作用,那我们今天就来揭开一下推送这个隐藏在业务背景之下的技术实现 系统架构及模块介绍 这是一个比较完整的推送业务架构图,分为三个部分:业务层.通道层和客户端常驻服务,一般来说客户端常驻服务和通道层维持一个长连接通道实现数据的双向传递,而业务层实现的是基于推送业务形态的展示,例如推送的定时任务推送,接口推送

消息推送平台乱象和趋势

最近笔者关注了一下推送这个领域,来给大家说说目前的推送的现状,我的一些想法以及这个行业的一些趋势判断.文章分两大部分,分别是消息的用户打扰以及消息通道和各推送平台的趋势. 消息的用户打扰 目前每日全网下发的推送消息大概是120亿条,这些消息主要在Android设备上,平均每个Android用户每天会收到30条以上的消息, 为什么呢,主要是因为Android手机生态的原因,关闭消息太难. 所以Android设备的用户每天生活在消息的轰炸之中,从业内的一些数据来看,现在Android的一条推送,从展

应用“PUSH推送”的5个真相和5个误区

真相一:用户厌烦的并不是推送功能本身 针对如何看待推送功能这一问题,对1万名用户进行了问卷调查,结果表明80%的用户表示不会拒绝推送功能.各个年龄段方面没有太大的差别,但女性用户更容易受个人兴趣和心情影响. 真相二:推送同样会带来用户卸载风险 23%的用户有因为系统推送而卸载APP的经历.这也就是说,推送功能同样会成为用户卸载的一个契机.调查结果显示越年轻的用户对推送的抵抗倾向越小,而40岁左右的女性对推送最为包容.原因是这一年龄层的女性多为主妇,比起其他类型的人群她们更需要各种不同渠道的信息和

GB28181之目录设备推送

上下级平台对台对接,下级平台向上级平台注册成功后才能够推送目录和设备.在上一篇文章中(GB28181之平台国标注册),讲述了平台对接后的注册过程.那么这篇文件将在平台注册成功的基础上介绍目录和设备的推送.平台注册成功后,下级平台共享目录和设备,上级平台进行查询同步目录和设备,然后下级平台开始推送目录和设备.<1>上级向下级查询共享的目录和设备下级平台注册成功后,上级平台就可以开始查询并同步下级共享的目录和设备.上级平台发送一条Message数据给下级平台,里面携带Query查询字段,其中Cmd

MQTT协议及推送服务(二)

MQTT简介 MQTT全称叫做Message Queuing Telemetry Transport,意为消息队列遥测传输,是IBM开发的一个即时通讯协议.由于其维护一个长连接以轻量级低消耗著称,所以常用于移动端消息推送服务开发. MQTT特性 MQTT具有如下特性: 使用发布/订阅消息模式,提供一对多消息发布: 对负载内容屏蔽的消息传输: 使用TCP/IP进行网络连接: 主流的MQTT是基于TCP进行连接的,同样也有UDP版本的MQTT,但是不太常用,叫做MQTT-SN. 具有三种消息发布服务

【netty】Netty系列之Netty百万级推送服务设计要点

1. 背景 1.1. 话题来源 最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题.问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为如下几类: Netty是否可以做推送服务器? 如果使用Netty开发推送服务,一个服务器最多可以支撑多少个客户端? 使用Netty开发推送服务遇到的各种技术问题. 由于咨询者众多,关注点也比较集中,我希望通过本文的案例分析和对推送服务设计要点的总结,帮助大家在实际工作中少走弯路. 1.2. 推送服务