SpringCloud 2021版本教程:使用nacos作为注册中心和配置中心(2021版本+Boot2.7.6)

news2025/2/1 6:10:15

目录

前言

系列文章目录

一、什么是Nacos

1、nacos架构原理

2、nacos、eureka、zookeeper的区别

1、参考博客,写得很详细通俗易懂:一文说清eureka、zookepeer、nacos三者的关系 - 知乎

2、三者区别:

3、CAP原理:

二、项目目录

1.目录截图

2.完整pom文件

三.服务提供者provider

1.目录截图

2.完整pom文件

3.编写接口类

4.启动Java类

5.application.yml配置文件

6.bootstrap.yml配置文件

四.服务消费者consumer

1.目录截图

2.完整pom文件

3.编写FeignClient去调用消费者接口

4、编写消费者controller类

5.启动Java类

6.application.yml配置文件

7.bootstrap.yml配置文件

五、Nacos注册中心

1、配置中心截图

2、provider服务提供者完整配置文件

3、consumer消费者完整配置文件

4、查看服务注册

六、测试访问

1、启动服务 

2、输入地址:http://localhost:8763/hello-feign?name=1

总结


前言

本篇博客使用Spring Cloud 2021版本、Nacos、Spring Boot 2.7.6

系列文章目录

 Spring Boot2.0系列教程合集、Spring Cloud系列教程合集、Spring Boot常见错误合集、Spring Cloud常见错误合集_zjh_746140129的博客-CSDN博客


以下是本篇文章正文内容,下面案例可供参考

一、什么是Nacos

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。是Spring Cloud A 中的服务注册发现组件,类似于Consul、Eureka,同时它又提供了分布式配置中心的功能,这点和Consul的config类似,支持热加载。

1、nacos架构原理

参考博客:Nacos原理详解(注册中心,配置中心) - 腾讯云开发者社区-腾讯云

2、nacos、eureka、zookeeper的区别

1、参考博客,写得很详细通俗易懂:一文说清eureka、zookepeer、nacos三者的关系 - 知乎

2、三者区别:

1、协议:

eureka内部是AP协议,即它可以保证服务的高可用,但是对于一致性的要求不高

zookepper内部是CP协议,即它可以保证服务的数据一致性,但是对于服务的可用性要求不高

nacos内部是AP/CP协议,默认AP协议,如果对一致性的要求比较高可以切换为CP协议

nacos使用的是netty和服务直接进行连接,属于长连接;eureka是使用定时发送和服务进行联系,属于短连接

2、雪崩保护:

eureka是存在雪崩保护机制的,服务注册列表会缓存再调用方的本地

zookepper没有雪崩保护机制

nacos的雪崩保护机制和eureka的原理相同,将服务的注册列表保存在调用方的本地

3、容器化部署:

eureka和zookepper暂时不支持k8s

nacos在这方面是支持的

3、CAP原理:

C:Consistency

即一致性,访问所有的节点得到的数据应该是一样的。注意,这里的一致性指的是强一致性,也就是数据更新完,访问任何节点看到的数据完全一致,要和弱一致性,最终一致性区分开来。

A:Availability

即可用性,所有的节点都保持高可用性。注意,这里的高可用还包括不能出现延迟,比如如果节点B由于等待数据同步而阻塞请求,那么节点B就不满足高可用性。

P:Partiton tolerance

即分区容忍性,这里的分区是指网络意义上的分区。由于网络是不可靠的,所有节点之间很可能出现无法通讯的情况,在节点不能通信时,要保证系统可以继续正常服务。

nacos是根据配置识别CP或AP模式,如果注册Nacos的client节点注册时是ephemeral=true即为临时节点,那么Naocs集群对这个client节点效果就是AP,反之则是CP,即不是临时节点。

#false为永久实例,true表示临时实例开启,注册为临时实例
 spring.cloud.nacos.discovery.ephemeral=true

二、项目目录

1.目录截图

2.完整pom文件

