5.Golang、Java面试题—Spring Cloud、Docker、kubernets(k8s)

news2024/11/21 1:45:22

本文目录如下:

  • Golang、Java面试题
    • 二十、Spring Cloud
      • 什么是微服务架构?
      • 服务拆分 有哪些注意事项?
      • 什么是分布式集群?
      • 分布式的 CAP 原则?
      • 组件 - Spring Cloud 哪几个组件比较重要?
      • 组件 - 为什么要使用这些组件?
      • 组件 - Nacos 和 Eureka(已停更) 有什么区别?
      • 组件 - Ngnix 和 Ribbon 有什么区别?
      • Ribbon 负载均衡的原理?
      • 组件 - 什么是 服务降级 与 服务熔断?
      • 微服务 中如何实现 远程调用?
      • REST 和 RPC 远程调用有什么区别?
    • 二十一、Spring Security Oauth2
      • Oauth2 有哪几种授权模式?
      • Oauth2 实现单点登录的系统架构?
      • Token码 中存储的是哪些信息,用户信息一般储存在哪里?
    • 二十二、Docker
      • 什么是 Docker? Docker 由哪些部分组成?
    • image.png
      • Docker 常用指令有哪些?
      • docker run 和 docker start 的区别?
    • 二十三、kubernets(k8s)
      • 什么是 k8s?
      • Docker 和 k8s 有什么区别?

Golang、Java面试题

二十、Spring Cloud

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

什么是微服务架构?

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


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

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

什么是分布式集群?

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

分布式的 CAP 原则?

  • CAP原则: 指的是在一个分布式系统中,一致性 (Consistency)可用性 (Availability)分区容错性 (Partition tolerance)
  • CAP原则 指的是: 这三个要素最多只能 同时实现两点,不可能 三者兼顾

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

总体架构

  • Nacos / Eureka: 注册中心: 主管 服务的发现相互调用。(还有 Zookeeper)
  • Feign: 服务远程调用
  • Ribbon: 负载均衡器
  • Spring Cloud GatewayZuul: 服务网关
  • Spring Cloud Config: 配置中心
  • Hystrix: 服务监控和保护: 为 微服务 提供了 服务降级熔断 的方案。

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

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

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

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

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

  • Nginx客户端 所有请求统一交给 Nginx,由 Nginx 进行实现 请求转发,属于 服务器端负载均衡
  • Ribbon 是从 Eureka注册中心 上获取 服务注册信息列表,缓存到本地,然后在 本地 实现 轮询负载均衡 策略。

  • Nginx 适合于 服务器端实现负载均衡 比如 Tomcat
  • Ribbon 适合与在微服务中 RPC远程调用 实现 本地服务负载均衡,比如 DubboSpringCloud 中都是采用 本地负载均衡

Ribbon 负载均衡的原理?

image.png

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

服务降级

  • 超时:当下游的服务响应过慢,上游服务主动停掉一些不太重要的业务,加快 响应速度
  • 程序运行异常:当 下游的服务 因为某种原因 不可用上游 主动调用本地的一些 降级逻辑,加快 响应速度

服务熔断

  • 不调用该 失败的服务,直接返回,快速释放资源

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

  • 基于 RestTemplate 发起的 http请求 实现 远程调用
  • http请求远程调用 是与语言无关的调用,只要知道对方的 ip、端口、接口路径、请求参数 即可。

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


二十一、Spring Security Oauth2

Spring Cloud Alibaba 实战(四)Oauth2篇

Oauth2 有哪几种授权模式?

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

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

  • 客户端
  • 认证中心OAuth2 主要实现端,Token 的生成、刷新、验证 都在认证中心完成。
  • 会员服务:微服务之一,接收到请求后会到认证中心验证。
  • 订单服务:微服务之二,接收到请求后会到认证中心验证。
    image.png

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

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

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

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


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

二十二、Docker

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

# Docker 安装教程 - 详细教程

