值圈--社区服务
值圈产品,主要帮助自媒体、知识大咖以及一切愿意分享的群体,建立属于自己的圈子,并管理自己的粉丝。
值圈产品为B端用户提供了多媒体的内容呈现方式,音视频图文展示以及超强的粉丝管理后台和课程售卖商城。
值圈产品为C端用户提供了很好的音视频图文体验,以及和圈子内的社交体验:点赞、评论、私信、聊天等。同时也为C端用户提供了超强的管理后台,管理自己购买的课程和加入的圈子。
值圈的用户大约在100万以上,产品的技术架构是:springcloud + springboot+mysql集群+redis集群+rabbitMQ+Nginx负载均衡+FastDFS分布式文件系统+ffmpeg的音频处理。
springcloud是后期对项目进行拆分,将用户模块、圈子模块、话题课程模块、商城模块拆分出来。SpringCloud主要用到Eureka注册服务中心,Zuul网关、Hystrix熔断和Ribbon、feign请求。
登录授权使用:JWT安全策略。
mysql集群主要采用强同步的PXC集群,mycat中间层。Redis集群做缓存层,提高系统性能。MQ主要采用RocketMQ,在做课程秒杀的时候,防止超卖这块,采用了RocketMQ的事务机制。
课程秒杀系统的搭建:
1.jmeter高并发调试优化系统性能,对内嵌tomcat调优,尽最大可能调高线程池线程数量,等待队列任务数量,提高系统tps处理能力,设置keepalive链接,防止http请求无状态消耗性能的问题;
2.redis做缓存;
3.下单处理流程中,使用rocketMQ消息队列,在扣减库存和插入订单以及订单流水操作上,使用rocketMQ事务机制,防止超卖少买。
FastDfs分布式文件系统:
作为知识分享社区,用户生成和上传的音视频文件,以及office文件和各种格式的图片文件很多,加上产品的整个架构是分布式的,所以不可能采用在每个服务中开发的文件上传功能,这样会导致其他服务器上传的图片,另一台服务器上没有,文件管理会很混乱,所以需要采用分布式的文件管理系统。
分布式的文件系统使用FastDfs轻量级架构,采用tracker集群和storage集群,在storage中建立不同的group。使用FastDfs开发对各种视频、音频、图片、offices文件的上传、下载和管理。
自动化测试:自动化测试采用了testNG编写。