SpringBoot 阶段测试 1

目录

1、使用JDK8新语法完成下列集合练习:

1.1 List中有1,2,3,4,5,6,7,8,9几个元素要求;

(1) 将奇、偶数分别汇聚成一个List

  1. //初始化集合
  2. List<Integer> numList = new ArrayList<>();
  3. //批量添加数据
  4. Collections.addAll(numList,1,2,3,4,5,6,7,8,9,10);
  5. //或者
  6. //List<Integer> numList = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
  7. //方法一: 使用 forEach
  8. List<Integer> oddList = new ArrayList<>();
  9. List<Integer> evenList = new ArrayList<>();
  10. numList.forEach(num-> {
  11. boolean temp = (num%2 == 1) ? oddList.add(num) : evenList.add(num);
  12. });
  13. log.info("numList:{}",numList); //numList:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  14. log.info("oddList:{}",oddList); //oddList:[1, 3, 5, 7, 9]
  15. log.info("evenList:{}",evenList); //evenList:[2, 4, 6, 8, 10]
  16. //方法二: 使用 filter 过滤 + collect 收集
  17. List<Integer> oddList2 = numList.stream().filter(num -> num%2==1).collect(Collectors.toList());
  18. List<Integer> evenList2 = numList.stream().filter(num -> num%2==0).collect(Collectors.toList());
  19. log.info("oddList2:{}",oddList2); //oddList2:[1, 3, 5, 7, 9]
  20. log.info("evenList2:{}",evenList2); //evenList2:[2, 4, 6, 8, 10]

(2) 分别求出奇数和偶数的和

  1. //奇数集合
  2. //使用选出来的奇数求和
  3. Optional<Integer> oddSum = oddList.stream().reduce((n, m) -> n + m);
  4. log.info("使用选出来的奇数求和 oddSum:{}",oddSum.get());
  5. //使用选出来的奇数求和 oddSum:25
  6. //使用源集合 求和
  7. oddSum = numList.stream().filter(num -> num % 2 == 1).reduce((n, m) -> n + m);
  8. log.info("使用源集合 求和 oddSum:{}",oddSum.get());
  9. //使用源集合 求和 oddSum:25
  10. //偶数集合
  11. //使用选出来的偶数 求奇数和
  12. Optional<Integer> evenSum = evenList.stream().reduce((n, m) -> n + m);
  13. log.info("使用选出来的偶数 求奇数和 evenSum:{}",evenSum.get());
  14. //使用选出来的偶数 求奇数和 evenSum:30
  15. //使用源集合 求偶数和
  16. evenSum = numList.stream().filter(num->num%2 == 0).reduce((n,m)->n+m);
  17. log.info("使用源集合 求偶数和 evenSum:{}",evenSum.get());
  18. //使用源集合 求偶数和 evenSum:30

1.2 已知集合:[[1,3,5,7,5,3,11],[2,4,6,8,6,4,2],[5,8,7]]要求:

1.2.1 集合转换:["1","3","5","7","5",...,"5", "8","7"]。

  1. List<List<Integer>> oldList = new ArrayList<>();
  2. Collections.addAll(oldList,Arrays.asList(1,3,5,7,5,3,11),Arrays.asList(2,4,6,8,6,4,2),Arrays.asList(5,8,7));
  3. List<String> newList = new ArrayList<>();
  4. oldList.forEach(num->num.forEach(n->newList.add("\""+n+"\"")));
  5. //或
  6. //oldList.forEach(nums->nums.stream().map(n -> "\""+n+"\"").forEach(n->newList.add(n)));
  7. log.info("oldList:{}",oldList); //oldList:[[1, 3, 5, 7, 5, 3, 11], [2, 4, 6, 8, 6, 4, 2], [5, 8, 7]]
  8. log.info("newList:{}",newList); //newList:["1", "3", "5", "7", "5", "3", "11", "2", "4", "6", "8", "6", "4", "2", "5", "8", "7"]

