Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >分布式电商系统的设计与实现④

分布式电商系统的设计与实现④

原创
作者头像
会洗碗的CV工程师
发布于 2024-06-16 13:53:52
发布于 2024-06-16 13:53:52
1690
举报
文章被收录于专栏:毕业设计毕业设计

接下来,我会将整篇毕设论文放上该专栏,其中按照论文提纲主要分为八大部分。每一部分单独列出一篇文章。 这一篇就是论文的第三部分项目相关技术介绍。中括号代表的是参考文献,后面会有列出来

1 项目相关技术介绍

首先介绍本项目开发使用的操作系统为Windows10,开发工具为IntelliJ IDEA 2021.1 x64,所使用到的服务器操作系统为CentOS7.5。接下来介绍所使用到的一些关键技术。

1.1 Spring Boot

Spring Boot是一款简化Spring应用开发流程的快速开发工具,其核心理念在于“约定优于配置”,通过一系列默认配置和自动化配置机制,极大地降低了开发者的配置负担,使开发者能更专注于业务逻辑的实现。

在Spring Boot中,开发人员无需进行大量的XML配置,而是通过简单的注解和少量的配置即可完成应用的搭建。此外,Spring Boot内置了多种常用的Web服务器,如Tomcat、Jetty等,使得应用的部署更加便捷。

Spring Boot不仅适用于传统的Web应用开发,也非常适合用于构建微服务架构。通过Spring Cloud等组件的集成,Spring Boot能够轻松实现服务的注册与发现、负载均衡、熔断等微服务治理功能。

随着技术的不断发展,Spring Boot也在不断更新迭代,引入更多新特性和优化。例如,在最新的版本中,Spring Boot对性能进行了进一步的优化,并提供了对新兴技术的支持,如响应式编程、云原生应用等。

总的来说,Spring Boot以其简洁、高效和强大的特性,成为了Java应用开发领域的热门选择。无论是快速构建Web应用,还是搭建微服务架构,Spring Boot都能为开发者提供强大的支持和便利。

1.2 MyBatis-Plus

Mybatis-Plus是一款在Mybatis基础上进行功能增强的工具,它专注于简化数据库操作,提高开发效率。下面主要针对Mybatis-Plus的关键技术进行概括:

l 简化的CRUD操作:

Mybatis-Plus通过提供丰富的API和内置方法,极大地简化了传统的CRUD操作。开发人员无需编写大量的SQL语句和映射文件,即可快速实现数据的增删改查,从而节省了大量时间和精力。

l 高效的条件构造:

为了简化查询条件的构建,Mybatis-Plus提供了灵活的条件构造器。它允许开发人员以链式调用的方式构建复杂的查询条件,不仅提高了代码的可读性,还降低了出错的可能性。

l 自动代码生成:

Mybatis-Plus支持自动代码生成功能,能够根据数据库表结构自动生成对应的实体类、Mapper接口以及XML映射文件。这一功能极大地减少了手动编写代码的工作量,提高了开发效率。

l 强大的插件扩展:

Mybatis-Plus支持插件机制,比如说Mybais-Plus自带的分页插件就和前端Vue.js非常适配,扩展Mybatis-Plus的功能。这使得Mybatis-Plus在保持核心功能稳定的同时,也能够灵活应对各种复杂业务场景。

综上所述,Mybatis-Plus是一个强大的ORM框架,通过简化CRUD操作、高效的条件构造、自动代码生成以及强大的插件扩展等功能,为开发人员提供了更加便捷、高效的数据库操作体验。极大地简化了基于MyBatis的项目开发流程

1.3 Zookeeper + Dubbo + Docker

Zookeeper和Dubbo都是分布式调用框架常用的技术,其中Zookeeper可以当作注册中心,让每一个服务都在通过在注册中心地址注册,然后在Dubbo-Admin管理界面进行统一管理所有的服务提供者和消费者,以及对于服务的提供者进行动态配置。

1.3.1 Zookeeper

ZooKeeper是一个开源分布式应用程序协调服务,它源自Google的Chubby项目,是HadoopHBase等分布式系统的重要组件。ZooKeeper的主要目标是封装好复杂易出错的关键服务,为分布式应用提供一致性服务,同时提供简单易用的接口和性能高效、功能稳定的系统。

1.3.2 Dubbo

Dubbo 是一个分布式服务框架,致力于提供高性能的远程过程调用(RPC)通信和微服务架构下的 service governance(服务治理)。在本项目主要使用了Dubbo中的Dubbo-Admin组件进行服务治理。下面是关于 Dubbo-Admin 的关键功能介绍:

