云知问答
是一个类似于知乎、百度知道之类的在线问答网站。系统实现人员注册、登录、权限管理、问题提问、回答、点赞、合法校验、不同场景下的排序处理、统计分析、详情展示、内容搜索等功能模块;为实现核心业务系统的高可用与异步解耦,剥离出短信验证、日志处理、索引处理子系统;管理员角色可通过后台管理模块进行系统管理。
当然啦,我们并不是想去做一个颠覆它们的网站,我们只是借鉴一下他们简洁优雅的界面以及问答风格,本质上还是学习实践成果。当然要做到优雅,并不仅仅是页面的优美,还要有着强大的性能,能承受高并发场景,能快速响应,容错性强,在这里,我们将不懈地追求系统质量的完美。
我们将通过这个项目来检验所学的JavaWeb开发相关的知识,也是一个总结提高的过程,避免眼高手低。其实在实际的开发过程中, 会发现很多光学习发现不到的问题。废话说多了,还是开始正文内容吧~~~
不如先放个系统实际截图压压惊(系统只是个雏形版本,时间关系不继续做,有兴趣的小伙伴可以继续做完整版本,需要做的模块、优化完善的地方还是挺多的)~~~
工欲善其事必先利其器,在正式开发之前,我们先对项目做个简单的设计,把我们对于网站的界面的想法用原型设计出来,方便我们后期开发 有一定的参考,不然写一下,就要想想要做个啥东西,肯定心累~~~~
我们使用Mockplus设计一下我们的网站界面,来,走起!
表名 | 类型 | 作用 | 键/值/权重 |
---|---|---|---|
REDIS_HASH_PHONEVERCODE_TIME | Hash | 已申请验证码手机号 | 手机号 | 时间戳 |
REDIS_HASH_PHONEVERCODES | Hash | 手机号以及发送的验证码 | 手机号 | 验证码 |
REDIS_HASH_USER_HEAD_IMGS | Hash | 用户头像路径信息 | 用户ID | 头像相对路径 |
REDIS_SET_HASREGISTERPHONE | Set | 已注册用户手机号 | 用户手机号 |
REDIS_SET_USER_QUESTIONS_人员ID | Set | 用户已提问问题 | 问题ID |
REDIS_SET_STAR_ANSWERS_人员ID | Set | 用户已点赞回答 | 回答ID |
REDIS_ZSET_QUESTIONS_TIME | Sorted Set | 新增问题信息 | 问题ID | 时间戳 |
REDIS_ZSET_QUESTIONS_HOT | Sorted Set | 热门问题 | 问题ID | 热门指数 |
REDIS_ZSET_QUESTIONS_HOT_用户ID | Sorted Set | 热门问题临时查询缓存 | 问题ID | 热门指数 |
REDIS_ZSET_QUESTION_ANSWERS_问题ID | Sorted Set | 问题回答信息 | 问题ID | 点赞数 |
Tomcat版本8.0以上即可
创建好数据库,执行SQL(目录:/doc/sql/云知SQL.sql)创建所需表,数据库连接配置文件 database.properties 对应修改即可
安装好Redis,建议设置密码,否则Redis连接会有权限等问题,默认连接密码123456,windows中redis可修改redis.windows.conf文件,具体可搜索设置方法。Redis连接配置:springredis.xml。
这里推荐开发中使用可视化工具,方便我们追踪redis缓存情况:https://redisdesktop.com/download
安装好RabbitMQ,新建用户,授予权限,修改对应连接配置:springrabbit.xml
系统没有采用分布式文件系统,只是简单的集成文件模块,用户头像预览等需要配置Tomcat磁盘访问权限,例如用户头像文件默认放在D:\YunZhi目录,那么需要配置Tomcat的server.xml文件如下内容:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。