目录
原文地址:JavaWeb开发中一些常见的技术 - Pleasure的博客
下面是正文内容:
前言
这是一篇笔记
主要记录一些Java开发中会遇到的:
一些陌生的技术,对应的英文单词,主要的用途,以及对应的应用场景。
方便本人以及初次接触这些专有名词的小伙伴的理解。
正文
Git的一些概念
分支:用来独立开发特性或修复问题的副本。允许在不影响主要代码的情况下进行实验和开发。
提交:代表着对项目文件的一系列更改。
推送:将本地更改上传到远程存储库的过程。其他开发者可以看到你的更改并在其本地环境中使用它们。
合并:将两个或多个分支的更改合并到一个分支中的过程。它通常用于将一个特性分支的更改合并到主分支(通常是 master
)中。
变基:将一个分支的更改移动到另一个分支上的过程。它通常用于保持提交历史的整洁和线性。
有关Git的这些概念功能常见于企业级应用的研发过程中
JavaWeb框架
用于简化和加速Web应用程序开发的软件框架,用于处理Web应用程序开发中的常见任务,如路由请求、处理HTTP请求和响应、管理会话状态、访问数据库等。
常见的Java Web框架包括Spring MVC、Spring Boot、Apache Struts、Play Framework等。这些框架各自具有不同的特点和适用场景,开发人员可以根据项目需求选择合适的框架。
通常运用的是SpringBoot。
微服务
微服务是一种架构风格,用于构建单个应用程序作为一组小型独立服务的方式。每个服务都运行在自己的进程中,并且可以使用轻量级通信机制(通常是HTTP API)与其他服务进行通信。每个微服务都专注于执行特定的业务功能,并且可以独立部署、扩展和管理。
微服务架构有助于提高应用程序的可伸缩性、灵活性和可维护性,同时也有助于团队之间的解耦合,使其能够更快地迭代和交付新功能。然而,微服务架构也带来了一些挑战,如分布式系统的复杂性、服务间通信的延迟等。
SpringCloud
Spring Cloud是一个基于Spring Boot的开源微服务框架,用于构建分布式系统中的微服务架构。Spring Cloud通过提供各种微服务开发中常见的功能,如服务注册与发现、负载均衡、断路器、分布式配置等,帮助开发人员快速构建、部署和管理微服务。
Spring Cloud为开发人员提供了一套完整的微服务解决方案,可以帮助开发人员快速构建、部署和管理分布式系统中的微服务架构。它是构建云原生应用和微服务架构的首选框架之一,广泛应用于各种企业级应用和互联网应用中。
RabbitMQ
RabbitMQ是一种开源的消息队列软件,是一个基于AMQP(高级消息队列协议)的消息代理,用于在应用程序之间传递消息。RabbitMQ可以帮助不同的应用程序、服务或组件之间进行异步通信,提供了一种可靠的方式来处理消息传递、任务排队和工作流管理。它是一个高度可靠、可扩展的消息系统,被广泛用于构建分布式、可扩展的应用程序架构。
RabbitMQ可以被视为微服务架构中的一种轻量级通信机制,用于促进微服务之间的松耦合通信。
MyBatis
MyBatis是一个开源的持久层框架,它简化了数据库操作和SQL编写的过程,使得Java程序可以更轻松地与关系型数据库交互。MyBatis的核心思想是将SQL语句与Java方法进行映射,使得开发人员可以通过简单的配置文件将SQL语句与Java方法绑定在一起,而无需在代码中硬编码SQL语句。
而MyBatis-Plus是基于MyBatis的增强工具包,扩展了MyBatis的功能,并提供了许多实用的功能和工具,以简化持久层的开发。包括:通用CRUD(增删改查)操作,条件构造器,分页插件等等。
Redis
Redis 是一个开源的、高性能的键值对数据库,通常被用作数据结构服务器。
高性能:Redis 将所有数据存储在内存中,从而提供极高的读写速度,这使得它非常适合需要快速数据访问的场景,如缓存、会话存储、实时分析等。
持久性:也可以将数据持久化到磁盘中,支持快照和只追加文件。
原子操作:Redis 的所有操作都是原子性的,这意味着对数据的复杂操作可以在多个客户端之间安全执行,而不需要额外的锁定或复杂的事务协议。
在计算中,当我们说一个操作是“原子性的”时,我们的意思是这个操作在执行的过程中不可被其他操作打断,它是一个不可分割的整体。这意味着在操作执行的任何时刻,其他的进程或线程都无法看到中间状态,只能看到操作完成前的状态或操作完成后的状态。
MongoDB
MongoDB是一个开源的NoSQL数据库系统,它使用文档模型存储数据,非常适合于处理大量数据和高并发访问的场景。MongoDB是以C++编写的,采用分布式文件存储的方式来存储数据,支持丰富的查询语言和灵活的数据模型。
和MySQL的一些区别:
- MongoDB采用文档存储模型,数据以JSON格式的文档存储在集合(collection)中。每个文档可以包含不同结构的数据,文档之间没有固定的模式要求。使用基于文档的查询语言,称为MongoDB查询语言(Mongo Query Language,MQL)。它支持丰富的查询操作,包括基本的CRUD操作、聚合操作、地理空间查询等。具有良好的可扩展性,支持分布式存储和自动故障转移,数据可以水平分片存储在多个节点上,以实现高可用性和横向扩展。
- MySQL采用关系型数据库模型,数据以表格形式存储,每个表格包含多个行和列,行之间有严格的结构要求,需要遵循预定义的表结构(即表的模式)。使用结构化查询语言(Structured Query Language,SQL),它是一种通用的数据库查询语言,支持关系型数据库的各种操作,包括数据查询、更新、删除、插入等。可扩展性较差,虽然可以通过主从复制和分区表等方式来实现一定程度的扩展,但相比之下不如MongoDB灵活和方便。
WebSocket
WebSocket是一种在单个TCP连接上进行全双工通信的网络协议,通常用于在Web浏览器和Web服务器之间实现实时的、双向的数据传输。与传统的HTTP请求-响应模型不同,WebSocket允许服务器主动向客户端推送数据,而不需要客户端先发送请求。特点:全双工通信,低延迟,轻量级,跨域支持,安全性。
WebSocket通常用于实现实时的Web应用程序,如在线游戏、聊天应用、股票行情更新等。在Web开发中,通常使用JavaScript的WebSocket API来与WebSocket服务器建立连接,并进行数据的发送和接收。常见的WebSocket服务器包括Node.js的WebSocket库、Java的Spring框架中的WebSocket模块等。
Nacos
Nacos 是一个开源的服务发现和配置管理平台,由阿里巴巴开发并贡献到开源社区。
服务发现和服务健康监测:服务与服务之间的相互发现并实现负载均衡。
动态配置服务:动态地管理所有环境的配置。配置更新后,Nacos 能够即时推送更新到服务实例,从而实现配置的动态管理和自动更新,无需重启服务。
动态 DNS 服务:通过服务名动态地解析服务的实际地址,这在云环境中非常有用,因为服务实例可能会因为扩展或其他原因而频繁变化 IP 地址。
MinIO
MinIO是一个开源的对象存储服务器,旨在为现代应用程序提供高性能的、可扩展的存储解决方案。主要特点包括:可扩展性,高性能,兼容性等。完全兼容Amazon S3 API,因此可以无缝地与现有的S3兼容应用程序和工具集成。
通常用于构建各种类型的应用程序和服务,包括数据湖、数据备份归档、媒体储存(CDN)、对象储存(OSS)、分布式文件共享等等。它已经成为了当今最受欢迎的对象存储解决方案之一,在各种行业和领域都得到了广泛的应用。
CDN:是一种分布式服务,旨在提高网络内容的传输速度和可用性。它通过在全球各地部署大量的缓存服务器(称为边缘节点),将网站、应用程序、流媒体等内容复制到离用户最近的位置,从而加速用户对这些内容的访问速度。
OSS:是一种云存储服务,用于存储各种类型的数据,如图片、视频、文档等。它提供了安全、可靠和高可用的存储空间,可以随时随地访问和管理存储的数据。通过简单的API接口或Web界面,用户可以上传、下载、管理和共享存储的数据。
常见的OSS提供商包括阿里云OSS、腾讯云COS、Amazon S3等。
尾声
由于笔者所在学校临近期末,需要准备考试论文以及报告
大一暑假4个月,很难找到实习,如果不去夏校,基本上就只能兼职或者在家自学了
届时肯定会有时间经常更新了