关于MySQL、分布式系统、SpringCloud面试题

前言

之前为了准备面试,收集整理了一些面试题。
本篇文章更新时间2023年12月27日。
最新的内容可以看我的原文:https://www.yuque.com/wfzx/ninzck/cbf0cxkrr6s1kniv

MySQL

索引

说一下有哪些锁?

行锁有哪些?

性能优化

分库分表

常用库:mycat、shardingsphere

Sharding 策略

  • 哈希取模
  • 范围:时间范围、ID范围
  • 增加映射表

高性能、高可用

什么时候分库?什么时候分表?

分库的时机:

  • 性能需求:比如高并发下,连接数不够用。
  • 数据规模:数据库服务器空间不足、数据量大性能下降。

分表时机:

  • 单表过大
  • 冷、热数据分离;

分布式系统

分布式锁

分布式事务

Seata提供的分布式事务方案

分布式接口幂等性

SpringCloud

什么是微服务?

微服务标签:一种架构风格、拆分成多个小服务、独立进程、服务围绕业务功能而构建、可独立开发、部署、扩展、轻量级通信、多语言&不同存储技术

简单地说,微服务架构风格就是一种将单个应用拆分成一组小服务开发的方法,每一个小服务运行在它自己的进程中并且使用轻量的协议通信,通常是一个HTTP资源API。这些服务围绕业务能力构建并且由自动化部署机器部署。这些服务有着最小化的中央管理,这个中央管理可以使用不同语言编写并使用不同的数据存储技术。—— James Lewis and Martin Fowler(马丁·福勒)

SpringBoot和SpringCloud的区别?

SpringBoot专注开发单个服务。
SpringCloud关注全局的微服务协调治理。
SpringCloud依赖SpringBoot。

谈谈服务降级、熔断、服务隔离

  • 服务降级:服务不可用时直接返回结果给客户端,不用一直等待。
  • 熔断:错误率达到一定的阈值之后就断路,之后慢慢重新开放。
  • 隔离:防止调用雪崩。一般是通过线程池、或信号量隔离。

服务隔离方案

类别线程池隔离信号量隔离
线程使用线程池的内的线程,而非调用线程与调用线程是同一个
开销线程切换、排队、调度无切换开销
异步支持不支持
超时支持支持
并发控制线程池大小控制信号量数控制

微服务治理

微服务治理是指在微服务架构中,通过一系列的策略工具实践来 管理、监控和控制微服务的运行和交互。
它旨在确保微服务系统的可靠性、高效性和可扩展性,并提供一致的开发和运维体验。

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

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

相关文章

drf知识-08

Django之了解DRF框架 # 介绍:DRF全称 django rest framework # 背景: 在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的 增:校验请…

数组和字符串

1、概述 数组是在内存中连续的相同类型的变量空间数组属于构造数据类型 //数组定义 //数据类型 数组名[元素个数]{值1,值2,值3,……}; int arr[10]{9,8,7,6,5,4,3,2,1,0};//元素访问 //数组名[下标] //数组下标从0开始 for(int i0;i) {prin…

【《设计模式之美》】如何取舍继承与组合

文章目录 什么情况下不推荐使用继承?组合相比继承有哪些优势?使用组合、继承的时机 本文主要想了解: 为什么组合优于继承,多用组合少用继承。如何使用组合来替代继承哪些情况适用继承、组合。有哪些设计模式使用到了继承、组合。 …

项目——————————

C/C Linux Socket网络编程 TCP 与 UDP_c 语言tcp socket cleint read-CSDN博客C/C Socket - TCP 与 UDP 网络编程_c socket udp-CSDN博客 登录—专业IT笔试面试备考平台_牛客网

打地鼠游戏来了

主要利用js鼠标点击事件和window.setInterval()回调函数来进行实现的. 源码获取方式:链接:https://pan.baidu.com/s/1eW9qvX3zFH9qlH82-I4yOA 提取码:1233

信息安全概论快速复习(期末急救)

文章目录 1、DES中的S-盒输入输出问题 (不需要记住S-盒)2、Kerberos认证系统3、简答题(三题每题8分):课后习题第一章、第三章、第四章第一章:重点关注安全模型内容,有几种,有几个分级…

在matlab中进行地理坐标和像素坐标的相互转换