Dubbo-Admin是Dubbo框架的一个组件,主要提供了一套用于服务治理的Web界面,方便用户管理和监控Dubbo系统。基于VUE和Spring Boot开发,Dubbo-Admin实现了前后端的分离,前端使用Vue、Vuetify等框架,后端则基于Spring Boot。

1.3.3 Docker

Docker是一个开源应用容器引擎,旨在让开发者可以打包他们的程序以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,实现虚拟化。Docker容器是完全使用沙箱机制,相互之间不会有任何接口,这使得它们更加安全、轻量且高效。

1.4 FastDFS + Nginx

1.4.1 FastDFS

FastDFS是一个开放源代码的轻量级的分布式文件系统,目的在于解决大规模数据存储以及高访问频率的问题。它特别适用于以文件为载体的在线服务,如相册网站、视频网站等。FastDFS采用类似于Google File System(GFS)的架构,具备高性能、高可靠性、易于部署和管理等特点。

Tracker Server(跟踪服务器): 跟踪服务器负责整个文件系统的调度工作,主要承担客户端请求的接入、文件上传下载地址的分配、元数据的管理以及存储节点的监控等职责。跟踪服务器之间可以组成集群,实现高可用和负载均衡。

Storage Server(存储服务器): 存储服务器实际保存文件数据,并负责文件的存储、同步、读写操作以及文件元数据(metadata)的管理。文件的元数据是指与文件相关的属性信息,比如文件大小、创建时间、宽度、高度等,它们以键值对的形式存在。存储服务器也可以组成集群,文件会在集群内部复制,以保证数据冗余和可靠性。

在该项目中的文件服务就是使用FastDFS技术,为上传图片提供了可靠保障。

1.4.2 Nginx

Nginx(发音为 "engine-x")是一种高性能的HTTP的反向代理服务器[45],最开始是由俄罗斯程序员伊戈尔·赛索耶夫(Igor Sysoev)2004年开发,并逐渐发展成为一个功能丰富且广泛应用的软件项目。Nginx以其出色的性能、稳定性、低内存消耗和高并发处理能力而闻名,尤其擅长处理大量的静态内容请求以及动态内容的转发。

1.5 RabbitMQ

RabbitMQ 是一个开源的消息中间件(Message-Oriented Middleware, MOM),它遵循 Advanced Message Queuing Protocol (AMQP) 标准,用 Erlang 编程语言开发,并在 Mozilla Public License 下开源。通常被用作处理数据通信的消息中间件。RabbitMQ 作为一种企业级消息传递系统,能够在分布式系统之间提供异步通信和解耦服务,实现系统之间的松耦合和扩展性。适用于各种分布式系统的通信需求。它可以在不同的应用程序、服务和系统之间建立可靠的异步通信机制,提高系统的可扩展性、可靠性和性能。

1.6 Elasticsearch

Elasticsearch 是一个开源的、分布式的搜索引擎和数据分析引擎,基于 Apache Lucene 库构建而成。它提供了一个高可用、高性能、接近实时的全文搜索服务,并且支持结构化和非结构化数据的存储和检索。

1.7 MySQL + Redis

在该项目中就是使用到了MySQL关系型数据库用来存储数据,以及使用Redis的Key-Value键值对的存储方式的缓存数据库。

1.7.1 MySQL

MySQL是个关系型数据库管理系统,诞生于瑞典MySQL AB公司,后来就被Oracle公司所收购。且它是当前最流行的关系型数据库管理系统之一,尤其在WEB应用方面,MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。其体积小、速度快、整体拥有成本低。

1.7.2 Redis

Redis(Remote Dictionary Server)是一个开源的内存数据库[46],它使用ANSI C语言编写,支持网络交互,且具有基于内存和持久化的特性,是一个Key-Value数据库,并提供了多种语言的API。

1.8 Vue.js

Vue.js 是一款流行的前端框架,它专注于视图层,通过简洁的 API 实现了数据的双向绑定和组件化开发。Vue.js 的设计目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。这使得开发者能够构建出复杂的前端界面,同时保持代码的清晰和可维护性。

