微服务期末复习练习


前言

  微服务期末复习文档的简单总结,当作复习记忆使用,评论区对部分答案进行了订正!!!注意查看!!!


一、选择题

第5题存在歧义,暂时不提供答案参考

二、判断题

在这里插入图片描述

三、填空题

在这里插入图片描述

四、简答题

1、对创建镜像的docker build -t hellodocker . 指令进行分别说明
  docker build 是创建镜像的指令
  -t 参数指定了生成镜像的名称为hellodocker
  . 代表的是当前目录下的应用上下文(即dockerfile所在目录)

2、简述docker run -d -p 5000:80 --name test hellodocker指令各部分的作用
  docker run 是创建并运行容器的指令,创建成功会自动返回一个64位的容器ID
  -d 参数表示在后台运行容器
   -p 5000:80 参数将容器的80端口映射到宿主机的5000端口
  --name test 表示创建的容器指定名称为test,没有设置则名称随机
  hellodocker 表示要启动运行的镜像名称

3、Spring Cloud的主要特点
Sping Cloud有很多特点,最主要的是它的集成性
  (1)使用方便
  (2)功能齐全
  (3)易于扩展和维护
  (4)适用于各种环境

4、Spring Boot的主要特点
  (1)可快速构建独立的Spring应用程序
Sping Boot设计目的就是为了简化Spring应用的初始搭建和开发过程
  (2)提供了开箱即用的Spring插件,简化了Maven、Gradle的配置
  (3)自动配置Spring,极大地提高了开发和部署效率
Spring Boot 会根据类路径中的类和JAR包中的类自动配置Bean
  (4)对主流开发框架的无配置集成
只需要在pom.xml中添加相关依赖即可
  (5)无需任何XML配置
只有一个application.properties配置文件,没有其他xml配置文件
  (6)内嵌Servlet容器,无需单独安装容器即可独立运行项目
Sping Boot在启动时,自动内嵌一个tomcat

5、微服务架构的主要优点
(与传统单体架构的缺陷对应,所以与书本顺序不符)
  (1)复杂度可控
  (2)功能特定
  (3)易于拓展
  (4)可独立部署
  (5)易于容错
  (6)技术选型灵活

6、简单微服务架构的主要流程
  1、微服务的拆分
  2、微服务架构的组件
  3、微服务架构的搭建
  4、微服务架构的技术选型

7、传统单体架构可能面临的缺陷
  (1)应用复杂度增加,导致更新和维护困难
  (2)应用项目越大,开发和调试时间越长,开发效率越慢
  (3)重复部署war包,扩展服务,容易造成系统资源浪费
  (4)所有模块在一个进程中,一个错误全部崩溃,所以应用可靠性低
  (5)技术更新,整个应用需要重新开发,所以不利于技术更新

8、docker的主要特点
  (1)更快速的交付和部署
  (2)更高效的虚拟化
  (3)更轻松的迁移和扩展
  (4)更简单的管理
知识补充:虚拟机是操作系统级别的资源隔离;Docker是进程级别的资源隔离,所以多个容器可以共享单个内核

9、Docker镜像和容器的简要介绍
  (1)Docker镜像:是一个只读的模板,包含了一些创建Docker容器的操作指令。通常情况下,一个Docker镜像是基于另一个基础镜像创建的,并且新创建的镜像会额外包含一些功能配置。
  (2)Docker容器:属于镜像的一个可运行实例(镜像与容器的关系其实与Java中的类与对象相似),开发者可以通过API接口或者CLI命令行操作一个容器,也可以将一个容器连接到一个或多个网络中,将数据存储与容器进行关联。

10、Eureka的服务发现机制
  (1)当客户端服务通过注解等方式嵌入到程序的代码中运行时,客户端发现组件向注册中心注册自身提供的服务,并且周期性的发送心跳来更新服务
理解:(即当作为服务提供者的客户端发现组件开启运行自己的服务的时候,向注册中心注册自身提供的服务,并且周期性的发送心跳来更新服务)
  (2)与此同时,作为服务消费者的客户端发现组件,则将已经注册在注册中心的服务信息缓存到本地
  (3)各个服务之间可以通过注册中心的注册信息以Rest方式实现调用,也可以直接通过服务名进行调用
Eureka的服务发现机制包含三个角色:Eureka Server(服务器端发现组件/服务注册中心),EurekaClient(客户端发现组件):服务提供者、服务消费者

11、微服务通过RestTemplate和Feign实现服务之间调用的区别
  (1)请求方式不一样
      restTemplate的请求都需要拼接url地址、参数和类文件
      feign不用再自己拼接url和参数,可以便捷优雅地调用HTTP API。
  (1)底层实现方式不一样
      RestTemplate是通过拼接url,直接指定ip地址+端口号,不需要经过服务注册中心就可直接请求接口
      Feign的底层实现是动态代理,对某个声明了@FeignClient注解的接口,会创建一个代理对象,代理对象根据@FeignClient注解中name的值在服务注册中心找到对应的服务,然后再根据@RequestMapping等其他注解的映射路径构造出请求的地址,根据这个地址,再从本地实现HTTP的远程调用。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值