尚品速运 - 核心技术案例

全文检索

从海量数据中搜索用户给定的文字信息,例如在众多的订单数据、车辆信息、司机信息中,快速准确地查找相关内容,帮助工作人员高效获取所需数据,提升工作效率。

分布式微服务框架

把一个完整的大型项目按照业务模块或服务功能,独立拆分且能互相访问。现已是大中型互联网系统的标准化解决方案,尚品速运将人员管理、订单管理、任务调度等功能拆分成独立的微服务,各服务可独立开发、部署和扩展,同时又能协同工作,提高系统的可维护性和扩展性。

异步消息队列

主要解决高并发场景发送信息,在尚品速运系统中,当大量订单同时产生时,通过异步消息队列可以将订单处理等消息异步处理,避免系统因高并发而出现性能瓶颈,保证系统的稳定性和响应速度。

分布式事务

基本数据利用MQ保证最终一致性,出现问题来使用补偿机制解决。在涉及多个服务的业务操作中,如订单创建与库存更新,通过分布式事务确保数据的一致性和完整性,防止数据不一致问题的出现。

分布式锁

商品详情使用分布式锁 + 缓存Cache - Aside模式,保证高效的查询以及缓存一致性,防止缓存击穿等问题。使用lua脚本进行锁延期、自旋检测等。在尚品速运的资源调度等场景中,分布式锁可确保同一时间只有一个操作对共享资源进行访问,避免数据冲突和错误。

尚品速运 - 关键技术

SpringBoot: 简化新Spring应用的初始搭建以及开发过程 SpringCloud: 基于Spring Boot实现的云原生应用开发工具,包含Spring Cloud Gateway、Spring Cloud Alibaba Nacos等技术 SkyWalking: 分布式追踪系统,用于监控和分析分布式系统的性能 MyBatis - Plus: 持久层框架,简化数据库操作 Redis: 内存缓存,提高数据访问速度 Seata: 分布式事务解决方案,保证数据一致性 Redisson: 基于redis的Java驻内存数据网格,提供分布式锁等功能 RabbitMQ: 消息中间件,实现异步消息传递 Elasticsearch + Logstash + Kibana: 实现可视化数据监控,方便系统运维和数据分析 ThreadPoolExecutor: 线程池来实现异步操作,提升系统性能 XXL - JOB: 分布式任务调度,管理和调度任务执行 MinIO: 分布式文件存储,存储系统中的文件资源 Knife4j: Api接口文档工具,方便接口管理和文档生成 Nginx: 负载均衡,提高系统的可用性和性能 Lombok: 简化Java代码编写,减少样板代码 Mysql: 关系型数据库,存储结构化数据 MongoDB: 面向文档的NoSQL数据库,处理非结构化数据 Vue.js: web界面的渐进式框架,构建前端交互界面 Node.js: JavaScript运行环境,支持前端和后端开发 Axios: 基于promise的HTTP库,用于前后端数据交互 NPM: 包管理器,管理项目依赖 Babel: 转码器,将ES6+代码转换为兼容旧版本浏览器的代码 Webpack: 打包工具,优化和打包前端资源 Docker: 容器技术,实现应用的隔离和部署 Git: 代码管理工具,管理项目代码版本 DockerFile: 管理Docker镜像命令文本,构建和管理Docker镜像 Jenkins: 持续集成工具,实现自动化构建和部署

尚品速运 - 应用领域

  • ElasticSearch 应用在京东、百度的搜索功能,在尚品速运中用于实现高效的信息检索。
  • RabbitMQ 应用于大型分布式系统中的消息传递,尚品速运借助其实现异步消息处理。
  • Spring cloud 应用于微服务领域,尚品速运采用该技术构建微服务架构。
  • Minio 普遍应用于大规模文件存储场景,是一款开源轻量级分布式文件系统,用于尚品速运的文件存储。
  • Nginx 新浪、百度、腾讯等多家互联网公司使用,用于反向代理和负载均衡,锤子手机发布会的门票就是捐给了其下的子项目OpenResty。尚品速运利用Nginx进行负载均衡,提升系统性能。
  • Redisson 分布式项目解决分布式锁,分布式集合的必备框架,现今的所有分布式项目几乎都用到,尚品速运使用它解决分布式锁等问题。
  • Docker 分布式项目都使用虚拟化技术部署,以方便应用隔离以及集群化,尚品速运通过Docker实现应用的隔离和集群部署。
  • Jenkins+Github 现在公司的统一持续集成解决方案,通过代码提交到github,使用jenkins进行自动化部署到docker容器,实现持续部署,尚品速运利用该方案实现持续集成和部署。