Docker 是一个用于 开发交付运行应用程序 的开放平台。Docker 使您能够将 应用程序基础环境 分离,从而实现 快速交付软件Docker 由三部分组成:

  • :一个总的 仓库,包含 所有的镜像,使用时可以从 拉取 镜像 到本地。
  • 镜像 (Image):从库中拉取下来的 应用,比如 mysql
  • 容器 (Container):镜像运行之后就是 容器容器镜像 可以互相转换。

image.png

Docker 常用指令有哪些?

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

  • docker images: 查看本地主机的所有镜像
  • docker search 镜像名: 搜索镜像
  • docker pull 镜像名: 下载镜像
  • docker run [可选参数] image: 创建一个 新的容器启动容器

  • docker start 容器id: 启动容器
  • docker restart 容器id: 重启容器
  • docker stop 容器id: 停止当前运行的容器
  • docker ps: 列出容器
  • docker kill 容器id: 强制停止当前容器

docker run 和 docker start 的区别?

点击查看

  • docker run: 创建一个 新的容器, 是 将镜像放入容器启动容器
  • docker start: 启动一个或多个 已经被停止的容器。类似用法的还有 docker stopdocker restart

二十三、kubernets(k8s)

什么是 k8s?

Docker 和 k8s 有什么区别?

  • Docker 是用于构建、分发、运行容器的平台和工具。
  • k8s 是一个对 Docker容器 进行 编排 的系统,主要围绕 Pods 进行工作。Podsk8s 生态中 最小的调度单位,可以包含 一个多个容器

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

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

相关文章

低代码开发ERP:从行业应用到自我价值的思考

随着数字化时代的到来,企业管理软件变得越来越重要。而最为重要的企业管理软件之一便是ERP(Enterprise Resource Planning),也就是企业资源计划,它集成了企业内部各个部门的信息,帮助企业进行全面的资源管理…

几个优秀的Wordpress主题汇总(精选免费WP主题)

DNSHH主题 单栏的 WordPress 博客主题,其模板风格,从DNSHH上移植到Typecho,再从Typecho移植到了 WordPress 上,相信这款 WordPress 博客主题这么受欢迎是因为被其简单大气的风格所吸引人吧! frontopen 扁平化页面风格…

Java进程(基础)

基本概念 1、进程:程序的执行过程 2、线程:一个进程可以有单个线程也就是我们说的单线程,还可以有多个线程也就是我们说的多线程, 线程 1、当一个类继承了Thread类就可以当成一个线程用 2、我们会重写run方法写上我们自己的业务…

plsql 安装和连接配置

首先下载plsql 安装, 然后 下载oracle 客户端 配置连接(如果安装了oracle 数据库,可以直接配置数据库则可跳过此步骤),下载后解压(解压密码为1) 然后找到 \instantclient_supper\network\admin 目录创建 tnsnames.ora 文件配置数据库连接 例如配置本地…

pynvme操作流程

步骤一:检查本地windows是否安装ssh 检查方式:windows本地打开windows powershell,输入ssh,若打印usage :ssh等一些信息,则已安装ssh,否则需要安装,安装方式如下,一般系…

Java 基础核心总结

目录 前言 介绍 1、基本语法 2、面向对象编程 3、异常处理 4、集合框架 5、IO 流 6、多线程 专栏地址 前言 Java 是一种广泛使用的程序设计语言,具有跨平台、面向对象、安全性高、灵活性强等特点,广泛应用于企业级应用程序和移动应用程序等领域…

win10锁屏或登录时会自动弹出触摸按键的问题解决办法

本篇文章主要讲解win10锁屏或登录时会自动弹出触摸按键的问题解决方式。 日期:2023年5月17日 作者:任聪聪 问题情况截图 屏幕按键说明 如下截图为屏幕按键 设置路径:设置–>轻松使用–>键盘 说明:见图中右侧第一个选择项即使用屏幕键盘的方法,但这并不是本次我们…

《花雕学AI》35:如何一次性和17个AI聊天机器人交流?ChatALL让你轻松实现

