牛客论坛项目

Posted weixin_46259878

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客论坛项目相关的知识,希望对你有一定的参考价值。

功能:注册、登录、发帖、点赞、评论、关注、朋友私信、系统通知、热帖、搜索

  • 注册:注册后向用户邮箱发验证链接验证,才能注册成功
  • 登录:账号、密码、验证码

  1. 用户登录后可以查看个人信息,包括个人信息(可点入,查看关注了谁、关注者)、我的帖子、我的回复
  2. 别人可点我头像,进我首页,点“关注TA”按钮关注我
  3. 点赞、关注是高频操作,在网站流量高峰时段,不让服务器挂掉
  4. 用户点自己头像可进入个人主页、账号设置、退出登录,账号设置可上传头像、改密码

导航:

  • 未登录:首页、消息、注册、登录、搜索
  • 登录后:首页、消息、用户头像、搜索

消息:

  • 朋友私信,系统通知(谁关注了我,点赞,评论)
    网站每天产生大量消息,为降低应用服务器的压力,发布消息需使用专业的消息队列服务器
    (理解消息队列,要看多线程,理解生产者与消费者模式)

全站搜索:

  • 搜索的结果把搜索的词做高亮显示(标记为红色),搜索不是从数据库简单的查一下,是通过专业的搜索引擎实现的,那么数据库和搜索引擎之间是如何同步数据的,是如何进入分词的,如何做高亮显示的?

管理员可以查看网站UV(独立访客)、活跃用户数(根据用户时段)
目标:提高系统性能,安全、高效、易用
用到的技术:发邮件,发验证码,过滤敏感词,定时启动一个任务,生成长图,把代码存到云服务器上


技术架构:

  • springboot:为简化spring而生
  • spring,springmvc,mybatis(SSM):注册,登录,发帖,评论(SSM开发项目的常规功能)
  • redis,kafka,elasticsearch
  • spring security,spring actuator

  • redis是Nosql数据库,默认将数据存到内存里,在适当的时候将内存中的数据存到硬盘上,由于它是操作内存的数据库,所以性能非常好。项目中对性能要求很高的数据就存在redis里
  • kafka是消息队列服务器,项目中的消息用kafka来发布
  • spring security可以管理系统的权限,让每个功能被正确的人访问,提高系统的安全性
  • spring actuator可以在系统上线后对系统进行监控,让运维人员随时掌控系统运行现状

技术实现:
1、采用redis数据库来提升网站的整体性能,实现了用户登录凭证的存取、帖子点赞的功能。
2、基于kafka实现系统通知:当用户获得点赞、评论后得到通知。
3、利用定时任务定期计算帖子的分数,并在页面上展现热帖排行榜。
4、利用Elasticsearch实现帖子的模糊查询功能,根据用户输入的关键词查找相应的帖子。
5、利用Spring Security管理系统权限,提高系统安全性。


开发环境:

  • 构建工具:Apache Maven
  • 集成开发工具:IntelliJ IDEA
  • 数据库:mysql、redis
  • 应用服务器:Apache Tomcat
  • 版本控制工具:Git

以上是关于牛客论坛项目的主要内容,如果未能解决你的问题,请参考以下文章

牛客论坛项目部署总结

牛客论坛项目

牛客网论坛最具争议的Java面试成神笔记,GitHub已下载量已过百万

共36万字!牛客网论坛最具争议的 面试成神笔记,GitHub已下载量已过百万

Java牛客项目课_仿牛客网讨论区_运行牛客讨论区项目要做的

Java牛客项目课_仿牛客网讨论区_第八章