Golang、Java面试题

二十、Spring Cloud

  • SpringCloud入门教程 - 包含创建 Spring Cloud项目教程 - CSDN
  • 写给小白看的Spring Cloud入门教程 - 掘金
  • Spring Cloud 入门总结 - 掘金

什么是微服务架构?

微服务架构 就是根据业务 拆分软件模块,每个模块 单独运行,每个模块本身是 单体


服务拆分 有哪些注意事项?

  • 1.不同微服务, 不要重复开发 相同业务。
  • 2.微服务 数据独立,不要访问其它微服务的 数据库。(一个微服务 对应 一个数据库)
  • 3.微服务可以将 自己的业务 暴露为 接口,供其它微服务 调用

什么是分布式集群?

  • 分布式系统: 若干个程序部署在若干台不同的计算机上,它们通过 网络 协作完成一个服务。
  • 集中式集群: 相同的程序, 在本机部署了多次, 有了 Docker 后这很轻松。
  • 分布式集群: 若干个程序在 不同的计算机 上部署了 多次。(强调 容灾能力)

分布式的 CAP 原则?

CAP原则一致性可用性分区容错性

组件 - Spring Cloud 哪几个组件比较重要?

总体架构

NacosEurekaFeignRibbonSpring Cloud GatewayZuulSpring Cloud ConfigHystrix

组件 - 为什么要使用这些组件?

  • ~~Eureka与案例分析-Eureka解决什么问题?~- 已停更~ —— Eureka 使用教程视频
  • Ribbon负载均衡原理-Ribbon解决什么问题?
  • Nacos-认识和安装Nacos
  • 基于 Feign 远程调用

组件 - Nacos 和 Eureka(已停更) 有什么区别?

  • Nacos 支持 CP(不保证 可用性)AP; Eureka 只支持 AP(不保证 一致性)
  • Nacos 的阈值是针对 某个具体Service 的,而不是针对所有服务的;但 Eureka 的自我保护阈值是针对 所有服务 的。
  • Nacos 使用 Netty, 是 长连接; Eureka短连接, 定时发送

组件 - Ngnix 和 Ribbon 有什么区别?

NginxRibbonNginxRibbon

Ribbon 负载均衡的原理?

组件 - 什么是 服务降级 与 服务熔断?

服务降级服务熔断

微服务 中如何实现 远程调用?

RestTemplatehttp请求

REST 和 RPC 远程调用有什么区别?


二十一、Spring Security Oauth2

Spring Cloud Alibaba 实战(四)Oauth2篇

Oauth2 有哪几种授权模式?

  • 授权码模式 (微信、QQ、Github、Google 授权)
  • 简化模式
  • 密码模式 (一般项目常用)
  • 客户端模式

Oauth2 实现单点登录的系统架构?

客户端认证中心

Token码 中存储的是哪些信息,用户信息一般储存在哪里?

Token码是一种用于身份验证和授权的令牌,它通常包含以下数据:

  • 用户信息:例如 用户ID用户名
  • 过期时间
  • 访问权限:令牌可能包含用户被授予的 特定访问权限,以便系统可以验证用户是否有权访问所请求的资源或执行所请求的操作。
  • 随机数或加密密钥:为了增加令牌的安全性,令牌可能包含随机数或加密密钥,用于生成或验证数字签名或加密令牌的内容。
  • 其他元数据:令牌可能包含其他元数据,例如令牌类型,发行者信息,客户端ID等。

Token 通常包含一些 用户信息,但是为了安全起见,不应该将所有用户信息存储在 Token 中。


  • Token 码作为 键(key), 用户信息 作为 值(value) 存储在Redis中是一种常见的做法,可以提高应用程序的性能和可伸缩性。
  • 当需要验证用户身份或访问授权时,应用程序可以使用 Token 作为 键(key)Redis 中检索 用户信息

二十二、Docker

什么是 Docker? Docker 由哪些部分组成?

# Docker 安装教程 - 详细教程

Docker库镜像 (Image)容器 (Container)

Docker 常用指令有哪些?

Docker 常用命令汇总 | Docker教程 (超全总结)

docker imagesdocker search 镜像名docker pull 镜像名docker run [可选参数] imagedocker start 容器iddocker restart 容器iddocker stop 容器iddocker psdocker kill 容器id

docker run 和 docker start 的区别?

点击查看

docker rundocker start

二十三、kubernets(k8s)

什么是 k8s?

Docker 和 k8s 有什么区别?

Dockerk8s