GithubHelp home page GithubHelp logo

bellmit / passthemon Goto Github PK

View Code? Open in Web Editor NEW

This project forked from grizzz13/passthemon

0.0 1.0 0.0 55.52 MB

2021年暑期小学期项目-二手交易平台

Java 4.78% CSS 3.21% HTML 35.11% Python 0.45% JavaScript 54.37% Starlark 0.01% Objective-C 0.03% Ruby 0.01% Less 2.04%

passthemon's Introduction

小学期项目

项目简介

  • 面向校园: 仅限交大师生注册使用。
  • 自由交易: 用户可以发布商品、需求、查看商品、需求,用户间可以自由聊天。
  • 电商化: 包含信誉及评价系统,用户可以相互关注。

技术栈

前端:React-Native、React
后端:SpringBoot
数据库:MySQL、MongoDB、Redis
中间件:Rabbitmq、scrapy
数据来源:当当网

技术亮点

Redis-Cluster

  • 针对问题: 单个Redis服务在服务器宕机时会造成单点故障,可用性低。Redis为单线程操作,无法应对高并发操作。
  • 技术方案: 在Cluster和Sentinel两种技术方案中选择去中心化的Cluster模式,多个主节点读写,相对Sentinel模式能够更好地应对高并发。
  • 实现效果: 在测试中主动关闭部分Redis节点,Redis仍然能够保证正常运行,实现高可用。

内容自动审核 rabbitmq消息队列

  • 针对问题: 商品及需求页面文字及图片由用户上传,若存在非法内容或不良图片可能会导致APP被封停。且上传商品、编辑商品、上传需求、编辑需求需要调用审核API速度慢且并发小。
  • 技术方案: 引入 百度云内容审核API ,对用户上传的文字信息和图片信息进行自动审核,并引入rabbitmq消息队列,建立生产者消费者模型,用户发送的待审核的信息被放入对应队列,并在消费者端进行审核。
  • 实现效果: 自动审核API会运用自然语言处理和机器学习等模型对文字、图片进行非法内容识别并返回给用户是否通过审核,未通过审核的内容不予显示。

Nginx负载均衡

  • 针对问题: 项目预期最大并发量为2000并发,服务器压力较大,应优化资源分配、避免过载。
  • 技术方案: 采用Nginx负载均衡,对大量前端访问或流量进行分流,保证前端用户访问效率,减少服务器处理压力。
  • 实现效果: 在性能测试中,APDEX(应用程序性能指标)得到较大提升,Requests Fail Rate 明显下降。

Cache缓存

对于一些频繁访问的信息通过Redis进行缓存。

分布式锁

在定时从Redis写入数据库时保持数据一致性并防止多次写入。

当当网真实数据

从当当网上爬取全部商品信息约20万条,使用真实数据填满数据库。

WebSocket

长连接,实现用户聊天。

权限认证

通过自定义注解,配合拦截器,实现对接口的细粒度权限认证及安全保障。

两种限流

通过令牌桶 + 自定义注解实现接口的总限流,通过Redis + 自定义注解实现单个用户对接口的限流。

管理员界面

用React编写管理员界面,配合Spring-boot-admin实现后台监控。

项目成员及导师

  • 成员: wht tyc zyh xhd
  • 助教: ys
  • 老师: sbj rr

passthemon's People

Contributors

williamx1 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.