Vue.js 在实际应用中,广泛用于构建各种类型的 Web 应用,包括单页面应用(SPA)、移动端应用、桌面端应用等。它还与其他技术栈(如 Vue Router、Vuex、Element UI 等)完美集成,为开发者提供了强大的支持。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
分布式电商系统的设计与实现①
随着电子商务的迅猛发展,高并发处理能力成为电商系统不可或缺的核心需求。如何设计一个高效、稳定且易于扩展的电商系统,以应对高并发场景,成为当前电商行业亟待解决的问题。
会洗碗的CV工程师
2024/06/13
1840
分布式电商系统的设计与实现①
35款优秀的 SpringBoot/SpringCloud 开源项目,开发脚手架,总有一款适合你!
SpringBoot 是一个非常流行的 Java 框架,它可以帮助开发者快速构建应用程序。他不仅继承了 Spring 框架原有的优秀特性,而且还通过简化配置来进一步简化了 Spring 应用的整个搭建和开发过程。
程序员大彬
2024/02/26
23.1K0
35款优秀的 SpringBoot/SpringCloud 开源项目,开发脚手架,总有一款适合你!
分布式电商系统的设计与实现⑤-1
该系统整体使用分布式架构设计,总共分为18个小服务,通过Zookeeper注册中心进行注册,然后在Dubbo-Admin管理界面进行统一管理。数据存储层主要通过MySQL来存储业务数据,Redis作为存储缓存。项目整体架构图如下图 4-1:
会洗碗的CV工程师
2024/06/17
2200
分布式电商系统的设计与实现⑤-1
阿里P8根据企业需求讲解微服务分布式系统开发527页进阶笔记
分布式系统比单机系统复杂得多,但经过多年的发展,业界已经有了丰富的分布式系统理论,也有了许多优秀的组件。在分布式系统理论里,最近流行的微服务架构理论成了佼佼者,微服务的概念也成了当前分布式系统实现方案中的主流,显然,微服务架构成了分布式系统的一种形式。优秀的分布式系统组件早期主要以国内阿里巴巴的Dubbo(现今已经被Apache归纳进入其孵化器)为主,后来从国外引入了Spring Boot和Spring Cloud,它们现在是微服务实现的主流方案。
愿天堂没有BUG
2022/10/28
3870
阿里P8根据企业需求讲解微服务分布式系统开发527页进阶笔记
基于Spring+SpringMVC+Mybatis的分布式敏捷开发系统架构
本项目不仅仅是一个开发架构,而是努力打造一套从 前端模板 - 基础框架 - 分布式架构 - 开源项目 - 持续集成 - 自动化部署 - 系统监测 - 无缝升级 的全方位J2EE企业级开发解决方案。
好好学java
2020/11/06
6740
基于Spring+SpringMVC+Mybatis的分布式敏捷开发系统架构
分布式技术之dubbo二
1,课程回顾 2,本章重点 父子工程的使用,子工程相互调用 springboot+mybatis+dubbo+zookeeper+mysql 部署一个dubbo_admin治理项目(可以对提供者和消费者进行管理) dubbo负载均衡功能 3,具体内容 3.1 springboot,mybatis整合dubbo 3.1.1创建父项目(springboot+mybatis方式创建),pom.xml引入jar:
张哥编程
2024/12/13
810
分布式技术之dubbo二
Spring Boot + Spring Cloud 实现权限管理系统 后端篇(一):Kitty 系统介绍
温馨提示: 有在演示环境删除数据的童鞋们,如果可以的话,麻烦动动小指,右键头像菜单, 选择 -> 备份还原 帮忙恢复到系统默认备份数据,方便后来的童鞋查看,谢谢啦。
朝雨忆轻尘
2019/06/19
1.4K0
java后端开发框架有哪些(java后端需要学哪些框架)
接收外界的API请求,解析后去执行数据库操作,最后将数据包装好返回给调用者(当然,中间还包含其他业务逻辑)
全栈程序员站长
2022/07/31
2.5K0
java后端开发框架有哪些(java后端需要学哪些框架)
免费管理系统软件_什么管理系统好做
此项目是 vue + element-ui 构建的后台管理系统,是后台项目node-elm 的管理系统,所有的数据都是从服务器实时获取的真实数据,具有真实的注册、登陆、管理数据、权限验证等功能。
全栈程序员站长
2022/10/01
3.2K0
免费管理系统软件_什么管理系统好做
开源半个月收获接近 1k Star!你需要的开源项目都在这里!
半个月前,我开源了awesome-java ,这是一个 Github 上非常棒的 Java 开源项目集合。是的!就是下面这个这么骚的图标!
Guide哥
2020/05/07
1.2K0
开源半个月收获接近 1k Star!你需要的开源项目都在这里!
精选的10款Java开源项目,建议收藏
目前国内的IT开源环境还是相当不错,但是国内开发注重是应用,创新有但不多,从榜单可以看出,专门搞技术的还是少数,结合项目实践的占大多数,分享给大家,架构的时候可以参考这些解决方案。
攻城狮的那点事
2021/02/05
1.2K0
精选的10款Java开源项目,建议收藏
分布式--使用Dubbo搭建分布式项目
在分布式架构中,我们会将不同功能模块化,部署到不同的服务器上,这时不同模块之间的通讯就由RPC框架完成,上次介绍了Dubbo的基本使用,知道了它基于Spring容器,因此在SpringBoot项目中可以很方便的使用
aruba
2022/06/19
5290
分布式--使用Dubbo搭建分布式项目
一个用来深度学习并实战 Spring Boot 的项目,共 66 个集成demo
◆ 一、开源项目简介 spring boot demo 是一个用来深度学习并实战 spring boot 的项目,目前总共包含 66 个集成demo,已经完成 55 个。 ◆ 二、开源协议 使用MIT开源协议 ◆ 三、界面展示 ◆ 四、功能概述 该项目已成功集成 actuator(监控)、admin(可视化监控)、logback(日志)、aopLog(通过AOP记录web请求日志)、统一异常处理(json级别和页面级别)、freemarker(模板引擎)、thymeleaf(模板引擎)、Beetl(模板引
IT大咖说
2022/10/10
1.9K0
一个用来深度学习并实战 Spring Boot 的项目,共 66 个集成demo
世界杯阵型之争的背后,国产开源项目百花争艳 | 码云周刊第 77 期
畅爽火热的狂欢月已然来临,在城市中随处都能感受到世界杯带来的激情。为世界杯加油怎能少得了程序员?不过今天我们不谈明星,不说球队,我们一起聊聊阵型。毫无疑问,阵型对于一支足球队来说,基本决定了比赛策略和节奏以及球员的职责,常见的几种如442、433、451、352等及其变种几乎涵盖了90%以上的阵型。小编今天就为大家整理了码云开源项目中的 433 阵型,希望大家能够喜欢! 如果大家有意向做开源项目,记得托管到 码云 上哦,我们会及时给予推荐。最后,如果你很喜欢以下提到的项目,别忘了分享给其他人哦! 三个前端
码云Gitee
2018/07/05
7180
12. Springboot集成Dubbo3(三)Dubbo-Admin
Dubbo Admin是用于管理Dubbo服务的基于Web的管理工具。Dubbo Admin提供了一个用户友好的界面,用于在分布式环境中监控和管理基于Dubbo的应用程序。
有一只柴犬
2024/02/29
6290
12. Springboot集成Dubbo3(三)Dubbo-Admin
分布式服务治理框架Dubbo前言QuickStart 一些思考
Dubbo是一个被国内很多互联网公司广泛使用的开源分布式服务治理框架,是一个非常全面的SOA基础框架,当当网在Dubbo基础上新增了一些功能,并将其命名为Dubbox(Dubbo eXtensions)。
用户2890438
2018/08/21
5900
分布式服务治理框架Dubbo前言QuickStart 一些思考
分布式架构的演进
系统架构演化历程-初始阶段架构 初始阶段 的小型系统 应用程序、数据库、文件等所有的资源都在一台服务器上通俗称为LAMP特征:应用程序、数据库、文件等所有的资源都在一台服务器上。描述:通常服务器操作系
Java高级架构
2018/04/19
1.2K0
分布式架构的演进
推荐一款基于SpringBoot+Vue开发的分布式网盘系统(附源码)
基于Spring Boot + Vue_cli@3 框架开发的分布式文件系统,旨在为用户和企业提供一个简单、方便的文件存储方案,能够以完善的目录结构体系,对文件进行管理 。
好好学java
2021/12/08
2.9K4
推荐一款基于SpringBoot+Vue开发的分布式网盘系统(附源码)
硬核! 逛了4年Github ,一口气把我收藏的 Java 开源项目分享给你!
Great Java project on Github(Github 上非常棒的 Java 开源项目).持续完善中。地址:https://github.com/Snailclimb/awsome-java
Guide哥
2020/05/08
1.3K0
超全!我整理一波最常用的开源项目
发这篇文章的起因是看到知乎有个类似的问题,然后感觉高赞的回答不是很让人满意,获得这么高的点赞也是让我很迷。
cxuan
2020/09/29
1.8K0
超全!我整理一波最常用的开源项目
推荐阅读
相关推荐
分布式电商系统的设计与实现①
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档