2、springboot框架下的为什么有些依赖是不需要版本号的?

  1. springboot框架下的为什么有些依赖是不需要版本号的:
  2. SpringBoot框架的版本仲裁中心,对一些依赖进行了版本可控制和冲突处理,版本控制中心没有的需要自定义依赖版本;

3、springboot核心注解是什么,深入介绍下这个注解。

  1. @SpringBootConfiguration: springboot的配置
  2. @Configuration: spring配置类
  3. @Component: 说明也是一个spring的组件
  4. @EnableAutoConfiguration: 自动配置
  5. @AutoConfigurationPackage: 自动配置包
  6. @Import({Registrar.class}): 导入自动配置包注册 导入著启动类同包及其子内中的所有组件
  7. @Import({AutoConfigurationImportSelector.class}): 导入自动配置导入选择器
  8. List<String> configurations = this.getCandidateConfigurations(annotationMetadata, attributes);//获取所有的配置
  9. @ComponentScan(excludeFilters = { : //按条件剔除一部分组件
  10. @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
  11. @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })

4、pringboot为什么可以打包成可执行的jar,执行命令是什么?

Spring Boot 打包成Jar包运行的原理:https://blog.csdn.net/y5492853/article/details/123758851

4.1 MANIFEST.MF的主要内容:

xxx.jar/META-INFO/MANIFEST.MF

  1. jar包启动类:
  2. Main-Class: org.springframework.boot.loader.JarLauncher
  3. 主启动类:
  4. Start-Class: com.kgc.scd.Edocmall96WebApplication
  5. JarLauncher:
  6. 根据 Start-Class
  7. 通过反射拿到了项目的启动类的main方法
  8. 从而启动本地项目

4.2 执行命令

  1. 执行命令:
  2. java -jar xxx.jar
  3. 可以添加参数:
  4. java -jar xxx.jar --server.port=8081
  5. java -jar -Dserver.port=8081 xxx.jar

5、Springboot的配置文件是哪个?你知道有哪些格式,这些格式的优先级是什么?配置过哪些内容?

5.1Springboot的配置文件

  1. Springboot的配置文件是哪个:
  2. application

5.2 Springboot的配置文件格式,和优先级

  1. Springboot的配置文件格式:
  2. application.properties,application.yml,
  3. bootstrap.properties,bootstrap.yml
  4. 优先级:
  5. bootstrap.properties>bootstrap.yml>application.properties>application.yml
  6. 配置文件路径优先级:
  7. 项目根路径下的confing > 项目根路径下 > 项目类路径(resource)下的confing > 项目类路径下

5.3 配置过哪些内容

  1. 1、项目基本配置:
  2. 项目基本信息
  3. 2、数据库相关配置:
  4. mybatis
  5. mybatis-plus
  6. jpa
  7. 逆向工程
  8. 3、组件相关:
  9. dubbo
  10. zookeeper
  11. eureka
  12. feign
  13. hytrix
  14. ribbon
  15. zuul
  16. config配置中心
  17. 4、一些官方接口线管:
  18. 微信相关
  19. 支付宝相关
  20. 验证码相关
  21. 短信相关
  22. 5、自定义配置:
  23. 一些方便修改的统一配置

6、日志有哪些级别。springboot的默认日志框架是什么?项目中是如何使用的?

  1. 日志有哪些级别: trace < dubug < info < warn < error
  2. springboot的默认日志框架是什么: Sl4j + logback
  3. 默认日志级别是: info
  4. 项目中是如何使用的:
  5. 实例化日志对象: Logger logger = LoggerFactory.getLogger(getClass());
  6. 添加注解: @Sl4j

7、springboot中你知道有哪些方式可以用来读取配置文件?他们的区别是什么?

  1. 读取配置文件方式:
  2. 批量读取: @ConfigurationProperties(prefix="xxx")
  3. 单个读取: @Value("${xxx}")
  4. 如果需要指定配置文件:@PropertySource(value="classpath:xxx.properties")
  5. 区别:
  6. 批量获取: 支持松散绑定,支持复杂类型绑定,支持数据格式校验

