SpringCloud
单体应用与分布式应用什么是单体应用?
单体应用是指将一个应用程序的所有功能模块集中在一个单一的执行单元中,通常打包为一个单独的可执行文件或软件包。这个单体可以是一个WAR包,也可以是一个JAR包、一个EXE文件、一个容器镜像等。
单体应用的优缺点
优点:
整个项目是一个web工程,运行在一个JVM中,整合性较好,开发便捷,容易管理
缺点:
1.项目越大,代码量越大,造成编译、打包 费时,越来越影响效率
2.业务增多时会造成代码冗余重复,代码复用度不高,造成浪费
前后台两个项目 -> 前端: http://localhost:9999
后端: http://b:9999/adminLogin.html
例: 两个项目实体类重复
3.可伸缩性差,单体应用中的功能模块的使用场景,并发量,消耗的资源类型各有不同,对于资源的利用又互相影响,这样使我们对各个业务模块的系统容量很难给出较准确的评估
当项目只在一个规定的时间上线一个新功能时,且对并发要求度高,只能对该项目的对应的硬件升级或流量进行扩充,无法对其进行分配,对于一个单体应用来说造成了资源空间的浪费
4. ...
Docker
什么是docker?
Docker是一种轻量级的虚拟化技术,同时是一个开源的应用容器运行环境搭建平台,可以让开发者以便捷方式打包应用到一个可移植的容器中,然后安装至任何运行Linux或Windows等系统的服务器上。 相较于传统虚拟机,Docker容器提供轻量化的虚拟化方式、安装便捷、启停速度快。
docker的安装下载DockerDeskTopDockerDeskTop下载地址: https://www.docker.com/products/docker-desktop/
配置Docker环境1.启动Hyper服务
如果计算机windows功能中没有Hyper服务
新建一个文本文件,将下列命令加入
12345pushd "%~dp0"dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txtfor /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-pa ...
Spring
Spring
Spring 是一个开源的 JavaEE (Java Enterprise Edition) 应用程序开发框架,它提供了一种轻量级的、非侵入式的编程模型,旨在简化企业级Java应用程序的开发。
SpringBoot
SpringBoot
Spring Boot 是一个基于 Spring 框架的快速开发框架,旨在简化 Spring 应用程序的搭建和配置过程。它通过提供一种约定优于配置的方式,集成了许多常用的第三方库和工具,使得开发者可以更加专注于业务逻辑的实现,而不需要花费过多精力在繁琐的配置上。
SpringBoot-几种Controller测试方法
Swagger测试关于Swagger
Swagger 简介
Swagger 是一个用于设计、构建、文档化和使用 Restful API 的开源框架。它提供了一组工具,包括用于创建 API 规范的 Swagger 编辑器、用于生成 API 客户端代码的 Swagger Codegen,以及用于 API 文档化和测试的 Swagger UI。
Swagger 的主要目标是简化开发者在构建 API 时的工作流程,并促进不同团队之间的协作。通过使用 Swagger,开发者可以使用简单的 YAML 或 JSON 文件定义 API 的端点、参数、请求和响应体,并基于这些定义生成文档和代码。这样,开发者可以更好地定义 API 的结构和行为,同时也可以为开发者、测试人员和客户提供一个易于理解和使用的接口文档。
除了 API 定义和文档生成外,Swagger 还提供了一些工具和插件,以帮助开发者自动生成客户端代码、执行自动化测试以及部署和管理 API。
Swagger UI
Swagger UI 是 Swagger 的一个组件,用于可视化展示和交互式测试 API 的文档。它基于 Swagger 规 ...
mq
微服务一旦拆分,必然涉及到服务之间的相互调用,目前我们服务之间调用采用的都是基于OpenFeign的调用。这种调用中,调用者发起请求后需要等待服务提供者执行业务返回结果后,才能继续执行后面的业务。也就是说调用者在调用过程中处于阻塞状态,因此我们成这种调用方式为同步调用,也可以叫同步通讯。但在很多场景下,我们可能需要采用异步通讯的方式,为什么呢?
我们先来看看什么是同步通讯和异步通讯。如图:解读:
同步通讯:就如同打视频电话,双方的交互都是实时的。因此同一时刻你只能跟一个人打视频电话。
异步通讯:就如同发微信聊天,双方的交互不是实时的,你不需要立刻给对方回应。因此你可以多线操作,同时跟多人聊天。
两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发微信可以同时与多个人收发微信,但是往往响应会有延迟。
所以,如果我们的业务需要实时得到服务提供方的响应,则应该选择同步通讯(同步调用)。而如果我们追求更高的效率,并且不需要实时响应,则应该选择异步通讯(异步调用)。
同步调用的方式我们已经学过了,之前的OpenFeign调用就是。但是:
异步调用又该如何实现?
哪些业 ...