设计模式:通知系统


疯子哥哥
2025-03-23 09:43:25 (10天前)
  1. 我正在开发一个将使用社交网络功能的网站(例如facebook)。

我想实现一个

通知
</跨度>
系统显示“X加入你作为朋友”,“Y邀请你参加聚会”,“Z已经采取了最新的问题”……并且我不知道该怎么做。

我想知道什么是最好的解决方案:

解决方案1,又名“记录”。

专用表“

通知
</跨度>
“我加上了

5 条回复
  1. 0# 听风~ | 2019-08-31 10-32



    真的,这属于

    我该如何设计一款车?
    </强>
    类型问题类别……



    实现取决于设计,将来的位置以及将要实现的环境。您可以选择推特式的实现,SAN支持的XML系统,关系数据库,Hadoop以及其他许多。



    对Web技术,经验,试验和错误的充分了解是您可​​以确定设计任何功能的唯一方法,即您正在以正确(ish)的方式进行设计。



    您的表现需求是什么?流量水平?用户要求?您想稍后分发(例如通过webhooks分发吗?)。



    你的问题需要更具体。




    我个人
    </强>
    将有一个“通知类型”表,其作用类似于枚举…然后是用户&lt;&gt;通知表,用于处理通知和用户之间的关系。



    通过一些良好的编码,您可以将用户&lt;&gt;通知表拼接在许多服务器上并键入用户ID或类似的…并在每个节点上复制类型表以进行本地缓存/引用。这样的事情。


  2. 1# v-star*위위 | 2019-08-31 10-32



    创建系统队列,添加到此队列的每条消息都有一个“使用者”列表和内容。主消息泵处理每条消息并将消息发送给所有消费者。



    让我们说2个人互相交谈。您向主系统队列添加一条消息,A是B的朋友,消费者是A和B.当您的消息“pump”(处理器)看到此消息时,它会将其添加到A队列和B队列中。现在,用户A和用户B有一条新消息,表明他们是朋友。反过来每个用户都有一个消息处理器,所以当它看到一条名为“我是[某人]的朋友”的消息时,它会将此处理为向A的朋友看到​​的“墙”添加新条目“A是B的朋友“等



    这过于简单,但希望显示消息队列如何用于此(非常类似的系统用作Windows UI框架),因此已有一个现有示例,并且您可以使用大量同步消息队列模式。



    休息取决于你的设计。


  3. 2# 敢嫁就敢娶 | 2019-08-31 10-32



    我建议使用普通通知。没有通知类型或其他。




    通知
    </强>

    -ID

    -信息

    -href(用户点击通知时转到的链接)

    -receiverUser

    -日期



    用法示例:
    约翰(34)喜欢玛丽(47)的照片。 (我们正在向玛丽发送通知)




    1. INSERT INTO Notifications(message,href,receiverUser, date) VALUES (‘John liked your photo’, link of the photo’, 47, 01.11.2014)

    2. </code>

  4. 3# 無口君 | 2019-08-31 10-32



    现在像亚马逊托管的日子服务器正在提供通知框架。因此,如果您使用亚马逊通知,您可能不需要担心表格结构。



    希望这有助于其他人寻找类似的解决方案


登录 后才能参与评论