如何简洁高效的搭建一个SpringCloud2023的maven工程
前言
依赖管理有gradle和maven,在这里选择比较常用和方便的Maven作为工程项目和依赖管理工具来搭建SpringCloud实战工程。主要用到的maven管理方式是多模块和bom依赖管理。
什么是maven的多模块依赖管理
Maven 多模块项目相对于单模块项目而言,依赖是不共享的,但父模块提供了全局共享依赖的功能,可以针对不同模块所需要依赖的包进行分模块引入。具体如下:
- 所有子模块都依赖的包,如
junit可以统一由父模块中的<dependencies>设置依赖。 - 多个子模块但非全部子模块依赖的包,可以在父模块中的
<dependencyManagement>中统一管理依赖版本,再由每个子模块自主引入依赖,这样设置可以达到项目中多个子模块依赖的包版本统一的目的。 - 单个子模块依赖的包,可以直接交由这个子模块引入即可。但有时候出于对后续可能添加子模块考虑,即使当前只有一个子模块依赖的包,也可以统一交由父模块的
<dependencyManagement>统一管理,而如果确认后续不会再加子模块的,可以按前者进行处理。
在父模块中,可通过<properties>统一管理依赖包的版本,让共享包也更加统一管理。
什么是maven的bom依赖管理
Maven 的 BOM(Bill of Materials)依赖管理是一种用于集中管理项目依赖关系和版本的方式,它提供了一种方便的方法来确保多个项目或模块在使用相同依赖时具有一致的版本。
BOM 通常是一个特殊的 Maven POM(Project Object Model)文件,其中定义了项目所需的依赖项及其版本。通过在其他项目中引用这个 BOM,这些项目将自动获取 BOM 中定义的依赖版本,而无需明确指定每个依赖的版本。
这样做的好处是可以减少重复的依赖配置工作,并确保在多个项目中使用相同的依赖版本,从而减少由于依赖不一致导致的问题。此外,BOM 还可以用于管理依赖的升级和版本控制,只需在 BOM 中更新依赖的版本,所有引用该 BOM 的项目都会自动获取最新的版本。
要使用 Maven 的 BOM 依赖管理,通常需要执行以下步骤:
- 创建或获取一个 BOM POM 文件,其中定义了项目的依赖和版本信息。
- 在需要使用 BOM 的项目中,通过在
<dependencyManagement>部分引用 BOM POM 文件。 - 在项目的具体依赖部分,可以直接使用 BOM 中定义的依赖,而无需明确指定版本。
组件选型
在“SpringCloud2023最新版本该如何进行组件选型?”一文中已经具体的介绍了SpringCloud的组件对比和选型,具体可以查看合集里面的相关文档。
- 注册中心(Spring Cloud Zookeeper):负责服务的注册和发现。
- 网关(Spring Cloud Gateway):作为外部请求的入口,实现路由和负载均衡。
- 云服务配置(Spring Cloud Config):用于管理服务的配置信息。
- 熔断(Sentinel):提供熔断器功能,实现服务的限流和降级。
- 服务追踪(Micrometer Tracing):用于追踪和监控服务的性能和调用情况。
- 测试集成(JUnit 5 + Spring Boot Test):用于编写和执行单元测试。
- 远程调用(OpenFeign):用于服务之间的远程调用。
- 接口文档(springdoc-openapi + openapi3):用于生成和管理 API 的文档。
- 分布式事务(Seata):用于处理跨多个服务的事务。
版本选择
在“SpringCloud和SpringBoot的版本依赖该怎么选择”一文中已经具体的介绍了SpringCloud的版本如何选择,具体可以查看合集里面的相关文档。
| 组件 | 版本 |
|---|---|
| jdk | 17 |
| spring boot | 3.2.x |
| spring cloud | 2023.0.x |
| spring cloud alibaba | 2022.0.0.0(还未更新,但是兼容2023) |
为什么选择JDK17
选择JDK17的原因如下:
- JDK 17是 LTS(长期支持版)。
- JDK 17性能提升不少。
- 大多数第三方框架和库都已经支持,不会有什么大坑。
- JDK 17有更多的新特性支持。
Maven工程依赖说明
|-- banana-client1
|-- banana-client2
|-- banana-client3
|-- banana-client4-sentinel
|-- banana-client5-tracing
|-- banana-client6-test
|-- banana-common
| |-- banana-common-bom
| `-- banana-common-core
|-- banana-config
|-- banana-gateway
|-- banana-gateway-sso
`-- banana-seata-example
- 根目录下的pom.xml负责管理整个项目的版本和依赖引入版本管理,以及子模块的管理。
banana-common-bom负责管理整个公共依赖的版本,比如undertow、swagger的版本。banana-common-core负责管理整个公共组件的引入,比如 hutool、validation、test等。gateway相关项目为SCG相关工程。client相关项目为springboot相关工程。- 其他工程会在后续的文章说明。欢迎持续关注。
顶级工程pom.xml配置
该maven的pom文件定义了如下内容:
- Maven 项目的模块列表
- Maven 项目的属性列表
- Maven 项目的依赖管理
- Maven 项目的仓库列表
- Maven 项目的构建配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><!-- Maven 项目的根节点 --><modelVersion>4.0.0</modelVersion><!-- Maven 项目的groupId,在 Maven 仓库中,groupId 必须是唯一的 --><groupId>io.rainforest</groupId><!-- Maven 项目的 artifactId,可以包含多个模块 --><artifactId>banana</artifactId><!-- Maven 项目的版本号 --><version>1.0</version><!-- Maven 项目的打包方式,这里是 pom --><packaging>pom</packaging><!-- Maven 项目的模块列表 --><modules><module>banana-gateway</module><module>banana-config</module><module>banana-common</module><module>banana-client1</module><module>banana-client2</module><module>banana-client3</module><module>banana-client4-sentinel</module><module>banana-client5-tracing</module><module>banana-client6-test</module><module>banana-seata-example</module><module>banana-gateway-sso</module></modules><!-- Maven 项目的属性列表 --><properties><!-- Maven 编译器的 source 版本 --><maven.compiler.source>17</maven.compiler.source><!-- Maven 编译器的 target 版本 --><maven.compiler.target>17</maven.compiler.target><!-- 项目构建的源编码 --><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!-- Spring Boot 的版本 --><spring-boot.version>3.2.3</spring-boot.version><!-- Spring Cloud 的版本 --><spring-cloud.version>2023.0.0</spring-cloud.version><!-- Spring Cloud Alibaba 的版本 --><spring-cloud-alibaba.version>2022.0.0.0</spring-cloud-alibaba.version></properties><!-- Maven 项目的依赖管理 --><dependencyManagement><!-- Maven 项目的依赖列表 --><dependencies><!-- banana 公共版本定义 --><dependency><groupId>io.rainforest</groupId><artifactId>banana-common-bom</artifactId><version>${project.version}</version><type>pom</type><scope>import</scope></dependency><!-- Spring Boot 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><!-- Spring Cloud 依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- Spring Cloud Alibaba 依赖 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><!-- Maven 项目的仓库列表 --><repositories><!-- Maven 中央仓库的配置 --><repository><id>central</id><name>Central Repository</name><url>https://mirrors.huaweicloud.com/repository/maven/</url><layout>default</layout><snapshots><enabled>false</enabled></snapshots></repository></repositories><!-- Maven 项目的构建配置 --><build><!-- Maven 项目构建的最终名称 --><finalName>${project.name}</finalName><!-- Maven 项目的资源配置 --><resources><!-- 资源文件所在的目录 --><resource><directory>src/main/resources</directory><!-- 对资源文件进行过滤 --><filtering>true</filtering></resource></resources><!-- Maven 项目的插件管理 --><pluginManagement><!-- Maven 项目的插件列表 --><plugins><!-- Spring Boot Maven 插件的配置 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><!-- 项目构建的最终名称 --><finalName>${project.build.finalName}</finalName><!-- 启用 Spring Boot 的分层 --><layers><enabled>true</enabled></layers></configuration><!-- Maven 插件的执行配置 --><executions><!-- Maven 插件的执行目标 --><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></pluginManagement></build>
</project>
工程的公用依赖bom配置
该maven的pom文件定义了如下内容:
- Maven 项目的属性列表,包含版本等信息
- Maven 项目使用到的依赖版本管理
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><groupId>io.rainforest</groupId><artifactId>banana-common-bom</artifactId><version>1.0</version><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><description>banana-common-bom 公共依赖管理</description><properties><banana.common.version>${project.version}</banana.common.version><spring-boot.version>3.1.3</spring-boot.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><log4j2.version>2.17.1</log4j2.version><maven.compiler.target>17</maven.compiler.target><maven.compiler.source>17</maven.compiler.source><git.commit.plugin>4.9.9</git.commit.plugin><spring.checkstyle.plugin>0.0.39</spring.checkstyle.plugin><fastjson.version>1.2.83</fastjson.version><springdoc.version>2.1.0</springdoc.version><swagger.core.version>2.2.14</swagger.core.version><mybatis-plus.version>3.5.3.2</mybatis-plus.version><mysql.version>8.0.33</mysql.version><dynamic-ds.version>4.1.3</dynamic-ds.version><seata.version>1.6.1</seata.version><excel.version>3.1.0</excel.version><asm.version>7.1</asm.version><sms.version>3.0.0</sms.version><jaxb.version>2.3.5</jaxb.version><shardingsphere.version>5.4.0</shardingsphere.version><hutool.version>5.8.21</hutool.version><mica.version>3.0.8</mica.version><sentinel.version>1.8.4</sentinel.version></properties><!-- 定义全局jar版本,模块使用需要再次引入但不用写版本号--><dependencyManagement><dependencies><dependency><groupId>io.rainforest</groupId><artifactId>banana-common-core</artifactId><version>${banana.common.version}</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>${mysql.version}</version></dependency><!--springdoc --><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webflux-ui</artifactId><version>${springdoc.version}</version></dependency><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-api</artifactId><version>${springdoc.version}</version></dependency><dependency><groupId>io.swagger.core.v3</groupId><artifactId>swagger-annotations-jakarta</artifactId><version>${swagger.core.version}</version></dependency><!--fastjson 版本--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency><!-- 多数据源依赖 --><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot3-starter</artifactId><version>${dynamic-ds.version}</version></dependency><!-- 阿里云短信下发 --><dependency><groupId>io.springboot.sms</groupId><artifactId>aliyun-sms-spring-boot-starter</artifactId><version>${sms.version}</version></dependency><!-- seata kryo 序列化--><dependency><groupId>io.seata</groupId><artifactId>seata-serializer-kryo</artifactId><version>${seata.version}</version></dependency><!--orm 相关--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>${mybatis-plus.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-annotation</artifactId><version>${mybatis-plus.version}</version></dependency><!--hutool bom 工具类--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-bom</artifactId><version>${hutool.version}</version><type>pom</type><scope>import</scope></dependency><!--mica bom 工具类--><dependency><groupId>net.dreamlu</groupId><artifactId>mica-bom</artifactId><version>${mica.version}</version><type>pom</type><scope>import</scope></dependency><!--web 模块--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${spring-boot.version}</version><exclusions><!--排除tomcat依赖--><exclusion><artifactId>spring-boot-starter-tomcat</artifactId><groupId>org.springframework.boot</groupId></exclusion></exclusions></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.3.0</version></dependency></dependencies></dependencyManagement><build><plugins><!--打包jar 与git commit 关联插件--><plugin><groupId>io.github.git-commit-id</groupId><artifactId>git-commit-id-maven-plugin</artifactId><version>${git.commit.plugin}</version></plugin><!--代码格式插件,默认使用spring 规则--><plugin><groupId>io.spring.javaformat</groupId><artifactId>spring-javaformat-maven-plugin</artifactId><version>${spring.checkstyle.plugin}</version></plugin></plugins></build></project>
源码信息
和“SpringCloud实战”对应的源码信息如下:
- github https://github.com/r0ad/spring-cloud-example
- gitee https://gitee.com/r0ad/spring-cloud-example
关于作者
来自一线全栈程序员nine的八年探索与实践,持续迭代中。欢迎关注“雨林寻北”或添加个人卫星codetrend(备注技术)。
相关文章:
如何简洁高效的搭建一个SpringCloud2023的maven工程
前言 依赖管理有gradle和maven,在这里选择比较常用和方便的Maven作为工程项目和依赖管理工具来搭建SpringCloud实战工程。主要用到的maven管理方式是多模块和bom依赖管理。 什么是maven的多模块依赖管理 Maven 多模块项目相对于单模块项目而言,依赖是…...
uniapp直接连接wifi(含有ios和安卓的注意事项)
前言 小程序中直接连接wifi-----微信小程序 代码 启动 //启动wifistartWifi() {return new Promise((resolve, reject) > {uni.startWifi({success: (res) > {console.log(启动wifi 成功, res)resolve(true)},fail: (err) > {console.error(启动wifi 失败, err)uni.s…...
一. Ubuntu入门
目录 一. Ubuntu系统安装 1. 安装虚拟机软件VMware 2. 安装Ubuntu操作系统 二. Ubuntu系统入门 1. Shell操作 1.1 Shell 简介 1.2 Shell基本操作 1.3 常用Shell命令 (1) 目录信息查看命令ls (2) 目录切换命令cd (3) 当前路径显示命令pwd (4) 系统信息查看命令uname…...
rk3568 Android12 增加支持 ntfs 格式
rk3568 Android12 增加支持 ntfs 格式 Windows平台上可移动硬盘支持 NTFS,FAT32,exFAT三种格式。Fat32文件格式是一种通用格式,任何USB存储设备都会预装该文件系统,可以在任何操作系统平台上使用。最主要的缺陷是只支持最大单文件大小容量为4GB,因此日常使用没有问题,只有…...
【MapReduce】02.Hadoop序列化
实现bean对象序列化步骤 自定义bean对象实现序列化接口。 1)必须实现Writable接口 2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造 public FlowBean(){super(); } 3)重写序列化方法 Override public …...
【Claude 3】一文谈谈Anthropic(Claude) 亚马逊云科技(Bedrock)的因缘际会
文章目录 前言1. Anthropic的诞生2. Anthropic的“代表作”——Claude 3的“三驾马车”3. 亚马逊云科技介绍4. 强大的全托管服务平台——Amazon Bedrock5. 亚马逊云科技(AWS)和Anthropic的联系6. Claude 3模型与Bedrock托管平台的关系7. Clude 3限时体验入口分享【⚠️截止3月1…...
c#开发100问?
什么是C#?C#是由谁开发的?C#与Java之间有哪些相似之处?C#与C有哪些不同之处?C#的主要特性是什么?请解释C#中的类和对象。C#中的命名空间是什么?什么是C#中的属性和字段?请解释C#中的继承和多态性…...
回归预测 | Matlab实现BiTCN-BiGRU-Attention双向时间卷积双向门控循环单元融合注意力机制多变量回归预测
回归预测 | Matlab实现BiTCN-BiGRU-Attention双向时间卷积双向门控循环单元融合注意力机制多变量回归预测 目录 回归预测 | Matlab实现BiTCN-BiGRU-Attention双向时间卷积双向门控循环单元融合注意力机制多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.M…...
SpringCloud微服务-RabbitMQ快速入门
文章目录 RabbitMQ快速入门1、什么是MQ?2、RabbitMQ概述3、RabbitMQ的结构和概念4、常见消息模型5、HelloWorld RabbitMQ快速入门 1、什么是MQ? MQ (MessageQueue),中文是消息队列,字面来看就是存放消息的…...
OpenCV学习笔记(五)——图片的缩放、旋转、平移、裁剪以及翻转操作
目录 图像的缩放 图像的平移 图像的旋转 图像的裁剪 图像的翻转 图像的缩放 OpenCV中使用cv2.resize()函数进行缩放,格式为: resize_imagecv2.resize(image,(new_w,new_h),插值选项) 其中image代表的是需要缩放的对象,(new_w,new_h)表…...
c++ 串口通信库
根据资料整理的串口通信库,封装成为了动态库,使用者只需要调用接口即可 使用实例如下: //接受数据 void CSerialPortCommonLibDemoDlg::OnReceive() { char * str NULL; str new char[256]; _port.readAllData(str); CString s…...
数据结构之单链表及其实现!
目录 编辑 1. 顺序表的问题及思考 2.链表的概念结构和分类 2.1 概念及结构 2.2 分类 3. 单链表的实现 3.1 新节点的创建 3.2 打印单链表 3.3 头插 3.4 头删 3.5 尾插 3.6 尾删 3.7 查找元素X 3.8 在pos位置修改 3.9 在任意位置之前插入 3.10 在任意位置删除…...
Ubuntu 22.04修改静态ip
1. 备份原网络配置文件 # 配置文件名称因机器设置有异 cd /etc/netplan cp 01-network-config.yaml 01-network-config.yaml.bak# 文件内容如下 network:version: 2renderer: NetworkManager2. 修改配置文件 使用 ipconfig 命令查看网络信息,ip addr 命令也可 我这…...
kali当中不同的python版本切换(超简单)
kali当中本身就是自带两个python版本的 配置 update-alternatives --install /usr/bin/python python /usr/bin/python2 100 update-alternatives --install /usr/bin/python python /usr/bin/python3 150 切换版本 update-alternatives --config python 0 1 2编号选择一个即可…...
MongoDB聚合运算符;$dateToString
$dateToString聚合运算符按用户指定的格式将日期对象转为字符串。 语法 { $dateToString: {date: <dateExpression>,format: <formatString>,timezone: <tzExpression>,onNull: <expression> } }字段说明: 字段是否必须描述date是<da…...
【开源】SpringBoot框架开发教学资源共享平台
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 类图设计3.3 数据库设计3.3.1 课程档案表3.3.2 课程资源表3.3.3 课程作业表3.3.4 课程评价表 四、系统展…...
python基础——条件判断和循环【if,while,for,range】
📝前言: 这篇文章主要讲解一下条件判断语句if和循环语句while,for在python中需要注意的地方。 建议已有一定了解(对语句的执行逻辑清楚)的读者观看,如果对条件判断和循环的执行逻辑不太清楚,也可…...
Pytorch 复习总结 6
Pytorch 复习总结,仅供笔者使用,参考教材: 《动手学深度学习》Stanford University: Practical Machine Learning 本文主要内容为:Pytorch 计算机视觉。 本文先介绍了计算机视觉中两种常见的改进模型泛化性能的方法:…...
借助 Terraform 功能协调部署 CI/CD 流水线-Part 1
在当今快节奏的开发环境中,实现无缝、稳健的 CI/CD 流水线对于交付高质量软件至关重要。在本文中,我们将向您介绍使用 Bitbucket Pipeline、ArgoCD GitOps 和 AWS EKS 设置部署的步骤,所有步骤都将利用 Terraform 的强大功能进行编排。在Part…...
云原生基础知识:容器技术的历史
容器化的定义: 容器化是一种轻量级的虚拟化技术,将应用程序及其所有依赖项(包括运行时、系统工具、系统库等)打包到一个称为容器的单独单元中。容器提供了一种隔离的执行环境,使得应用程序可以在不同的环境中运行&…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...