clc;close all;clear; %地理坐标和像素坐标的相互转换 [pic,R]geotiffread(boston.tif); %读取带地理坐标信息的tif影像 [m,n,~]size(pic);%像素坐标转换为地理坐标 figure(1),imshow(pic),title(不带地理坐标的静态图片); hold on; scatter(n/4,m/4,500,r.); %选择1/4处像素坐…

活动回顾 (下) | 机器学习系统趋势研判,大咖金句汇总

作者:三羊、李宝珠、李玮栋、Yudi、xixi 编辑:李宝珠 在大模型时代的浪潮中,机器学习系统正经历着前所未有的变革。模型规模的急剧膨胀,让我们见证了 AI 能力的巨大提升,然而这种提升不仅为各个领域带来了新的机遇&…

音视频的编码格式与封装格式

音视频的编码格式与封装格式是两个不同的概念,视频封装格式常见的有:mp4,rmvb,avi,mkv,mov,mpg,vob,3gp,asf,rmvb,wmv,div…

关于设计模式、Java基础面试题

前言 之前为了准备面试,收集整理了一些面试题。 本篇文章更新时间2023年12月27日。 最新的内容可以看我的原文:https://www.yuque.com/wfzx/ninzck/cbf0cxkrr6s1kniv 设计模式 单例共有几种写法? 细分起来就有9种:懒汉&#x…

lv13 内核模块动态添加新功能 6

1 动态加载法 即新功能源码与内核其它源码不一起编译,而是独立编译成内核的插件(被称为内核模块)文件.ko 1.1 新功能源码与Linux内核源码在同一目录结构下时 给新功能代码配置Kconfig(模块代码与上一级相同) 给新功能代码改写…

C++自学笔记006左值引用和右值引用

C自学笔记006左值引用和右值引用 无论左值引用还是右值引用,都是给对象取别名。 左值引用 左值引用就是对左值的引用,给左值取别名。 int& ref_data1 data1; int*& ref_ptr_data1 ptr_data1; int& ref_data2 *ptr_data2; const int&a…

基于SpringBoot的仓库管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的仓库管理系统,java项目…

八种常见顺序存储的算法

目录 1、线性枚举 1)问题描述 2)动图演示 3)示例说明 4)算法描述 5)源码详解 2、前缀和差分 1)问题描述 2)动图演示 3)样例分析 4)算法描述 5)源码…

Flink Kafka[输入/输出] Connector

本章重点介绍生产环境中最常用到的Flink kafka connector。使用Flink的同学,一定会很熟悉kafka,它是一个分布式的、分区的、多副本的、 支持高吞吐的、发布订阅消息系统。生产环境环境中也经常会跟kafka进行一些数据的交换,比如利用kafka con…

linux firewalld简介

firewalld简介 Firewalld上有一些预定义区域,可分别进行自定义,下表介绍了这些初始区域配置 firewalld将所有传入流量划分成区域,每个区域都具有自己的一套规则 任何新网络接口默认区域都将设置为public区域 区域名称默认配置trusted可信区…

类。。。。

定义一个person类&#xff0c;包含私有成员&#xff0c;int *age,string &name,一个stu类&#xff0c;包含私有成员double *sore,person p1,写出person类和stu类的特殊成员函数&#xff0c;并写一个stu的函数&#xff0c;显示所有信息。 #include <iostream>using n…

Android下载gradle失败解决方法

1、在gradle-wrapper.properties文件中查看自己需要下载gradle什么版本的包和zip路径&#xff08;wrapper/dists&#xff09;。 2、在setting中查看Gradle的保存路径&#xff0c;如下图&#xff1a;C:/Users/Administrator/.gradle&#xff0c;加上第一步的zip路径得到下载grad…

15 Sequence-Driver-Sequencer communication in UVM

我们分别讨论了sequece_item、sequence、sequencer和driver。在本节中&#xff0c;我们将讨论他们如何相互talk&#xff0c;sequencer如何给driver提供从sequence里的sequence item。在开始阅读本节之前&#xff0c;请确保您了解sequencer和driver中使用的所有方法。&#xff0…

Ubuntu fcitx Install

ubuntu经常出现键盘失灵的问题 查询资料得知应该是Ibus框架的问题 于是需要安装fcitx框架和搜狗拼音 sudo apt update sudo apt install fcitx 设置fcitx开机自启动&#xff08;建议&#xff09; sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/ 然后…