8、你觉得在哪些业务中可以使用定时任务,在springboot中如何实现定时任务?

  1. 哪些业务中可以使用定时任务:
  2. 订单审核、出库、订单超时自动取消与退款
  3. 优惠卷生成、发放与过期
  4. 物流信息推送与状态刷新
  5. 数据积压监控、日志监控、服务可用性探测作业
  6. 定时备份与更新数据
  7. 金融系统每天的定时结算
  8. 按月批量统计报表数据
  9. 什么业务下需要要定时任务: https://www.csdn.net/tags/MtjaEg3sNjEzMjUtYmxvZwO0O0OO0O0O.html
  10. springboot中如何实现定时任务:
  11. 方法上添加注解:
  12. @Scheduled(fixedDelay=second)
  13. @Scheduled(fixRate=second)
  14. @Scheduled(cron="cronPartten")
  15. 主动启动类上添加注解:
  16. @EnableScheduling

9、你觉得在哪些业务中可以使用异步任务,在 springboot中如何实现异步任务?

  1. 哪些业务中可以使用异步任务:
  2. 发送短信验证码
  3. 购买成功或者抽奖成功短信通知
  4. 卡卷或优惠卷发放
  5. 发送微信红包
  6. 微信消息通知
  7. 订单流程处理
  8. 定时批量处理(比如数据同步)
  9. 工作流性质的异步任务(未完成异步任务补偿)
  10. 异步调用的经典业务场景: https://blog.csdn.net/fujuan08093206/article/details/79867367
  11. springboot中如何实现异步任务:
  12. 方法上添加注解:
  13. @Async
  14. 开启异步线程注解,如果是同一个类中的其他方法调用,添加此异步处理注解,异步是不生效的
  15. 主启动类上添加注解:
  16. @EnableAsync

10、redis有哪些数据类型?你常用哪些数据类型?

  1. redis有哪些数据类型:
  2. string
  3. list
  4. set
  5. hash
  6. zset
  7. geospatial
  8. hyperloglog
  9. bitmaps
  10. 常用哪些数据类型:
  11. string
  12. hash
  13. zset: 比如 做浏览记录
  14. bitmaps: 比如 每日打卡(占用内存小)

11、如何在redis中保存一个java对象,又如何把redis中数据变为java对象?

  1. 如何在redis中保存一个java对象:
  2. 将对象转换为json字符串,存入redis
  3. 如何把redis中数据变为java对象:
  4. redis中获取对象json字符串,再转为对应的对象
  5. 注意: 需要自定义对象序列化方式

12、什么是序列化?为什么需要序列化,在哪些场景中需要序列化?

  1. 什么是序列化:
  2. 把对象转换为字节序列的过程
  3. 将对象的状态信息转换为可以存储或传输的形式的过程
  4. 什么是反序列化:
  5. 把字节序列恢复为对象的过程
  6. 为什么需要序列化:
  7. 序列化的原因是 想将对象转换成流,方便存储和在网络上传输。
  8. 在哪些场景中需要序列化:
  9. 把内存中的对象状态保存到一个文件或者数据库中时候
  10. 用套接字再网络上传送对象的时候
  11. 通过RMI传输对象的时候(RMI是什么东西?):RMI总结来说就是远程调用对象,在一个jvm上调用另一个jvm的对象。
  12. 通过RPC调用接口,获取对象的时候
  13. 把对象存入redis中的时候

13、redis是单线程还是单进程的?

  1. redis是单线程还是单进程:
  2. 单线程:
  3. redis 为什么快:
  4. 为什么redis那么快?剖析redis快的原因:
  5. https://blog.csdn.net/qq3073959033/article/details/127415029
  6. https://blog.csdn.net/weixin_43001336/article/details/122773260
  7. 1.纯内存KV操作
  8. 2.单线程操作
  9. 3.I/O 多路复用
  10. 4.Reactor 设计模式
  11. 那么为什么Redis是单线程的:
  12. https://blog.csdn.net/weixin_44395707/article/details/106192656
  13. 原因如下:
  14. 1. CPU不是瓶颈:Redis的所有操作都是基于内存的,而CPU不是Redis的瓶颈。在大多数情况下,Redis的瓶颈很可能是机器内存或网络带宽的大小。如果我们想要更高的性能,可以使用单线程Redis,我们可以使用集群(多个进程)解决方案。
  15. 2. 并发性:并行性不是支持多个客户端的唯一策略。Redis使用epoll和事件循环来实现并发策略并节省大量时间而无需上下文切换。
  16. 3. 易于实现:编写多线程程序可能会更加困难。我们需要为线程添加锁和同步机制。
  17. 4. 易于部署:单线程应用程序可以部署在至少具有单个CPU内核的任何计算机上。

