接下来,我会将整篇毕设论文放上该专栏,其中按照论文提纲主要分为八大部分。每一部分单独列出一篇文章。 这一篇就是论文的第三部分项目相关技术介绍。中括号代表的是参考文献,后面会有列出来
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项目,是Hadoop和HBase等分布式系统的重要组件。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腾讯技术创作特训营最新征文,快来和我瓜分大奖!