个人认为,在小型的创业团队中,特别是以应用产品为主,在架构后台的时候,需要集中精力解决自身业务上的问题,不是花时间解决第三方已经解决的问题,简单点来说,就是能用第三方服务就使用第三方的服务。基于这个原则,就有了下面的系统架构:
1. apns:由于在apns中,无效的token会导致连接apns连接的失效从而使apns信息丢失。解决的方案是维护发送队列,当apns服务器返回错误的token后,把这个错误token后的消息重发。第三方推送很好了实现了这个技术方案,我们选择了百度云推送。
2. email:要考虑邮件发送失败的重发问题,所以不再在服务器上搭建sendmail服务发送,选择了邮件服务商mailgun。mailgun还提供每个账号每月1万封邮件的免费额度,很适合创业团队。
3. coreseek: 一个基于Sphinx的全文检索引擎。在前面描述的LBS模块中,和检索用户昵称,商铺等搜索功能上需要用到。
4. redis:一个支持多种数据结构的key-value数据库,在LBS模块,性能优化等多个方面都有广泛的用处。
5. httpsqs:轻量级的消息队列。
6. xmpp:采用了开源的openfire,当web服务需要向openfire通讯,有两种情况:
(1)实时的需求,例如注册的时候在聊天服务器注册一个用户,那么是直接连聊天服务器。
(2)如果是其它非实时的需求,例如通过聊天服务器向app发送一个更新通知,那么就在队列中处理。
7. 监控,采用了监控宝和云服务器提供的监控数据,能满足目前的需求了。
新建了“app后端技术” 交流qq群:254659220
如果您觉得这系列的文章对你有所帮助,欢迎打赏。
支付宝账号:190678908@qq.com 收款人:曾健生
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2014.02.16更新:修改了架构图中的一些错误
2014.09.04更新:把架构图去掉,现在看起来设计得太烂了
2014.12.05更新:在文章末尾添加了 " app后端技术 " 交流qq群:254659220
[文章作者]曾健生
[作者邮箱]h6k65@126.com
[作者QQ]190678908
[新浪微博] @newjueqi
[博客]http://blog.csdn.net/newjueqi
http://blog.sina.com.cn/h6k65
版权声明:本文为博主原创文章,未经博主允许不得转载。