“站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。 “站内信”有两个基本功能。一:点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一 条件的用户群)群发消息。点到点的消息传送很容易实现,本文不再详述。下面将根据不同的情况,来说说“站内信”的群发是如何实现的。 设计思想: 为了向每一位用户友好的提示新信息,就需要用站内信通知,由于站内的用户是大量级的(上百万)(甚至更多),但是活跃的用户只占其中的一部分。这时候我们做了更优化的方案。 设计功能: 1 :群发信息给用户(并记录浏览状态)给予站内信提示 2 :用户浏览站内信(站内信未读提示) 3 :用户管理站内信通知状态 4 : 模板:系统消息自动提醒,(如,注册,欢迎等) 5 :新用户旧站内信不再提示 设计内容 1)用户在登录以后,系统首先判断用户,群发站内信发布时间大于注册时间。此功能避免旧信息对新用户不友好的提示。
2)用户在登录以后,系统首先查询(站内信内容表)中的那些没有在(用户浏览记录表)中有记录的,表示是未读的站内信(并统计条数)。 3)在查阅站内信的内容时,再将相关的(站内信内容表)的编号 和 用户编号 记录插入到(用户浏览记录表)中。同时修改用户浏览状态。 4)我们根据刷选内容,将站内信展示给用户。 5)关于点对点消息传送,这里也简单的说一下。在(站内信内容表)里增加一个标示(0:群发;1:对用户;2:对用户组;),发布站内信记录到(站内信内容表)同时并关联到(标示表)中。 总结 本设计是针对大百万级用户量的,而对于几十到几百或者几千到几万的用户量,可以更简单。 本文只是大致阐述了实现的思想。如果你喜欢设计和架构,喜欢大数据,分布式框架,可以交个朋友,哈哈,虚心学习中...
|