微服务面试题

文章目录

      • 一、SpringBoot
      • 1.1 什么是SpringBoot?
        • 1.2 spring boot 核心配置文件是什么?
        • 1.3 spring boot 配置文件有哪几种类型?它们有什么区别?
      • 二、springcloud
        • 2.1 什么是 ?
        • 2.2 spring cloudAlibaba
        • 2.3spring cloud 的核心组件有哪些?

一、SpringBoot

1.1 什么是SpringBoot?

Spring Boot是一个基于Spring框架的开源框架,用于简化和加速Java应用程序的开发过程。它提供了一种快速创建独立、生产级别的Spring应用程序的方式,使开发者能够更专注于业务逻辑的实现而不必过多关注框架配置。

Spring Boot通过自动配置(Auto-configuration)和约定优于配置(Convention over Configuration)的原则,大大简化了Spring应用程序的初始化和配置过程。它集成了许多常用的第三方库和工具,并提供了一组可选的starter依赖,可快速集成常用的功能,如Web开发、数据库访问、安全性、日志记录等。

1.2 spring boot 核心配置文件是什么?

在Spring Boot中,核心配置文件是 application.propertiesapplication.yml。这两个文件用于配置应用程序的属性和参数,影响应用程序的行为和功能。

  • application.properties 是基于键值对的属性文件,每行表示一个属性,格式为 key=value
# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=123456

# 服务器端口配置
server.port=8080

# 日志级别配置
logging.level.org.springframework=INFO

  • application.yml 是基于YAML格式的配置文件,通过缩进和层级结构表示属性和值的关系。
# 数据库连接配置
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase
    username: root
    password: 123456

# 服务器端口配置
server:
  port: 8080

# 日志级别配置
logging:
  level:
    org.springframework: INFO

1.3 spring boot 配置文件有哪几种类型?它们有什么区别?

  1. application.properties:这是基于键值对的属性文件,采用类似于Java的Properties文件格式。每个配置项由键值对表示,格式为key=value。它是Spring Boot默认使用的配置文件类型。
  2. application.yml:这是基于YAML(YAML Ain’t Markup Language)格式的配置文件。采用缩进和层级结构表示属性和值的关系,更加简洁和可读性强。它的语法更加人性化,可以使用列表、映射、多行文本等特性。

这两种配置文件的主要区别在于格式和语法的不同。相对而言,application.yml文件更加简洁、易读和可维护,适合用于复杂的配置场景。而application.properties文件则更加传统、直观,适合简单的键值对配置。

另外,Spring Boot还支持多个配置文件的组合使用,以满足不同环境和配置需求。例如,可以通过创建application-dev.propertiesapplication-prod.properties等文件,根据不同的活动配置文件来加载不同的配置。这样可以方便地切换配置,以适应开发、测试和生产等不同的环境。

二、springcloud

2.1 什么是 ?

Spring Cloud是一个用于构建分布式系统和微服务架构的开源框架。它基于Spring Boot,提供了一系列工具和组件,用于简化和加速微服务架构的开发、部署和管理过程。

Spring Cloud提供了一系列的功能和特性,包括:

  1. 服务注册与发现:通过使用服务注册中心(如Netflix Eureka、Consul等),实现服务的自动注册与发现,使得服务能够动态地加入和退出系统。
  2. 服务调用与负载均衡:通过集成Ribbon负载均衡器,实现服务间的调用和负载均衡,提高系统的可用性和性能。
  3. 分布式配置管理:通过使用配置中心(如Spring Cloud Config),集中管理和动态更新应用程序的配置,实现配置的集中化管理和动态刷新。
  4. 服务容错与熔断:通过集成Hystrix容错框架,实现服务的容错保护和熔断处理,提高系统的稳定性和可靠性。
  5. 分布式追踪与链路监控:通过集成Zipkin和Sleuth,实现分布式系统的请求追踪和链路监控,帮助开发者识别和解决系统中的性能和调用问题。
  6. API网关:通过集成Spring Cloud Gateway或Zuul,实现API的统一入口和路由管理,提供安全性、流量控制、监控和日志记录等功能。
  7. 服务消息总线:通过使用消息总线(如Spring Cloud Bus),实现服务间的消息广播和通信,实现动态的配置更新和状态变更。

Spring Cloud基于Spring框架和Spring Boot的优势,提供了一套完整的解决方案,用于构建和管理分布式系统和微服务架构。它使得开发者能够更加简单、高效地开发、部署和管理分布式应用,提供了丰富的功能和组件来应对微服务架构中的各种挑战。

2.2 spring cloudAlibaba

Spring Cloud Alibaba是一个基于Spring Cloud的开源框架,它提供了一系列的组件和工具,用于构建和管理分布式系统和微服务架构。它结合了Spring Cloud和阿里巴巴的开源技术栈,提供了丰富的功能和解决方案,使开发者能够更轻松地构建弹性、高可用、分布式的应用程序。

Spring Cloud Alibaba包括以下关键组件:

  1. Nacos:一个服务注册和配置中心,用于实现服务的注册与发现、动态配置管理等功能。
  2. Sentinel:一个流量控制和熔断降级框架,用于保护微服务架构中的稳定性和可靠性。
  3. RocketMQ:一个分布式消息队列,用于实现高吞吐量和可靠性的消息传递。
  4. Dubbo:一个高性能的RPC(远程过程调用)框架,用于实现分布式服务之间的通信。
  5. Seata:一个分布式事务解决方案,用于实现分布式事务的一致性和可靠性。
  6. Alibaba Cloud SDK:用于与阿里云服务进行集成,包括对象存储、云数据库、消息队列等。

Spring Cloud Alibaba在Spring Cloud的基础上,提供了与阿里巴巴技术栈集成的能力,使得开发者能够更方便地使用阿里巴巴的分布式技术和云服务,构建高性能、可靠的分布式应用程序。它旨在提供一体化的解决方案,减少开发者在构建分布式系统时的复杂性和工作量。

2.3spring cloud 的核心组件有哪些?

  1. Eureka:服务注册与发现组件,用于实现服务的自动注册与发现。
  2. Ribbon:客户端负载均衡组件,用于实现服务间的负载均衡和故障转移。
  3. Feign:声明式的HTTP客户端,用于简化服务间的REST调用。
  4. Hystrix:容错和熔断器组件,用于保护和控制分布式系统的可靠性和稳定性。
  5. Zuul:API网关组件,用于提供服务的统一入口和路由管理。
  6. Config:分布式配置中心,用于集中管理和动态更新应用程序的配置。
  7. Bus:消息总线组件,用于实现分布式系统的消息广播和通信。
  8. Sleuth:分布式请求跟踪组件,用于追踪和监控分布式系统的请求和调用链路。
  9. Zipkin:分布式追踪系统,用于收集、存储和展示分布式系统的追踪数据。
  10. Stream:事件消息驱动组件,用于实现基于消息的微服务通信。
    件,用于追踪和监控分布式系统的请求和调用链路。
  11. Zipkin:分布式追踪系统,用于收集、存储和展示分布式系统的追踪数据。
  12. Stream:事件消息驱动组件,用于实现基于消息的微服务通信。
  13. Security:安全组件,用于提供微服务的身份验证和授权。

你可能感兴趣的:(微服务,java,spring)