聊天机器人,也称为对话机器人,是一种能够通过自然语言与人类进行交流的人工智能系统。聊天机器人的应用领域非常广泛,从客服、娱乐、教育、医疗、社交等,到科研、商业、政治、军事等,几乎无所不包。随着深度学习和自然…

NXP MCUXPresso - 确定冰沙主板工程需要编译的确切文件集合

文章目录 NXP MCUXPresso - 确定冰沙主板工程需要编译的确切文件集合概述END NXP MCUXPresso - 确定冰沙主板工程需要编译的确切文件集合 概述 在尝试迁移 openpnp - Smoothieware project 从gcc命令行 MRI调试方式 到NXP MCUXpresso工程. 先搭了一个MCUXpresso C工程, MCU选…

别去外包,干了三年,废了....

先说一下自己的情况,大专生,18年通过校招进入湖南某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

祖传渣屏退休季,五月份高性价比显示器推荐

眼看五月中旬,又快到了电商狂欢 618,不少伙伴开始将升级电脑配置、全新装机提上日程。 趁着这个节骨眼,咱们正好出一期当前各段位值得购买的高性价比显示器推荐。 入门办公 小米 Redmi 1A 主要参数:23.8 英寸、1920*1080 分辨…

java: 无法访问org.springframework.boot.SpringApplication

SpringBoot启动报错: 原因 根据错误提示,可以看出是类文件版本错误导致的。Spring Boot 3.06 是基于 JDK 17 编译的,而我的 JDK 版本低于此,是JDK8版本,所以无法访问该类文件。因此,解决这个问题需要将 JD…

C++类和对象再探

文章目录 const成员再谈构造函数成员变量的定义函数体内赋值初始化列表 隐式类型转换explicitstatic成员 const成员 我们知道在调用类的成员函数时,会有一个默认的this指针且这个this指针时不可以被修改的,例如在日期类中,会有隐式的Date * const this;注意这里默认会在this前…

【Java EE 初阶】JUC常见工具类介绍

目录 1.JUC 1.Callable接口(描述线程任务的接口) 2.Callable接口和Runnable接口区别 2.Reentrant Lock 1.演示基本方法 2.出现异常,如何确保释放锁 3.创建一个公平锁 4.创建一个读写锁 3.Reentrant Lock和Synchronized的区别 4.原子…

( 动态规划) 509. 斐波那契数 ——【Leetcode每日一题】

❓509. 斐波那契数 难度:简单 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1) F(…

HTTPS如何防止DNS欺骗?

HTTPS加密可以有效帮助服务器应对DNS欺骗、DNS劫持、ARP攻击等安全威胁。DNS是什么?DNS如何被利用?HTTPS如何防止DNS欺骗? DNS如何工作? 如果您想访问www.example.com,您的浏览器需要找到该特定Web服务器的IP地址。它…

入行3年,月薪不足20K,看来是时候跳一次了.....

写在前面的话 不知不觉已经毕业两年半,工作三年了在同一家公司并未跳槽,今年在合适的契机选择了换一家公司,在这里想总结一下三年的工作经验和这次的面试经验。 我毕业于一个本科院校,二本,学习网络工程出来的。到大…

加拿大访学/博后的子女选择公立学校及办理入学手续详解

访问学者及博士后申请者携子女出国接受国外教育是较普遍的现象。近年来由于美国对CSC资助学者的入境限制,越来越多的申请者将目标定为加拿大等英语发达国家。在咨询中,经常有客户问及加拿大孩子入学问题。为此,知识人网小编就谈谈如何选择公立…

jQuery-层级选择器

<!DOCTYPE HTML> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> <title>层级选择器</title> <style type"text/css"> …

如何通过边缘智能网关实现暴雨灾害监测预警

随着夏季来临&#xff0c;我国南方逐渐进入雨季&#xff0c;暴雨灾害也进入到频发阶段&#xff0c;给村镇和城市居民都造成诸多人身和财产损失。针对南方雨季的水灾防治&#xff0c;物联网技术派上大用场&#xff0c;本篇就基于边缘智能网关的数采方案&#xff0c;简单介绍对暴…