怎样架构基于 Ruby on Rails 网站的实时消息系统
1 实时信息通知可以用轮询或者 Long HTTP Connection 的方式,具体查google2 message 和 group 放在mongodb 可以,比如说一个群聊放到一个 mongodb 的 document 里面,一个message 会话也可以放在一个 document 里面,但是要设计好你的数据结构,一个document最大4M。 nosql 虽然方便,但是后期sharding 也很费事3 首页动态刷新,这个参考1. 从服务器返回数据后,动态插入就可以4 实时全文搜索,但假设你用 mongodb,在一定量级上可以直接用mongodb 查询,另外对于过期数据可以做归档。以现在的数据量来说,实时搜索也用不到lucene/solr。后台任务队列可以用redis。我原来尝试过用mongodb 来架构一个实时队列,支撑过一段时间,后来爆掉了。5 支持html5,移动设备。 这个不关架构的事情,只要判断浏览器请求头,对不同设备提供不同的 css,或者是渲染不同的页面。如果要是给客户端提供API的话,统一用json就行,Rails 支持不同请求类型返回不同数据结构。6 没有可以拿来就用的架构,要根据自己的业务结构,从简单开始,逐步演进。
■网友
rails faye , XMPP BOSH,juggernaut 这些你都可以去尝试,找一个合适你的;这个肯定是没有问题的;这个实现很容易;就像@蓝文所说的;这里是两个问题,realtime index,对于社交网站确实很有必要,你可以参考redis-search,我想这个基本上也可以实现你要的效果,如果不够再补充;视频图片处理,这个你需要一个Job,如果一定要用Ruby library的话,你可以试试resque,还有其他很多,如果你觉得你一定要上升到分布式,那么你可以考虑采用tb的那个tbschedule,不过我的建议是图片交给第三方服务解决,比如又拍云存储,比你自己做靠谱多了,视频编码解码和其他异步任务交给任务系统;Apps那个与你架构还是有一定的关系,按照你目前的提问,采用RESTful Web API无疑可以满足你的要求。最后一个提问,虽然说没有一步到位的系统;不过我建议你可以考虑去玩玩AWS。
■网友
我觉得你需要的不是一些具体的产品,而是需要一个团队?? 你说的这些事情都不是一两个人能搞定的。特别是第 6 点,现在估计只有 Google 能做到。
■网友
这事“小型的社交网站”吗无论什么消息,都是,消息产生—— \u0026gt; 筛选过滤—— \u0026gt; 存入数据库或cache—— \u0026gt; 前台推送1,2,3,都是一样的原理,网页上用AJAX就可以动态刷新了,IOS,ANDROID也是同理,定时取数据就OK了全文搜索就是数据库的事情了,最好还是提取关键字搜索,像这种这么多信息,全文搜索可不容易,视频和图片多分几个服务器就好了,带宽是王道,这玩意可吃钱了,你看知呼几乎没多少图片至于分布式架构,那更是因地制宜的事情了,什么网站怎么分布完全不一样,最主要的是,网站做大了,不可能不改变,那是不可能的,除非你出发点就是架构一个庞大的巨无霸
■网友
你的这么多问题,可以转换成如何用Ruby on Rails实现一个Twitter,Yammer或者新浪微博这样级别的应用,不如你把问题拆分一下,一个一个的问吧。
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义