<?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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.0</version>
        <relativePath/>
    </parent>
    <groupId>org.example</groupId>
    <artifactId>cloud-2021-boot2-7</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>cloud-consumer</module>
        <module>cloud-provider</module>
        <module>cloud-gateway</module>
    </modules>



    <!--统一管理jar包依赖版本-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-boot.version>2.7.3</spring-boot.version>
        <spring-cloud.version>2021.0.3</spring-cloud.version>
        <spring.cloud.alibaba.version>2021.0.1.0</spring.cloud.alibaba.version>
        <spring-cloud-openfeign.version>2.2.6.RELEASE</spring-cloud-openfeign.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- Spring Boot begin-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- Spring Boot end -->

            <!-- Spring cloud begin-->
            <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 end-->

            <!-- Spring cloud alibaba begin-->
            <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>
            <!-- Spring cloud alibaba end-->


        </dependencies>
    </dependencyManagement>


    <profiles>
        <profile>
            <!-- 开发环境 -->
            <id>dev</id>
            <properties>
                <environment>dev</environment><!-- 节点名字environment是自己随意取的 -->
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault><!-- 默认激活该profile节点 -->
            </activation>
        </profile>
        <profile>
            <!-- 测试环境 -->
            <id>uat</id>
            <properties>
                <environment>uat</environment>
            </properties>
        </profile>
       
    </profiles>

    <build>
        <finalName>cloud-2021-boot2-7</finalName>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <!-- 一个*指排除文件,不排除文件夹,两个*号指排除文件和文件夹 -->
                    <exclude>environment/dev/**</exclude>
                    <exclude>environment/uat/**</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources/environment/${environment}</directory>
                <targetPath>${project.build.directory}/classes</targetPath>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

三.服务提供者provider

1.目录截图

2.完整pom文件

<?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">
    <parent>
        <artifactId>cloud-2021-boot2-7</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloud-provider</artifactId>
    <packaging>jar</packaging>


    <dependencies>
        <!--nacos-discovery-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!--nacos-config-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-httpclient</artifactId>
        </dependency>

        <!--springboot web + actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

    </dependencies>

    <build>
        <finalName>cloud-provider</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

3.编写接口类

package com.cloud.provider.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Description: 服务提供者
 * @Author: zhoujh
 * @CreateDate: 2022/12/20$ 9:13 上午$
 * @Version: 1.0
 */
@RestController
public class HelloController {
    @Value("${server.port}")
    String port;

    @GetMapping("/hello")
    public String hello(@RequestParam(value = "name", defaultValue = "cloud2021",required = false) String name) {
        return "hello " + name + ", i'm provider ,my port:" + port;

    }
}

4.启动Java类

package com.cloud.provider;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * @Description: 启动类
 * @Author: zhoujh
 * @CreateDate: 2022/12/16$ 3:21 下午$
 * @Version: 1.0
 */

@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
    }
}

5.application.yml配置文件

server:
  port: 8765


6.bootstrap.yml配置文件

spring:
  profiles:
    active: dev
  application:
    name: provider


  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848 #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置

四.服务消费者consumer

1.目录截图

2.完整pom文件

<?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">
    <parent>
        <artifactId>cloud-2021-boot2-7</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloud-consumer</artifactId>

    <packaging>jar</packaging>


    <dependencies>
        <!--nacos-discovery-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!--nacos-config-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-httpclient</artifactId>
        </dependency>

        <!--springboot web + actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

    </dependencies>

    <build>
        <finalName>cloud-consumer</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

3.编写FeignClient去调用消费者接口

package com.cloud.consumer.service;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @Description: 通过feign去调用provider接口
 * @Author: zhoujh
 * @CreateDate: 2022/12/16$ 3:28 下午$
 * @Version: 1.0
 */
@FeignClient(value = "provider" )
public interface HelloService {

    @GetMapping("/hello")
    String hello(@RequestParam(value = "name", defaultValue = "cloud2021", required = false) String name);

}

4、编写消费者controller类

package com.cloud.consumer.controller;

import com.cloud.consumer.service.HelloService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Description: 消费者controller
 * @Author: zhoujh
 * @CreateDate: 2022/12/16$ 3:31 下午$
 * @Version: 1.0
 */
@RestController
public class HelloController {

    @Autowired
    HelloService helloService;

    @GetMapping("/hello-feign")
    public String helloFeign(){
        return helloService.hello("feign");
    }
}

5.启动Java类

package com.cloud.consumer;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 * @Description: 启动类
 * @Author: zhoujh
 * @CreateDate: 2022/12/16$ 11:22 上午$
 * @Version: 1.0
 */
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }


}

@EnableFeignClients注解很重要!!!

6.application.yml配置文件

server:
  port: 8762


7.bootstrap.yml配置文件

spring:
  profiles:
    active: dev
  application:
    name: consumer


  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848 #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置

五、Nacos注册中心

