前言
这是一篇笔记
主要记录一些 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 个月,很难找到实习,如果不去夏校,基本上就只能兼职或者在家自学了
届时肯定会有时间经常更新了