分布式的简逸社区的设计与实现

摘 要互联网发展至今,人们已经感受到其诸多好处,不管是衣食住行,还是交互往来,互联网都提供了诸多便利。人与人之间的交互,更多的承载于互联网之上,例如QQ、微信、微博等等。一个社区如同一个小社会,里面也存在着真实社会各种利益关系,虽然不及社会庞大的基数,但是由于它足够轻量,也会快速的演进变化。而社区平台是一个网络社区的基础,它为社区中的成员提供各种基础服务,管理功能,让双方都可以满足自己的利益诉求。在这样的平台上,通过交流、共同探索,会涌现出很多有价值的东西,例如一个好点子、一套好的方案、一个目标宏伟的计划等等,这些信息若是能被收集起来,让有能力的人看到,去支持,相信会有互惠双赢的进步。为了能够让交流探索、共同进步这种形式更好的体现,将针对性的开发一套社区系统。该系统针对于这种情况,采用一套可扩展的用户管理、区域规划、评论筛选的模式,方便获取有价值的内容。系统将采用分布式架构,部署在Docker容器之上,以实现更好的扩展,利用更多的机器,处理更多的数据。本文将介绍对系统的分析、架构设计、分布式解决方案、详细设计等诸多内容,充分发挥可扩展这一特性,方便后续维护和功能的扩展,更好的利用硬件资源,发挥更多的性能。受限于开发环境,本文只介绍部署在单机上的可行方案。
目 录
1 绪论 1
1.1 研究背景 1
1.2 国内外发展趋势 1
1.3 系统理论和技术选择 2
2 系统说明 3
2.1 为什么使用分布式 3
2.2 分布式架构 3
2.3 OAuth2的权限认证 4
2.4 Restful API通信 4
2.5 Docker容器 5
2.6 系统结构 6
2.7 本章小结 6
3 需求分析 7
3.1 功能性需求分析 7
3.1.1 服务模块 7
3.2.2 邮件模块 7
3.2.3 文件模块 7
3.2.4 搜索模块 7
3.2.5 用户模块 8
3.2.6 区域模块 8
3.2.7 帖子模块 9
3. *好棒文|www.hbsrm.com +Q: ^351916072* 
2.8 标签模块 10
3.2 非功能性需求分析 10
3.2.1 开发环境需求 10
3.2.2 硬件需求 10
3.2.3 性能需求 11
3.2.4 系统需求 11
3.2.5 测试需求 11
3.3 系统约定设计 11
3.3.1 API接口约定设计 12
3.3.2 数据字段约定设计 12
3.3.3 权限校验流程约定设计 13
3.4 本章小结 13
4 概要设计 14
4.1 分布式主键问题 14
4.2 微服务模块通信问题 14
4.3 数据库及表设计 15
4.3.1 用户模块数据库设计 15
4.3.2 标签模块数据库设计 18
4.3.3 帖子模块数据库设计 19
4.3.4 区域模块数据库设计 21
5 详细设计 23
5.1 服务模块 24
5.2 用户模块 25
5.3 区域模块 27
5.4 标签模块 28
5.5 帖子模块 29
6 系统测试与运行 32
6.1 测试的方法 32
6.2 系统部署及启动 32
6.3 系统运行结果及截图 34
总 结 40
参考文献 41
致 谢 43
1 绪论
1.1 研究背景
随着互联网飞速发展,人们的生活已经离不开网络了。互联网带给了人们诸多便利,也让人们在足不出户的情况,可以了解到诸多外界大小琐事。时至今日,网络中的信息已经无比庞大,曾经为了查找资料在图书馆搜寻一天,现在只需要使用搜索引擎搜一下。网上社区,是存在于互联网上供人们自由交流的平台,它为人们在现实生活中的社会关系提供了一种补充,因此也在潜移默化中逐渐发展起来。只要有一个话题,就会有人参与讨论,讨论的人多了,那这个圈子就可以称之为一个小社区。
对于一个网络社区来说,它的发展竞争其实并不是在其目的上,社区的主体是人,社区的发展需要一小部分高度活跃的用户,活跃社区,进行话题的讨论,调动其它用户融入进来。同时,社区网站也要提供一套可扩展,具有高度灵活性的管理方案,这对之后的发展,有着绝对性的作用。 许多社区管理者被动地随机地管理着他们的网络社区,他们只希望守株待兔,获取到自己想要的信息,但是缺乏主动性去发展和改进他们的社区。
1.2 国内外发展趋势
网上社区,又称为BBS、论坛。BBS诞生于20世纪70年代的美国,主要用于信息交流与网络通讯,而那时还没有浏览器、搜索引擎。因此当时BBS主要只有四项基础功能:发布新闻、发布交易信息、发布个人感想、互动式问答。
随着互联网技术的不断发展,BBS的许多特性被后续出现的应用取代。BBS前三个功能逐渐被分离出去,发展成三类网站——新闻类、电子商务类和博客类,这三类网站又经过整合逐渐有了各自的门户。
剩余的特性,则浓缩在了网络社区中。在这个互联网飞速发展的时代,国外社区型网站如:Myspace、Facebook、Youtube、Twitter等均已兴起。当然,中国的互联网也已经历了多次蜕变,从老三家的“新浪、网易、搜狐”到新三家的“腾讯、阿里巴巴、百度”都在向社区化转型。当然,校内(人人)、51、开心等则是彻彻底底的根植于社交类网站。
有一点已经很清晰了,一个社区网站要想能够更有活力,活的更久,不仅要与用户之间存在互动,更要体现出这个社区这个意义,形成一个个的“圈子”,制造出良好的用户体验。这样才能依靠圈子的力量吸引用户,提高社区的活跃性,再反作用于“圈子”,形成的良性的循环式发展,这比一味靠炒作的噱头而短期增加用户的手段要长远得多。
因此,可以说,互联网已经进入了一个用户之间相互动的时代,社区化是必然的趋势,但是一定要切记:这只是互联网发展的过程,绝对不是目的所在!现如今,但凡是网站,哪个不说自己是社区?这早已都不再算是一种流行了。
1.3 系统理论和技术选择
该系统采用分布式架构,前后端分离。基于Linux平台,使用IDEA开发工具进行开发。
前端采用Vue+Element组合开发,使用Axios调用后台Restful API,部署于Nginx服务器中。后台使用Java语言,Spring家族多项技术开发,以Eureka为注册中心,连通各个模块。对于有状态的请求,模块间使用OpenFeign及Hystrix相互调用服务;而对于无状态的处理,采用Rabbitmq消息中间件来完成后续处理。存储方面,使用Mysql和MongoDB作为主要存储数据库,Redis提供缓存,ElasticSearch提供全文搜索服务(数据来自Mysql)。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/861.html

好棒文