要想做一个流行且完整的社交网站,必备的核心功能是:发布帖子、发送站内信、赞踩、关注、通知、搜索、排行榜等功能。
具体的架构方案是:
虽然JavaEE的标准,最早是由SUN制定的。但是由于JavaEE的核心—EJB非常的复杂、难用,以至于它早已被市场所淘汰。所以,目前市场是基于Java语言做Web开发的主流方案是Spring,Spring框架已经成为了事实上的行业标准了。
基础功能
社交网站的基础功能,如帖子、站内信、注册、登录等,通常采用SSM框架实现,即Spring + Spring MVC + MyBatis。
其中,Spring框架提供了IoC与AOP两种方式,来管理应用中的Bean,并进一步可以整合其他的框架,是整个应用的基石。
Spring MVC以轻量级的方式解决了前后端交互的问题,简单实用。对于MVC中的V,也就是视图,我们已经抛弃了JSP这种前后端高度耦合的方案,而采用Thymeleaf模板引擎。Thymeleaf倡导自然模板,即以HTML文件为模板。这样做的好处是显而易见的,你不需要单独学一套新的语法了,毕竟HTML是所有程序员都懂的。
MyBatis是一套轻量级的数据访问层框架,它封装了数据访问过程中固定的逻辑,又允许开发者直接编写SQL、不失灵活性,是一个简单实用的解决方案。
另外,目前更为流行的做法是,基于Spring Boot开发SSM应用。Spring Boot不负责解决业务问题,它用于简化Spring开发。在Spring Boot的帮助下,我们可以省略那些繁琐的导包、配置,可以大大的提高自身的编程效率。
02
高并发的功能
赞、踩、关注这样的功能,是访问频率很高的功能,需要重点考虑性能问题。为了提升性能,不让网站在高峰时段挂掉,通常采用NoSQL数据库来存储这些数据,而Redis往往是NoSQL数据库中的首选方案。
将赞、踩、关注这些数据,以键值对的方式存入Redis,不但访问起来方便,而且由于数据存于内存中,访问的效率是极高的。另外,Redis支持RDB和AOF两种持久化方案,可以适时的将内存中的数据,转存到硬盘上,从而可以保证数据的安全性。
通知功能,也是网站的高频功能。当热点事件发生的时候,网站需要通知的人群十分的庞大,容易造成网站的拥堵甚至宕机。所以,通常我们会采用消息队列进行异步的通知。虽然这样做会造成通知有一定的延迟,但是它会削减网站的峰值,对网站的性能有极大的提升。消息队列服务器有很多,推荐大家使用Kafka,因为Kafka是目前性能最好的消息队列服务器,具备每秒TB级的吞吐能力。
搜索功能,也是访问频率很高的功能,并且搜索时要支持中文分词,这都是传统的关系型数据库不具备的能力。目前最流行的搜索引擎是Elasticsearch,它采用分布式架构方案,具备实时检索的能力,性能极为出色。
03
安全功能
除此以外,网站在运营的过程中,还要保证安全性。在这方面,Spring Security和Spring Actuator是最值得我们去关注的。
Spring Security可以很好的控制用户的访问权限,还能避免CSRC攻击,基于Spring Security开发权限模块又极为简单,只需要做一些基本的配置即可,对业务代码具有极低的侵入性,是一套十分优秀的解决方案。
Spring Actuator可以在网站上线后,提供多个端点来监控网站的运营状况,从而找出网站的瓶颈、漏洞,是一套十分有效的运维工具。
基于以上理论,牛客做了一个大胆的决策——以讨论区为原型,应用以上列举框架和技术,完整的复制了一份牛客讨论区。 |
这就是我们最新上线的2019版牛客高级项目课——社交型网站:牛客讨论区
1.项目截图如下
2.项目中用到的技术框架
Spring Boot 、SSM(Spring、Spring MVC、MyBatis)
Redis、Kafka、Elasticsearch
Spring Security、Spring Actuator
3.做项目之前你需要具备
熟悉Java基础语法、数据库SQL语法
了解HTML、CSS、JavaScript
4.做完项目后你能获得
学会主流的web开发技术和框架
积累一个真实的web项目的开发经验
掌握面试热点及答题策略
5.带你做项目并提供答疑解惑的老师是
李洪鹤
牛客网专职讲师
曾任用友软件设计师、达内集团金牌讲师、粉笔科技IT课程研发总监。拥有7年开发实战经验,5年教学经验。
6.项目要分这些步骤来完成
▼滑动查看全部课程目录▼
做完这个项目,以后你就可以跟别人说:我是做过牛客网讨论区的人!
那么这么好的项目要如何获得呢?
前方高能预告
福利来了!!!
由于课程刚刚上线,还处于内测阶段,我们一共设置了30个内测名额,课程上线一天,已经售出20个,现仅剩余10个内测名额了。
参与内测
会有哪些福利?
1 项目课买一赠一
叶神高级项目课+2019最新高级项目课
1 左神算法录播课
历年校招算法真题讲解(视频+课件+最优解代码)
1 牛客网独家求职资料
包括面试通过技巧和名企面试常考题目汇总
点击立抢内测名额
▲注:报名成功的同学加群后私信群主要内测福利哦~~~
点击阅读原文,查看更多项目详情