美文网首页
微服务实战记录(五),多级评论

微服务实战记录(五),多级评论

作者: 大继 | 来源:发表于2018-08-22 16:31 被阅读0次

    功能概要

    • 实现多层级评论
    • 与第三方用户消息提示关联
    • 同级回复
    • 使用消息同步用户消息(如技术栈未支持消息可以用心跳对消息进行同步)
    • 保留后续升级使用非关系型数据来保存,解决数据量问题
    • 数据变化log

    实现要点

    • 与其他服务同步数据,例如 查询评论显示个人基本信息,现思路使用elasticsearch 心跳同步在进行聚合,减少技术栈
    • 另外的思路就是然前段调用多个接口进行组合。
    • 无论那个主机死机,恢复后业务需要继续,满足升级单机重启

    实验整合的服务栈

    • wechat,elastic-beat(同步需要聚合输出的数据) , message , user,举报,赞

    表设计

    CREATE TABLE `comment` (
      `id` varchar(37) NOT NULL,
      `at_user_ids` varchar(255) DEFAULT NULL,
      `child_size` int(11) DEFAULT NULL,
      `content` text,
      `create_time` datetime DEFAULT NULL,
      `down` int(11) DEFAULT NULL,
      `enable` bit(1) DEFAULT NULL,
      `floor` int(11) DEFAULT NULL,
      `parent_id` varchar(255) DEFAULT NULL,
      `parent_user_id` bigint(20) DEFAULT NULL,
      `path` varchar(255) DEFAULT NULL,
      `subject` varchar(32) DEFAULT NULL,
      `subject_id` varchar(37) DEFAULT NULL,
      `subject_name` varchar(255) DEFAULT NULL,
      `subject_user_id` bigint(20) DEFAULT NULL,
      `up` int(11) DEFAULT NULL,
      `update_time` datetime DEFAULT NULL,
      `user_id` bigint(20) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
    

    测试

    # sql读取出来大概是这个结构 A B C 代表发出的先后
    我是0层的第一个
        我是第一个的1层A
            我是1层A的2层C
            我是1层A的2层D
                我是2层D的E
        我是第一个的1层B
    
    
    select CONCAT(space(floor*4), content) as content,path 
    from comment order by path,create_time
    
    
    image.png

    其他实现都是苦力活,这里只对核心逻辑进行描述

    参考

    https://blog.csdn.net/jiongxian1/article/details/77281202

    相关文章

      网友评论

          本文标题:微服务实战记录(五),多级评论

          本文链接:https://www.haomeiwen.com/subject/hsodiftx.html