1、配置中心截图

2、provider服务提供者完整配置文件


server:
  port: 8769

spring:
  profiles:
    active: dev
  application:
    name: provider


  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848 #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置

3consumer消费者完整配置文件

server:
  port: 8763
spring:
  profiles:
    active: dev
  application:
    name: consumer


  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848 #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置

4、查看服务注册

六、测试访问

1、启动服务 

这里由于使用了配置中心,会优先读取Nacos配置的端口

2、输入地址:http://localhost:8763/hello-feign?name=1


总结

本Demo通过整合Spring Cloud 、Spring Boot、Nacos 、Feign,学习了Nacos作为服务注册中心和配置中心的使用,使用Feign作为服务发现与服务调用的使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104491.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis八股文

1、什么是MyBatis框架&#xff1f; MyBatis 是一款优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射&#xff0c;它内部封装了jdbc&#xff0c;不需要我们再写JDBC连接、使开发者只需要关注sql语句本身和业务&#xff0c;而不需要花费精力去处理加载驱动、…

【数据结构】基础:常见排序算法

【数据结构】基础&#xff1a;常见排序算法 摘要&#xff1a;本文将从排序的概念及其附属概念出发&#xff0c;再对排序算法进行分类&#xff0c;并对其思想与实现进行说明&#xff0c;最后对各个算法进行总结。 文章目录【数据结构】基础&#xff1a;常见排序算法一. 排序的概…

K8s CRD 和 Operator 来进行 NebulaGraph 的部署

中间件及运维管理 我们基于 K8s CRD 和 Operator 来进行 NebulaGraph 的部署&#xff0c;同时通过服务集成到现有的部署配置页面和运维管理页面&#xff0c;来获得对 Pod 的执行和迁移的控制能力。基于 sidecar 模式监控、收集 NebulaGraph 的核心指标并通过 Telegraf 发送到携…

【第十四章 错误日志,二进制日志,查询日志,慢查询日志】

第十四章 第十四章 错误日志&#xff0c;二进制日志&#xff0c;查询日志&#xff0c;慢查询日志 1.错误日志&#xff1a; ①错误日志是 MySQL 中最重要的日志之一&#xff0c;它记录了当 mysqld 启动和停止时&#xff0c;以及服务器在运行过程中发生任何严重错误时的相关信息…

Servlet还不会?那就看这篇文章吧

一. Servlet是什么? Servlet是Server Applet的简称&#xff0c;也就是服务程序。当然&#xff0c;杨哥习惯称它为"服务连接器"。 像上面这么说&#xff0c;大家可能会有所疑惑&#xff1a;什么是服务程序&#xff1f;可能有些人对这个还是不太懂&#xff0c;那么接下…

我国汽车配件行业需求空间较大 国产品牌配件市场份额逐渐提升

根据观研报告网发布的《2022年中国汽车配件行业分析报告-行业全景调研与发展战略咨询》显示&#xff0c;根据Markline全球汽车信息平台统计&#xff0c;2020年&#xff0c;全球整车市场产量规模约为7769.80万辆。对于整车厂而言&#xff0c;在委托上游制造商按照要求供应零部件…

软文营销对企业品牌推广的好处有哪些?

众所周知&#xff0c;互联网改变了我们的生活&#xff0c;他的横空出世一度改变我们的工作模式&#xff0c;又跟我们生活息息相关。如今&#xff0c;随着网络的深入发展&#xff0c;网络对企业的营销模式也产生了巨大的改变。其中网络软文营销成为了当下众多企业的主要营销手段…

Web漏洞扫描-Appscan安装配置及扫描

软件介绍 AppScan 是一种 Web 应用程序安全扫描工具&#xff0c;可帮助组织识别和修复其 Web 应用程序中的漏洞。它结合使用自动和手动测试技术来识别漏洞&#xff0c;例如跨站点脚本 (XSS)、SQL 注入和不安全的文件上传等。 AppScan 可用于在开发生命周期的不同阶段扫描 Web…

Unity 摄像机

摄像机分为两种 &#xff08;1&#xff09;透视摄像机 &#xff08;2&#xff09; 正交摄像机 一般3D游戏使用的透视多一点&#xff0c;2D游戏使用正交多一点。 相机参数 清除标记&#xff1a; &#xff08;1&#xff09;天空盒 &#xff08;2&#xff09;仅深度&#xff…