14、简述下redis 中 setnx命令的效果或作用?

  1. redis setnx命令的效果或作用:
  2. 只有key不存在的情况下,设置key的值,如key存在,则什么也不做。
  3. 设置成功返回1,失败返回0
  4. redis setnx java_Redis SETNX 命令:
  5. https://blog.csdn.net/weixin_39517289/article/details/114468562

15、介绍下你用redis做过的一些业务,以及为什么你用redis 做。

  1. redis做过的一些业务:
  2. 缓存
  3. 数据共享分布式
  4. 分布式锁
  5. 全局ID
  6. 计数器
  7. 限流
  8. 位统计
  9. 购物车
  10. 用户消息时间线timeline
  11. 消息队列
  12. 抽奖
  13. 点赞
  14. 签到
  15. 打卡
  16. 商品标签
  17. 商品筛选
  18. 用户关注
  19. 推荐模型
  20. 排行榜
  21. Redis 16 个常见的使用场景:
  22. https://blog.csdn.net/gp_911014/article/details/124744869

16.事务隔离级别有哪些?MySQL的默认隔离级别是?

  1. 事务隔离级别有哪些:
  2. 读未提交
  3. 读已提交
  4. 可重复读
  5. 可串行化
  6. MySQL的默认隔离级别是:
  7. 可重复读
  8. 脏读、幻读和不可重复读:
  9. https://blog.csdn.net/qq_41776884/article/details/81608777
  10. 脏读: 脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。
  11. 不可重复读: 是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。
  12. 幻读: 是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样.
  13. 提醒:
  14. 脏读:
  15. 一个事务读取到另外一个事务没有提交的修改数据
  16. 不可重复读的重点是修改:
  17. 同样的条件,你读取过的数据,再次读取出来发现值不一样了
  18. 幻读的重点在于新增或者删除:
  19. 同样的条件,第 1 次和第 2 次读出来的记录数不一样
隔离级别 脏读 不可重复读 幻读
READ-UNCOMMITTED
READ-COMMITTED ×
REPEATABLE-READ × ×
SERIALIZABLE × × ×

17、为什么要使用统一返回类?

  1. 为什么要使用统一返回类:
  2. 统一返回值类型是接口开发中的一种良好的开发习惯(企业级开发基本都有),统一接口返回值的目的是为了加快开发速率以及形成团队良好的代码规范

18、什么叫物理删除什么叫逻辑删除,分别适用于哪些场景?

  1. 物理删除:
  2. 物理删除是真正物理地址上的删除,是将数据从数据库中移除的操作,也就是删除的一般意义。
  3. 数据被物理删除后在数据库中就不在存在了,是无法(难以)被恢复的。
  4. 逻辑删除:
  5. 逻辑删除不是真正意义上的删除,而是逻辑意义上的删除。通常的实现方式是在数据表中添加一个字段,比如deleted(是否删除,0未删除,1已删除)。
  6. 数据被逻辑删除后在数据库中依然是存在的,是可以(容易)被恢复的。
  7. 适用于哪些场景:
  8. 物理删除的场景: 数据不再有实际的意义。
  9. 逻辑删除的场景: 数据的失效属于状态的改变,比如订单作废,用户禁用,员工离职,文稿废弃,优惠券作废,商品下架等。
  10. 小知识【1】逻辑删除和物理删除的区别:
  11. https://blog.csdn.net/qq_39288456/article/details/84786980

