存档

文章标签 ‘解决方案’

最近SNS很火,所以大家都在做,淘宝的”淘江湖”也将在不久之后正式发布。SNS类型的网站首先要解决的就是海量数据处理的问题,主要是用户事件的存储和处理。
我们先假设以下的情况:Jacky的人气很火,有一万人关注他,他在淘宝买了一个马桶,这个事件需要通知一万人,这样一条事件就变成了一万条。同时,Jacky也订阅了很多人的信息,当他登陆网站时,可以看到这些人的最新事件。
集中式的数据库方案肯定是不合适的,我们使用MySQL数据库,按照用户分拆成很多集群,每个用户的事件都存在自己的数据库中,也就是说用户事件只保存一份。但是当jacky需要查看他所有好友的事件时,就需要从不同的数据库去取,然后将不同数据库的结果进行合并返回给用户,这就需要应用服务提供数据合并,排序分页的功能。还有一种思路是,所有用户的事件放在独立的数据库集群中,当发生事件后,将事件ID推送给所有的订阅者,这样每个用户就可以在自己的数据库查到订阅的所有最新事件,然后根据这些事件ID再去取事件的详细信息。用户一般只关心最新的事件,所以每个数据库集群中的事件采用时间分区的方法,只保留最新一段时间内的事件信息。
这种解决方案看起来很容易理解,要解决的问题主要是数据拆分以及合并排序的问题。其实解决方案就是搭积木,用简单的技术搭建一个系统,能够解决问题,我觉得就是好的方案。
以后再讲一下数据库集群实现高可用的各种解决方案。
–EOF–

3 27th, 2009 | Filed under 大话技术
标签: