黑马SpringCloud知识点和面试题

news2024/11/27 12:38:25

目录

一、微服务

1.1、微服务技术栈

1.2、微服务的介绍:

1.3、微服务技术对比

1.4、认识微服务-springcloud

1.4.1、springcloud和springboot的兼容性(左边springcloud右边springboot版本)

1.5、服务拆分,服务远程调用(即从order能查到user,用到的是restTemplate,里面有很多API)

1.6、Eureka注册中心

1.7、搭建Eureka

1.8、Eureka服务注册

1.9、Eureka服务发现

1.10、Ribbon负载均衡原理(随机分配)

1.11、Ribbon策略-饥饿加载

1.12、nacos安装

1.13、nacos快速入门

​编辑

1.14、nacos服务多级存储模型

1.15、nacosRule负载均衡(集群优先)

1.16、nacos服务实例的权重设置

1.17、nacos环境隔离

1.18、nacos和eureka的对比

二、nacos配置管理(nacos是替代eureka的,是alibaba研发的注册中心)

2.1、nacos配置管理-nacos实现配置管理

2.2、nacos配置管理-微服务配置拉取

2.3、nacos配置管理-配置热更新

2.4、nacos配置管理-多环境配置共享 

​编辑

2.5、nacos集群搭建

2.6、基于Feign远程调用(替换掉restTemplate)

​编辑

2.7、feign自定义配置

2.8、feign性能调优

2.9、feign最佳实践分析

​编辑

2.10、统一网关Gateway

​编辑

2.11、Gateway快速入门

2.12、Gateway路由断言工厂(在路由里面有路由工厂去判断)

2.13、Gateway网关-路由的过滤器配置

2.14、Gateway网关-全局过滤器

2.15、Gateway网关-过滤器链执行顺序

2.16、Gateway网关-网关的cors跨域配置

三、Docker

3.1、什么是docker

3.2、docker和虚拟机的差别

3.3、Docker架构

3.4、Docker的安装

3.5、Docker-镜像命令

3.6、Docker-容器命令

3.7、Docker-数据卷命令(volume)

3.8、数据卷挂载

3.9、自定义镜像-镜像结构

3.10、自定义镜像-Dockerfile

3.11、DockerCompose

3.12、部署微服务集群

3.13、Docker镜像仓库

四、MQ

4.1、同步

4.2、异步

4.3、MQ常用技术

4.4、RabbitMQ

五、面试题

5.0、分布式和微服务的区别(*)

5.1、springcloud的常见组件有哪些

5.2、Nacos注册表结构

5.3、nacos如何避免并发读写冲突问题

5.4、nacos和eureka的区别

5.5、sentinel和hystrix的区别

5.6、sentinel限流和Gateway限流有什么差别?


一、微服务

1.1、微服务技术栈

 

jenkins是工具,对微服务项目自动化编译

docker:打包形成镜像

kubernetes/Rancher:实现自动化的部署

这三个共同是用于持续集成的

 

1.2、微服务的介绍:

 

演变历史:

单体架构:将业务的所有功能集中在一个项目中开发,做成一个包部署,特点是简单方便,高度耦合的,扩展性差,适合小型项目

分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务,特点是松耦合,拓展性好,但架构复杂,难度大,适合大型互联网项目

后期优化:为了高可用还要做集群

从用户-->会员,会出现跨服务的问题,所以微服务提供了面向服务,即对外暴露一部分业务接口专门去调用

微服务实现的目的是:实现高内聚,低耦合

1.3、微服务技术对比

 

Routing 路由

Load balancing 负载均衡

1.4、认识微服务-springcloud

 

1.4.1、springcloud和springboot的兼容性(左边springcloud右边springboot版本)

 

1.5、服务拆分,服务远程调用(即从order能查到user,用到的是restTemplate,里面有很多API)

①在启动类写,利用RestTemplate发http请求

/**
     * 创建RestTemplate并注入spring容器
     * @return
     */
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

②在controller层修改业务

@Autowired
private RestTemplate restTemplate;
​
//2.利用restTemplate发送http请求,实现远程调用
//2.1.url路径
String url = "http://localhost:8081/user/"+order.getUserId();
//2.2.发送http请求,实现远程调用
User user = restTemplate.getForObject(url,user.class);
//3.封装user到order
order.setUser(user);

1.6、Eureka注册中心

一个服务既可以是服务者,又可以是消费者

 

 

负载均衡可以用nginx

 

1.7、搭建Eureka

 

在Eureka的启动类上加:

@SpringBootApplication
 声明本项目是一个Eureka服务
@EnableEurekaServer
public class EurekaApplication3 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication3.class,args);
    }
}

1.8、Eureka服务注册

 

1.9、Eureka服务发现

 

加注解@LoadBalanced

 

1.10、Ribbon负载均衡原理(随机分配)

 

负载均衡主要作用是将大量作业合理地分摊到多个操作单元上进行执行,用于解决互联网架构中的高并发和高可用的问题。

 

上面的方案是是全局配置的负载均衡,是在启动类进行的配置。是随机分配的给的访问

下面的是针对某个微服务而言的(在yml中)

1.11、Ribbon策略-饥饿加载

 

 

 

1.12、nacos安装

根据网上的步骤来

1.13、nacos快速入门

 

 

 

1.14、nacos服务多级存储模型

服务-->集群-->实例

 

代码:在application.yml中加

 

在原来的基础上多加了一级,加了一层集群

 

1.15、nacosRule负载均衡(集群优先)

 

1.16、nacos服务实例的权重设置

 

在nacos控制台进行修改(浏览器上面)

 

 

1.17、nacos环境隔离

 

1.在浏览器的nacos中点命名空间,2.新建命名空间,填空间名称 3.不填会默认用UUID生成一个id

 

namespace的id要跟浏览器的id对应,只绑了一个到dev的环境,其它的就自动就关闭了

 

1.18、nacos和eureka的对比

 

 

二、nacos配置管理(nacos是替代eureka的,是alibaba研发的注册中心)

order是消费者

2.1、nacos配置管理-nacos实现配置管理

 

 

 

 

2.2、nacos配置管理-微服务配置拉取

 

 

 

 

2.3、nacos配置管理-配置热更新

方式一

 

方式二

 

在controller要自动注入这个类,然后把要改的东西再get了再传过去

 

2.4、nacos配置管理-多环境配置共享 

 

2.5、nacos集群搭建

2.6、基于Feign远程调用(替换掉restTemplate)

Feign是一种负载均衡的HTTP客户端, 使用Feign调用API就像调用本地方法一样,从避免了调用目标微服务时,需要不断的解析/封装json 数据的繁琐。Feign集成了Ribbon。Ribbon+eureka是面向微服务编程,而Feign是面向接口编程。

    Fegin是一个声明似的web服务客户端,它使得编写web服务客户端变得更加容易。使用Fegin创建一个接口并对它进行注解。它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,Spring Web 默认使用了HttpMessageConverters, Spring Cloud 集成 Ribbon 和 Eureka 提供的负载均衡的HTTP客户端 Feign。

服务器内部有相互调用关系时,我们可以用feign组件去做

 

feign的介绍:

 

步骤:

1.引入依赖(在order-Service中(相当于货物,处理逻辑的))

2.在启动类加注解@EnableFeignClients(也在order中的启动类加)

3.新建一个文件夹,写那个接口

 

 

在service中修改代码:

 

 

2.7、feign自定义配置

 

修改日志级别有两种方式:(在order中的yml)

1.配置文件方式(可以全局配置(default)或局部配置(具体的服务名称))

2.基于java代码的方式

 

 

 

2.8、feign性能调优

 

都是在order中

 

 

2.9、feign最佳实践分析

 

 

方式二具体实践:

 

2.10、统一网关Gateway

 

 

2.11、Gateway快速入门

 

 

 

 

2.12、Gateway路由断言工厂(在路由里面有路由工厂去判断)

 

 

2.13、Gateway网关-路由的过滤器配置

对所有的路由都生效(对当前路由配置就只能对当前路由生效)

 

 

2.14、Gateway网关-全局过滤器

 

新建一个类AuthorizeFilter

 

上面还要加@Component和@Order(-1)

@Order是执行顺序,越小优先级越高

 

代码:

 

 

2.15、Gateway网关-过滤器链执行顺序

 

 

执行顺序是:213

2.16、Gateway网关-网关的cors跨域配置

 

 

三、Docker

3.1、什么是docker

 

用于部署项目

3.2、docker和虚拟机的差别

 

3.3、Docker架构

 

 

 

 

3.4、Docker的安装

根据网上的流程来

3.5、Docker-镜像命令

mysql:5.7 和 mysql: 5.8是两个镜像

没写tag(版本)时,默认是latest,代表最新版本的镜像

 

除了下面这么命令,如果还要命令不知道的,可以在命令行输入docker --help来看所有的命令

 

 

3.6、Docker-容器命令

 

 

 

3.7、Docker-数据卷命令(volume)

docker volume create xxx

查看:docker volume ls

docker volume inspect xxx

...

 

3.8、数据卷挂载

 

 

3.9、自定义镜像-镜像结构

 

3.10、自定义镜像-Dockerfile

 

 

3.11、DockerCompose

 

3.12、部署微服务集群

 

3.13、Docker镜像仓库

 

四、MQ

4.1、同步

 

4.2、异步

 

4.3、MQ常用技术

 

4.4、RabbitMQ

 

五、面试题

5.0、分布式和微服务的区别(*)

 

水平拆分和垂直拆分

 

 

5.1、springcloud的常见组件有哪些

 

5.2、Nacos注册表结构

 

 

5.3、nacos如何避免并发读写冲突问题

 

5.4、nacos和eureka的区别

 

5.5、sentinel和hystrix的区别

 

 

 

5.6、sentinel限流和Gateway限流有什么差别?

 

 

 写到最后:这些都是笔者对着黑马程序员看完以后以自己的理解进行的总结,您可以对应不同章节进行参考了图片理解。

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

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

相关文章

数学建模美赛【LaTeX】公式、表格、图片

数学建模美赛【LaTeX】公式、表格、图片 1 宏包 \package{ } 就是在调用宏包,对计算机实在外行的同学姑且可以理解为工具箱。 每一个宏包里都定义了一些专门的命令,通过这些命令可以实现对于一类对象(如数学公式等)的统一排版&a…

opencv的TrackBar控件

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

HTML预格式化文本pre标签

文章目录参考white-spaceword-breakfont-family参考 https://blog.csdn.net/weixin_44368963/article/details/120054949 https://www.zhangxinxu.com/wordpress/2017/03/css-font-family-chinese-english/ pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留…

UG二次开发装配篇 添加/拖动/删除组件方法的实现

我们在UG装配的过程中,经常会遇到需要调整组件目录位置,在软件设计过程中可以通过在目录树里面拖动组件来完成。 那么,如果要用程序实现组件的移动/拖动,我们要怎么做呢? 本节就完成了添加/拖动/删除组件方法的实现&…

ZooKeeper集群搭建步骤

一、准备虚拟机准备三台虚拟机,对应ip地址和主机名如下:ip地址Hostname192.168.153.150ant163192.168.153.151ant164192.168.153.152ant165修改hostname,并使之生效[rootlocalhost /]# hostnamectl set-hostname zookeeper1 //修改hostname …

分享好玩的h5小游戏制作步骤_怎么做h5微信小游戏

近年来,市面上一直流行各种h5游戏,例如投票、答题、刮刮乐、大转盘等等等等,而且我在各种营销场景下经常看到它们的身影,是做促销,引流和宣传的神器之一!那么,怎么做好玩的h5游戏?还…

网络安全-Nmap

网络安全-Nmap Nmap-号称诸神之眼 这个呢就是用来扫描网络端口的 Namp的工作原理很像一个雷达 做任何攻击之前,得先知道怎么去找破绽,而不是钢铁洪流,那个是不叫渗透了,叫硬钢。 咋用呢? 很简单 直接 nmap 后面跟网址…

Linux内核转储---kdump原理梳理

文章目录Kexec和Kdump设计的区别kexeckdumpKdump的执行流程kexec的实现用户空间kexec内核空间vmcoreKdump的实现可以分为两部分:内核和用户工具。内核提供机制,用户工具在这些机制上实现各种转储策略,内核机制对用户工具的接口是一个系统调用…

华为HCIE学习之Openstack Nova组件

文章目录一、openstack组成形式二、Nova的模块1、Nova-api功能2、Nova-scheduler功能3、Nova-conductor功能4、Nova-novncproxy5、Nova-compute三、nova中的一些概念 一、openstack组成形式 openstack由一个个组件组成,每个组件由一个个模块组成。 二、Nova的模块…

mac上安装redis的两种方法

mac上安装redis的两种方法1. 安装方式1->使用homebrew安装redis1.1 安装redis1.1.1 安装homebrew1.1.2 查看redis安装目录1.2 安装等简单命令1.3 启动等相关命令1.3.1 使用brew命令启动1.3.2 redis-cli连接redis服务1.3.3 使用配置文件启动1.42. 安装方式2->官网下载安装…

Spring Cloud之Zuul

目录 简介 Zuul中的过滤器 过滤器的执行流程 使用过滤器 route过滤器的默认三种配置 路由到服务 路由到url地址 转发给自己 自定义过滤器 简介 Zuul是Netflix开源的微服务网关,主要功能是路由转发和过滤器,其原理也是一系列filters&#xff0…

图文解说S参数(进阶篇)

S参数是RF工程师/SI工程师必须掌握的内容,业界已有多位大师写过关于S参数的文章,即便如此,在相关领域打滚多年的人, 可能还是会被一些问题困扰着。你懂S参数吗? 图文解说S参数(基础篇) 请继续往下看...台湾…

数据结构(三):集合、字典、哈希表

数据结构(三)一、集合(Set)1.封装一个集合类2.集合常见的操作(1)并集(2)交集(3)差集(4)子集二、字典(Map)三、…

Powershell Install SQL Server 2022

前言 SQL Server 2022 (16.x) 在早期版本的基础上构建,旨在将 SQL Server 发展成一个平台,以提供开发语言、数据类型、本地或云环境以及操作系统选项。 SQL Server Management Studio (SSMS) 是一种集成环境,用于管理从 SQL Server 到 Azure SQL 数据库的任何 SQL 基础结构…

nginx如何用html显示多个图片并加入播放链接

需求背景通过nginx来做个点播服务,ffmpeg截取视频中的某一帧作为视频的封面,前端页面展示这个封面,,并链接到对应的视频播放链接,加载播放器进行播放简单介绍一下ffmpeg截取视频中的某一帧的方式截取视频的第一帧&…

HashedWheelTimer

序言这种算法是一种轮询算法的优化升级,能够以只有一个Timer的情况下处理大量的定时任务.Begin结合HashedWheelTimer的思想根据自然时间1分钟为例,来做大批量的定时任务触发首先定一个长度为60的数组,数组中存放的是Set集合,集合里面是任务详情.当有定时任务刚来的时候判断是否…

死锁检测组件 -- 使用hook检测死锁

目录 hook hook是什么 dlsym()函数 hook的实现步骤 加入hook的demo C/CLinux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 hook hook可以把系统或第三方库提供的函数,替换成我们写的同名函数。会调用我们实现的函数。 hook是什么 hook提供了两…

07-Java异常分类以及处理机制

1.异常概念 Java标准库内建了一些通用的异常,这些类以Throwable为顶层父类。Throwable又派生出Error类和Exception类。 1.错误:是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示…

企业电子招采系统源码——信息数智化招采系统

​ 信息数智化招采系统 服务框架:Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构:VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术:Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、…

Centos7.9安装GitLab

1、下载 Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 下载最新版本gitlab-ce-15.4.2-ce.0.el7.x86_64 2、安装基础依赖并启动 #安装依赖 yum install -y curl policycoreutils-python openssh-server postfix #配置开机启动 sys…