Problem J. Prime Game(数学 贡献)[2018-2019 ACM-ICPC, Asia Nanjing Regional Contest]

题目如下&#xff1a; 题解 or 思路 我们可以发现暴力去求解是无法完成的 O(n2)O(n^2)O(n2) 我们可以从贡献出发&#xff0c;计算每一个位置上的质因子所做的贡献 我们可以先通过分解质因子&#xff0c;记录每一个质因子的位置&#xff0c;在这里使用 vectorvectorvector 容器…

力扣(LeetCode)1760. 袋子里最少数目的球(C++/C)

二分查找 直观思维是对每个袋子进行分球操作&#xff0c;这样枚举似乎无从下手。逆向思维&#xff0c;从 111 开始&#xff0c;枚举袋子里球的最大数量&#xff0c;可以计算划分每个袋子需要的最小次数&#xff0c;通过最小次数之和&#xff0c;判断方案是否可行。由于从小到大…

python3安装PIL库的经历

前提&#xff1a;我是在电脑上同时装了python2和python3 两个环境。详见 Windows环境同时安装多个版本的Python解释器&#xff08;python2和python3&#xff09;&#xff08;超详细&#xff09;_落墨画雪的博客-CSDN博客_安装多个版本python 首先&#xff0c;PIL官方版不支持py…

程序员能干到退休吗?写了40年代码的「骨灰级码农」给出了15条建议

寒冬、裁员、降薪、996、秃头、最近几年这些词汇不断在各位码农的周围盘旋。 很多程序员对自己目前的状态干到困惑和焦虑&#xff0c;而且这好像是国内外程序们都会遇到的问题。 最近&#xff0c;在Reddit上&#xff0c;一位干了40年程序员的网友发表了对这一问题的看法&#x…

辛二酰苯胺异羟肟酸/葛根素/黄芩苷β-环糊精(β-CD)环糊精包合物/β环糊精二棕榈脂质体制备

这里给大家分享的科研内容是辛二酰苯胺异羟肟酸/葛根素/黄芩苷β-环糊精(β-CD)环糊精包合物/β环糊精二棕榈脂质体的制备&#xff0c;和小编一起来看&#xff01; 黄芩苷β-环糊精(β-CD)环糊精包合物脂质体制备方法&#xff1a; 采用傅里叶红外变换光谱法(FTIR)确认了黄芩苷…

工控CTF之协议分析4——MQTT

协议分析 流量分析 主要以工控流量和恶意流量为主&#xff0c;难度较低的题目主要考察Wireshark使用和找规律&#xff0c;难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律&#xff0c;难可以难得五花八门 常见的工控协议有&#xff1a;Modbus、MMS、IEC60870、…

Appium基础 — Chrome Inspect定位工具

1、Chrome Inspect介绍 Chrome Inspect定位工具是用来抓取app中Webview页面的。 为了项目的需求&#xff0c;为了更好的保证效果和布局跨平台&#xff0c;Android&H5混合开发一般是我们不错的选择。Google浏览器中的Chrome Inspect定位工具&#xff0c;提供了一个移动端W…

(六)docker容器数据卷的理解和使用

目录 一、容器数据卷是什么 二、容器数据卷能干吗 三、宿主vs容器之间映射添加容器卷 四、读写规则映射添加说明 五、卷的继承和共享 一、容器数据卷是什么 Docker将运行的环境打包形成容器运行&#xff0c; Docker容器产生的数据&#xff0c;如果不通过docker commit生成…

【软件测试】快速迭代的敏捷项目?测试怎么做?测试人怎么提升自我价值......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 提到敏捷项目时&…

【嵌入式】Linux开发工具arm-linux-gcc安装及使用

知识架构及层次 — 程序编译及调试 嵌入式交叉编译器安装配置 宿主机 执行编译、链接嵌入式软件的计算机 目标机 运行嵌入式软件的硬件平台 “本地”编译器 用来生成在与编译器本身所在的计算机和操作系统&#xff08;平台&#xff09;相同的环境下运行的目标代码&#xff0c…

【2023 海光 笔试题】~ 题目及参考答案

文章目录1. 前言2. 题目 & 答案第1题第2题3. 回忆杀4. 关于存储芯片声明1. 前言 今天分享的是海光的关于IC验证的笔试部分题目&#xff01;&#xff01;&#xff01;名称如标题所示&#xff0c;希望大家正确食用&#xff08;点赞转发评论&#xff09; 本次笔试题一共三部分…