19、为什么要使用swagger?

  1. 为什么要使用swagger:
  2. 随着sprnigbootspringcloud等微服务的流行,在微服务的设计下,小公司微服务小的几十,大公司大的几百上万的微服务。
  3. 这么多的微服务必定产生了大量的接口调用。而接口的调用就必定要写接口文档。
  4. 在微服务的盛行下,成千上万的接口文档编写,不可能靠人力来编写,故swagger就产生了,它采用自动化实现并解决了人力编写接口文档的问题;
  5. Swagger 提供了一个全新的维护 API 文档的方式,有4大优点:
  6. 1.自动生成文档:只需要少量的注解,Swagger 就可以根据代码自动生成 API 文档,很好的保证了文档的时效性。
  7. 2.跨语言性,支持 40 多种语言。
  8. 3.Swagger UI 呈现出来的是一份可交互式的 API 文档,我们可以直接在文档页面尝试 API 的调用,省去了准备复杂的调用参数的过程。
  9. 4.还可以将文档规范导入相关的工具(例如 SoapUI), 这些工具将会为我们自动地创建自动化测试。

20、使用springboot框架相较于之前的spring或者springmvc框架有哪些优势?

  1. springboot框架相较于之前的spring或者springmvc框架有哪些优势:
  2. Spring Boot实现了自动配置,降低了项目搭建的复杂度。
  3. 独立运行的spring项目:
  4. 内嵌TomcatJettyServlet容器;
  5. 无代码生成和xml配置
  6. 准生产的应用监控
  7. 提供starter 简化Maven 配置
  8. 集成了常用的第三方库配置
  9. Spring Boot优点:
  10. 1Spring Boot实现了自动配置,降低了项目搭建的复杂度。:
  11. 众所周知Spring框架需要进行大显的配置,Spring Boot引入自动配置的概念,让项目设置变得很容易。
  12. 自动配置 spring:Spring Boot 会根据在类路径中的jar包,类,为jar包里的类自动配置Bean,这样会极大减少我们要使用的配置。
  13. 2、独立运行的spring项目:
  14. Spring Boot可以以jar包形式直接运行,如java-jar xxxjar优点是:节省服务器资源
  15. 3、内嵌TomcatJettyServlet容器;:
  16. Spring Boot 可以选择内嵌TomcatJetty,这样我们无须以war包形式部署项目。
  17. 4、无代码生成和xml配置:
  18. Spring Boot大量使用spring4.x提供的注解新特性来实现无代码生成和xml 配置。spring4.x提倡使用Java配置和注解配置组合
  19. Spring Boot不需要任何xml配置即可实现spring的所有配置。
  20. 5、准生产的应用监控:
  21. Spring Boot 提供基于httpshtelnet对运行时的项目进行监控
  22. 6、提供starter 简化Maven 配置:
  23. Spring Boot 项目中为我们提供了很多的spring-boot-starter-xxx的项目,我们导入指定的这些项目的坐标,就会自动导入和该模块相关的依赖包:
  24. 7、集成了常用的第三方库配置:
  25. 集成了大星常用的第三方库配置(例如Jackson,JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用,大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

SpringBoot 阶段测试 1的更多相关文章

  1. SpringBoot系列三:SpringBoot基本概念(统一父 pom 管理、SpringBoot 代码测试、启动注解分析、配置访问路径、使用内置对象、项目打包发布)

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.了解SpringBoot的基本概念 2.具体内容 在之前所建立的 SpringBoot 项目只是根据官方文档实现的一个基础程 ...

  2. JS阶段测试

    JS阶段测试 一.选择题 1.表单中的数据要提交到的处理文件由表单的( c )属性指定. A. method     B. name    C. action    D. 以上都不对 2.在CSS样式 ...

  3. springboot+junit测试

    文章目录 一.junit断言 二.测试模块 三.使用Mockito作为桩模块 四.使用mockMvc测试web层 五.批量测试和测试覆盖率 参考视频:用Spring Boot编写RESTful API ...

  4. RabbitMQ开启SSL与SpringBoot连接测试

    楔子 近期公司程序被安全扫描出 远程主机允许明文身份验证 中风险漏洞,查了下修复方案,RabbitMQ官方提供了SSL连接方式,而且 SpringBoot AMQP 也支持 SSL 连接.以下将配置R ...

  5. springboot(十二):springboot如何测试打包部署

    有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元 ...

  6. springboot如何测试打包部署

    有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元 ...

  7. 由保存当前用户引发的springboot的测试方式postman/restlet还是swagger2

    今天在测试接口的到时候发现用springboot集成swagger2集成的项目,在测试session保存的当前用户的时候,发现执行不了,没有像postman或者restlet一样,保存这个接口的url ...

  8. springboot+mybatisplus 测试代码生成

    测试springboot + mybatisplus 实现代码生成   使用默认的模板引擎 pom.xml文件 <?xml version="1.0" encoding=&q ...

  9. Https双向验证与Springboot整合测试-人来人往我只认你

    1 简介 不知不觉Https相关的文章已经写了6篇了,本文将是这个专题的最后一篇,起码近期是最后一篇.前面6篇讲的全都是单向的Https验证,本文将重点介绍一下双向验证.有兴趣的同学可以了解一下之前的 ...

随机推荐

  1. 【NOI P模拟赛】最短路(树形DP,树的直径)

    题面 给定一棵 n n n 个结点的无根树,每条边的边权均为 1 1 1 . 树上标记有 m m m 个互不相同的关键点,小 A \tt A A 会在这 m m m 个点中等概率随机地选择 k k k ...

  2. Android Notification使用

    一 Notification的类别 1.状态栏和抽屉式通知 //获取NotificationManager对象 val notificationManager = getSystemService(N ...

  3. .NET 7 SDK 对容器的内置支持

    大家好,我是等天黑. .NET 又双叒叕出新功能了, 就在前几天,.NET 团队发布博客,宣称在 .NET SDK 中内置了对 .NET 应用容器化的支持. 小试牛刀 在正式介绍它之前,先通过一个简单 ...

  4. 第四十四篇:Git分支(关键知识点)

    好家伙, GIT分支 分支就像是平行宇宙,两个平行宇宙自己平行,不相干扰,平安无事, 某一天它想不开,合并了.然后就变成了我写这篇博客的动机了. 1.关于Git分支中常用的指令 列出所有分支 git ...

  5. 04_Linux基础-.&..-cat-tac-重定向-EOF-Shell-more-ps-less-head-tail-sed-grep-which-whereis-PATH-bash-usr-locate-find

    04_Linux基础-.&..-cat-tac->&>>-EOF-Shell-more-ps-less-head-tail-sed-grep-which-wherei ...

  6. DispatcherServlet 分发流程

    0 太长不看版 HTTPServlet 的 Service 方法将请求按类进行分解 主要是根据HTTP方法的类型调用 doXXX 方法 GET 和 HEAD 方法需要对 if-modified-sin ...

  7. limits.conf 配置不生效问题排查

    在部署数据库时,经常会遇到打开最大文件数限制 too many open files 的警告,通常我们只需要修改/etc/security/limits.conf该文件,增加两行,重新登录即可解决. ...

  8. KingbaseES 数据库Windows环境下注册数据库服务

    关键字: KingbaseES.Java.Register.服务注册 一.安装前准备 1.1 软件环境要求 金仓数据库管理系统KingbaseES V8.0支持微软Windows 7.Windows ...

  9. 【项目实战】CNN手写识别

    由于只需要修改之前基于ANN模型代码的模型设计部分所以篇幅较短,简单的加点注释给自己查看即可 视频链接:https://www.bilibili.com/video/BV1Y7411d7Ys?p=10 ...

  10. k8s控制器理解

    DaemonSet 一个DaemonSet对象能确保其创建的Pod在集群中的每一台(或指定)Node上都运行一个副本.如果集群中动态加入了新的Node,DaemonSet中的Pod也会被添加在新加入N ...