SpringCloud最新最全面试题
目录
一、简单说一说什么是微服务?
二、微服务有哪些优缺点?
三、微服务、分布式、集群的区别?
四、什么是Eureka?
五、Eureka有那两大组件?
六、actuator是什么?
七、Discovery是什么?
八、什么是Eureka的自我保护机制?
九、微服务有很多注册中心组件,说说你知道的有哪些?并说出他们的区别?
十、什么是Ribbon?
十一、刚才你提到了RestTemplate,那么RestTemplate有什么常用的方法吗?
十二、Ribbon有哪些负载规则?
十三、Ribbon默认的轮询规则的原理是什么?
十四、什么是OpenFeign?它能干什么?
十五、Feign和OpenFeign两者区别?
十六、Ribbon与Feign的区别?
十七、简单讲一讲OpenFeign的超时控制?
十八、什么是OpenFeign日志增强?
十九、讲一讲Hystrix是什么?有什么作用?
二十、请你分别说一说服务降级和服务熔断的概念
二十一、服务熔断重要的三个参数是什么?
二十二、Hystrix有哪些常用注解?
二十三、Hystrix组件有个Dashboard,你了解过吗?
二十四、GateWay是什么?
二十五、SpringCloud Gateway与Zuul的区别?
二十六、能简单讲一讲GateWay的非阻塞异步模型吗?
二十七、GateWay有三个核心概念,你知道是什么吗?
二十八、GateWay常用的Predicate断言有哪些?
二十九、GateWay中自定义全局过滤器如何实现?
三十、SpringCloud Config是什么?有什么用处?
三十一、SpringCloud中,使用过全局事件总线bus吗?如果使用过请简单的谈一谈
三十二、SpringCloud中,使用过Stream消息驱动吗?如果使用过请简单的谈一谈
三十三、假如说我们的分布式项目链路很多,有很多节点,那么如何跟踪这些链路呢?
三十四、除了Eureka、Zookeeper、Consul,你还知道什么服务注册中心的组件吗?
三十五、你刚刚提到Nacos,那与其它几种注册中心组件有什么区别吗?
三十六、Hystrix与Sentinel有什么区别吗?
三十七、简单说一说Sentinel都有哪些流控规则?
一、简单说一说什么是微服务?
微服务架构是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。
举个简单例子来说,我们以前都是单一的Web项目,包含着比如订单功能、支付功能、物流功能、日志功能等。但微服务是要你将这些功能按业务进行拆分,每个功能是一个SpringBoot项目,每个项目互相通信。
二、微服务有哪些优缺点?
优点:
- 每个服务足够内聚,足够小,代码容易理解这样能聚焦一个指定的业务功能或业务需求。
- 开发简单、开发效率提高,一个服务可能就是专一的只干一件事。
- 微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。
- 微服务是松稠合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。
- 微服务能使用不同的语言开发。
- 易于和第三方集成,微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如Jenkins,Hudson,bamboo。
- 微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值。
- 微服务允许你利用融合最新技术。
- 微服务只是业务逻辑的代码,不会和HTML、CSS或其他界面组件混合。
- 每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一数据库。
缺点:
- 开发人员要处理分布式系统的复杂性。
- 多服务运维难度,随着服务的增加,运维的压力也在增大。
- 系统部署依赖。
- 服务间通信成本。
- 数据一致性。
- 系统集成测试。
- 性能监控......
三、微服务、分布式、集群的区别?
分布式:一个业务分拆多个子业务,部署在不同的服务器上。
集群:同一个业务,部署在多个服务器上。
去饭店吃饭就是一个完整的业务,饭店的厨师、配菜师、传菜员、服务员就是分布式;厨师、配菜师、传菜员和服务员都不止一个人,这就是集群;分布式就是微服务的一种表现形式,分布式是部署层面,微服务是设计层面。
四、什么是Eureka?
在服务注册与发现中,有一个注册中心。当服务器启动的时候,会把当前自己服务器的信息比如服务地址通讯地址等以别名方式注册到注册中心上。另一方(消费者服务提供者),以该别名的方式去注册中心上获取到实际的服务通讯地址,然后再实现本地RPC调用RPC远程调用框架核心设计思想:在于注册中心,因为使用注册中心管理每个服务与服务之间的一个依赖关系(服务治理概念)。在任何RPC远程框架中,都会有一个注册中心存放服务地址相关信息(接口地址)。
Eureka说白了就是服务注册中心,我们都知道微服务架构会有很多Module项目,众多的项目需要一个管家去管理,每个项目都要去Eureka中注册,由Eureka去统筹管理众多的项目。
我们发现哪怕不加服务注册中心,我们的消费端也能调用数据提供端完成功能,但怕就怕在量变引起质变。比如一个病人去私人医院一对一的找大夫咨询,这时倒不用中间隔这一个门诊,直接去就行了。但如果病人多了,我想知道今天还有没有剩号和余号,我们需要监控流量的管控,那么这些东西我们是不是需要一个门诊来咨询。我们得知道今天有什么专家坐诊,这个专家现在有没有余号了,这都需要门诊来咨询。
五、Eureka有那两大组件?
Eureka Server和EurekaClient。
六、actuator是什么?
如图,在Eureka中暴露了IP地址。
actuator的作用就是把Eureka页面中暴露的IP地址换成你指定的名字,具有信息保护的作用。
七、Discovery是什么?
消费端可以通过Discovery来获取生产者端的一些信息,比如IP、端口、服务ID等。
八、什么是Eureka的自我保护机制?
一句话总结:某时刻某一个微服务不可用 ,Eureka不会立刻清理,依旧会对该微服务的信息进行保存。
默认情况下,如果EurekaServer在一定时间内没有接收到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒)。但是当网络分区故障发生(延时、卡顿、拥挤)时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险了——因为微服务本身其实是健康的,此时本不应该注销这个微服务。Eureka通过“自我保护模式”来解决这个问题——当EurekaServer节点在短时间内丢失过多客户端时(可能发生了网络分区故障),那么这个节点就会进入自我保护模式。
自我保护机制:默认情况下EurekaClient定时向EurekaServer端发送心跳包
如果Eureka在server端在一定时间内(默认90秒)没有收到EurekaClient发送心跳包,便会直接从服务注册列表中剔除该服务,但是在短时间( 90秒中)内丢失了大量的服务实例心跳,这时候Eurekaserver会开启自我保护机制,不会剔除该服务(该现象可能出现在如果网络不通但是EurekaClient为出现宕机,此时如果换做别的注册中心如果一定时间内没有收到心跳会将剔除该服务,这样就出现了严重失误,因为客户端还能正常发送心跳,只是网络延迟问题,而保护机制是为了解决此问题而产生的)。
它的设计哲学就是宁可保留错误的服务注册信息,也不盲目注销任何可能健康的服务实例。一句话讲解:好死不如赖活着。
九、微服务有很多注册中心组件,说说你知道的有哪些?并说出他们的区别?
注册中心组件有Eureka、Zookeeper、Consul等。
区别是:
Eureka具有自我保护机制,当你某个服务宕机时,我不会立即把你干掉,会保留一段时间,保证了高可用性AP。
而Zk和Consul都是只要服务一宕机,立马把你干掉,头也不回,所以保证了CP。
十、什么是Ribbon?
Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。
简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。
一句话解释Ribbon,就是 负载均衡 + RestTemplate调用。
十一、刚才你提到了RestTemplate,那么RestTemplate有什么常用的方法吗?
(1)getForObject方法/getForEntity方法(GET请求方法)。
getForObject():返回对象为响应体中数据转化成的对象,基本上可以理解为Json。
getForEntity():返回对象为ResponseEntity对象,包含了响应中的一些重要信息,比如响应头、响应状态码、响应体等。
(2)postForObject方法/postForEntity方法(POST请求方法)。
十二、Ribbon有哪些负载规则?
1、RoundRobinRule 轮询。
2、RandomRule 随机。
3、RetryRule 先按照RoundRobinRule的策略获取服务,如果获取服务失败则在指定时间内会进行重试,获取可用的服务。
4、WeightedResponseTimeRule 对RoundRobinRule的扩展,响应速度越快的实例选择权重越大,越容易被选择。
5、BestAvailableRule 会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务。
6、AvailabilityFilteringRule 先过滤掉故障实例,再选择并发较小的实例。
7、ZoneAvoidanceRule 默认规则,复合判断server所在区域的性能和server的可用性选择服务器。
十三、Ribbon默认的轮询规则的原理是什么?
默认负载轮训算法:rest接口第几次请求数 % 服务器集群总数量 = 实际调用服务器位置下标,每次服务重启动后rest接口计数从1开始。
我们的客户端现有2台机器,我们是第一次请求,那么按公式算就是1%2=1。
十四、什么是OpenFeign?它能干什么?
Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了SpringMVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。
前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模版化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以,Feign在此基础上做了进一步封装,由他来帮助我们定义和实现依赖服务接口的定义。在Feign的实现下,我们只需创建一个接口并使用注解的方式来配置它(以前是Dao接口上面标注Mapper注解,现在是一个微服务接口上面标注一个Feign注解即可),即可完成对服务提供方的接口绑定,简化了使用Spring cloud Ribbon时,自动封装服务调用客户端的开发量。而OpenFeign在Feign的基础上又增加了对springmvc注解的支持。
十五、Feign和OpenFeign两者区别?
Feign是Spring Cloud组件中的一个轻量级RESTful的HTTP服务客户端。Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。Feign的使用方式是:使用Feign的注解定义接口,调用这个接口,就可以调用服务注册中心的服务。 | OpenFeign是Spring Cloud在Feign的基础上支持了SpringMVC的注解,如@RequesMapping等等。OpenFeign的@Feignclient可以解析SpringMvc的@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。 |
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> </dependency> | <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> |
十六、Ribbon与Feign的区别?
1、Ribbon和Feign都是调用其他服务的,但方式不同。
2、启动类注解不同,Ribbon是@RibbonClient feign的是@EnableFeignClients。
3、服务指定的位置不同,Ribbon是在@RibbonClient注解上声明,Feign则是在定义抽象方法的接口中使用@FeignClient声明。
4、调用方式不同,Ribbon需要自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤相当繁琐。Feign需要将调用的方法定义成抽象方法即可。
十七、简单讲一讲OpenFeign的超时控制?
我们在使用OpenFeign进行调用接口时,如果因为某些原因,调用时间过长,会导致报错。
OpenFeign默认等待1秒钟,超过后报错。也就是说如果你调用接口总共花了3秒时间,超过1秒不返回直接就报错了。为了避免这样的情况,有时候我们需要设置Feign客户端的超时控制。
十八、什么是OpenFeign日志增强?
说白了就是对Feign接口的调用情况进行监控和输出。
有以下四种日志级别:
NONE:默认的,不显示任何日志。
BASIC:仅记录请求方法、URL、响应状态码及执行时间。
HEADERS:除了BASIC中定义的信息之外,还有请求和响应的头信息。
FULL:除了HEADERS中定义的信息之外,还有请求和响应的正文及元数据。
十九、讲一讲Hystrix是什么?有什么作用?
在复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。
多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”。
而Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。
"断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方无法处理的异常,这样就保证了服务调用方的线程不会被长时间、不必要地占用,从而避免了故障在分布式系统中的蔓延,乃至雪崩。
二十、请你分别说一说服务降级和服务熔断的概念
服务降级:服务器忙,请稍后再试,不让客户端等待并立刻返回一个友好提示,调用备选fallback方法。比如程序运行导常(数组下标越界、除数分母为0)、超时等会触发降级。
服务熔断:类比保险丝达到最大服务访问后,直接拒绝访问,拉闸限电,然后调用服务降级的方法并返回友好提示。服务熔断也是一种服务降级方式。
1、调用失败会触发降级,而降级会调用fallback方法。
2、但无论如何降级的流程一定会先调用正常方法再调用fallback方法。
3、假如单位时间内调用失败次数过多,也就是降级次数过多,则触发熔断。
4、熔断以后就会跳过正常方法直接调用fallback方法。
5、所谓“熔断后服务不可用”就是因为跳过了正常方法直接执行fallback。
二十一、服务熔断重要的三个参数是什么?
1、快照时间窗:断路器确定是否打开需要统计一些请求和错误数据,而统计的时间范围就是快照时间窗,默认为最近的10秒。
2、请求总数阀值:在快照时间窗内,必须满足请求总数阀值才有资格熔断。默认为20,意味着在10秒内,如果该hystrix命令的调用次数不足20次,即使所有的请求都超时或其他原因失败,断路器都不会打开。
3、错误百分比阀值:当请求总数在快照时间窗内超过了阀值,比如发生了30次调用,如果在这30次调用中,有15次发生了超时异常,也就是超过50%的错误百分比,在默认设定50%阀值情况下,这时候就会将断路器打开。
二十二、Hystrix有哪些常用注解?
@HystrixCommand、@EnableHystrix、@DefaultProperties
二十三、Hystrix组件有个Dashboard,你了解过吗?
Dashboard是Dashboard组件的图形化页面,Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。
二十四、GateWay是什么?
Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和Project Reactor等技术。
Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,例如:熔断、限流、重试等。
SpringCloud Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty。
二十五、SpringCloud Gateway与Zuul的区别?
(1)Zuul 1.x使用的是传统的Serviet IO处理模型。而Gateway使用的是异步非阻塞模型,效率很高。在性能方面,根据官方提供的基准测试,Spring Cloud Gateway的RPS(每秒请求数)是Zuul的1.6倍。
(2)Gateway还支持WebSocket,并且与Spring紧密集成拥有更好的开发体验。
二十六、能简单讲一讲GateWay的非阻塞异步模型吗?
Zuul1.x模型
Springcloud中所集成的Zuul版本,采用的是Tomcat容器,使用的是传统的Serviet IO处理模型。
该模型的缺点是:
Servlet是一个简单的网络IO模型,当请求进入Servlet container时,Servlet container就会为其绑定一个线程,在并发不高的场景下这种模型是适用的。但是一旦高并发(如抽风用Jmeter压),线程数量就会上涨,而线程资源代价是昂贵的(上线文切换,内存消耗大)严重影响请求的处理时间。在一些简单业务场景下,不希望为每个request分配一个线程,只需要1个或几个线程就能应对极大并发的请求,这种业务场景下servlet模型没有优势。
所以Zuul 1.X是基于servlet之上的一个阻塞式处理模型,即Spring实现了处理所有request请求的一个servlet (DispatcherServlet)并由该servlet阻塞式处理处理。所以SpringCloud Zuul无法摆脱servlet模型的弊端。
Gateway模型
传统的Web框架,比如说: Struts2,SpringMVC等都是基于Servlet APl与Servlet容器基础之上运行的。
但是在Servlet3.1之后有了异步非阻塞的支持。而WebFlux是一个典型非阻塞异步的框架,它的核心是基于Reactor的相关API实现的。相对于传统的web框架来说,它可以运行在诸如Netty,Undertow及支持Servlet3.1的容器上。非阻塞式+函数式编程(Spring 5必须让你使用Java 8)。
Spring WebFlux是Spring 5.0 引入的新的响应式框架,区别于Spring MVC,它不需要依赖Servlet APl,它是完全异步非阻塞的,并且基于Reactor来实现响应式流规范。
二十七、GateWay有三个核心概念,你知道是什么吗?
1、Route(路由) - 路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如断言为true则匹配该路由。
2、Predicate(断言) - 参考的是Java8的java.util.function.Predicate,开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由。
3、Filter(过滤) - 指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改。
举例:我去医院看牙科(请求),门卫大爷(Filter过滤)说不管你要看什么,必须先做核酸。当我做完核酸后门卫大爷让我进去了。这时我拿着手机上的挂号信息与医院的挂号信息相匹配(Predicate断言),匹配上了我可以找大夫看病了(路由)。
二十八、GateWay常用的Predicate断言有哪些?
After:比如在某段时间后才可以执行路由。这个After大多用在维护开服时间,比如游戏准备22年10月1日开服,那用After可以设置此时间之后的路由才好使。
Before:与After异曲同工。
Between:在两个时间段内才可执行路由。
Cookie:通过Cookie值去匹配。
Header:根据请求头信息来进行匹配。
二十九、GateWay中自定义全局过滤器如何实现?
主要实现两个接口:
- GlobalFilter
- Ordered
三十、SpringCloud Config是什么?有什么用处?
config是分布式配置中心,分布式系统面临的问题是,微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。
比如你现在有40个微服务都用的一个叫test的数据库,如果我们修改了数据库的名字,那还要每个微服务的配置文件都改一遍吗,所以我们需要Config进行集中式管理。
三十一、SpringCloud中,使用过全局事件总线bus吗?如果使用过请简单的谈一谈
bus一般配合config进行使用,config配置中心具有一个痛点,就是当你改了配置文件,你需要一个个的手动去通知到下面的服务,这样很麻烦。而bus就轻松的解决了这点,Spring Cloud Bus目前支持RabbitMQ和Kafka。
ConfigClient实例都会监听MQ中同一个topic(默认是Spring Cloud Bus)。当一个服务刷新数据的时候,它会把这个信息放入到Topic中,这样其它监听同一Topic的服务就能得到通知,然后去更新自身的配置。
三十二、SpringCloud中,使用过Stream消息驱动吗?如果使用过请简单的谈一谈
常见MQ(消息中间件):
- ActiveMQ
- RabbitMQ
- RocketMQ
- Kafka
有没有一种新的技术诞生,让我们不再关注具体MQ的细节,我们只需要用一种适配绑定的方式,自动的给我们在各种MQ内切换。(类似于Hibernate)
Cloud Stream是什么?屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型。
其实Hibernate就是这个意思,我们不用关心它用的是oracle还是mysql,它给我们提供了session.create(),我们用就好了,不用关心具体的语法,我们也不可能所有数据库都精通。
比方说我们用到了RabbitMQ和Kafka,由于这两个消息中间件的架构上的不同,像RabbitMQ有exchange,kafka有Topic和Partitions分区。
这些中间件的差异性导致我们实际项目开发给我们造成了一定的困扰,我们如果用了两个消息队列的其中一种,后面的业务需求,我想往另外一种消息队列进行迁移,这时候无疑就是一个灾难性的,一大堆东西都要重新推倒重新做,因为它跟我们的系统耦合了,这时候Spring Cloud Stream给我们提供了—种解耦合的方式。
三十三、假如说我们的分布式项目链路很多,有很多节点,那么如何跟踪这些链路呢?
使用SpringCloud Sleuth技术。在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。通过Sleuth技术可以通过页面来对各个节点链路进行跟踪,哪个节点出了问题,都会有所展现。
三十四、除了Eureka、Zookeeper、Consul,你还知道什么服务注册中心的组件吗?
知道,还有阿里出的Nacos。Nacos就是注册中心+配置中心的组合 -> Nacos = Eureka+Config+Bus。可以替代Eureka做服务注册中心,还可以替代Config做服务配置中心。
三十五、你刚刚提到Nacos,那与其它几种注册中心组件有什么区别吗?
Nacos支持AP和CP模式的切换。
三十六、Hystrix与Sentinel有什么区别吗?
首先它们俩都相当于断路器的作用,用来服务降级、服务熔断、流量控制等功能。
区别在于:
Hystrix
需要我们程序员自己手工搭建监控平台。
没有一套web界面可以给我们进行更加细粒度化得配置流控、速率控制、服务熔断、服务降级。
Sentinel
单独一个组件,可以独立出来。
直接界面化的细粒度统一配置。
三十七、简单说一说Sentinel都有哪些流控规则?
(1)QPS:当每秒超过设定的QPS就会失败。
(2)线程数:表示一个时间段只能有1个(自己随便设定)线程数访问。
(3)关联:当关联的资源达到阈值时,就限流自己。当与A关联的资源B达到阈值时,就限流A自己。B惹事,A挂了。
(4)预热:一个系统最怕平常访问量是0,然后突然一秒钟那一瞬间访问量是10万,这时候就不太好了,应该先预热一下。
相关文章:
SpringCloud最新最全面试题
目录 一、简单说一说什么是微服务? 二、微服务有哪些优缺点? 三、微服务、分布式、集群的区别? 四、什么是Eureka? 五、Eureka有那两大组件? 六、actuator是什么? 七、Discovery是什么? …...
leetcode359周赛
2828. 判别首字母缩略词 核心思想:枚举。只需要枚举首字母和s是否一一对应即可。 2829. k-avoiding 数组的最小总和 核心思想:自己的方法就是哈希表,枚举i的时候,将k-i统计起来,如果出现了那么就跳过。灵神的方法是数学法&#…...
nginx代理webSocket链接响应403
一、场景 使用nginx代理webSocket链接,nginx响应403 1、nginx访问日志响应403 [18/Aug/2023:09:56:36 0800] "GET /FS_WEB_ASS/webim_api/socket/message HTTP/1.1" 403 5 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit…...
websocker无法注入依赖
在公司中准备用websocker统计在线人数,在WebSocketServer使用StringRedisTemplate保存数据到redis中去,但是在保存的时候显示 StringRedisTemplate变量为null 详细问题 2023-08-20 10:37:14.109 ERROR 28240 --- [nio-7125-exec-1] o.a.t.websocket.po…...
如何进行无线网络渗透测试?
我们将重点介绍如何使用Kali Linux进行无线网络渗透测试。无线网络渗透测试是评估无线网络安全性的重要步骤,而Kali Linux作为一款专业的渗透测试发行版,提供了丰富的工具来进行这项任务。 1. 准备工作 在开始无线网络渗透测试之前,有一些准…...
【Python机器学习】实验15 将Lenet5应用于Cifar10数据集(PyTorch实现)
文章目录 CIFAR10数据集介绍1. 数据的下载2.修改模型与前面的参数设置保持一致3. 新建模型4. 从数据集中分批量读取数据5. 定义损失函数6. 定义优化器7. 开始训练8.测试模型 9. 手写体图片的可视化10. 多幅图片的可视化 思考题11. 读取测试集的图片预测值(神经网络的…...
Jeep车型数据源:提供Jeep品牌车系、车型、价格、配置等信息
Jeep是一个极具特色的汽车品牌,它的所有车型都注重实用性,具有越野性能和高性能。Jeep品牌在汽车行业中的口碑一直是非常不错的。如果你想要了解Jeep品牌车系、车型、价格、配置等信息,就可以通过挖数据平台Jeep车型数据源API接口…...
clickhouse-备份恢复
一、简介 备份恢复是数据库常用的手段,可能大多数公司很少会对大数据所使用的数据进行备份,这里还是了解下比较好,下面做了一些简单的介绍,详细情况可以通过官网来查看,经过测试发现Disk中增量备份并不好用࿰…...
(2018,ProGAN)渐进式发展 GAN 以提高质量、稳定性和变化
Progressive Growing of GANs for Improved Quality, Stability, and Variation 公众号:EDPJ 目录 0. 摘要 1. 简介 2. GAN 的渐进式发展 3. 使用小批量标准差增加变化 4. 生成器和判别器的归一化 4.1 均衡学习率 4.2 生成器中的像素特征向量归一化 5. 评…...
负载均衡下的 WebShell 连接
目录 负载均衡简介负载均衡的分类网络通信分类 负载均衡下的 WebShell 连接场景描述难点介绍解决方法**Plan A** **关掉其中一台机器**(作死)**Plan B** **执行前先判断要不要执行****Plan C** 在Web 层做一次 HTTP 流量转发 (重点࿰…...
Postman的高级用法—Runner的使用
1.首先在postman新建要批量运行的接口文件夹,新建一个接口,并设置好全局变量。 2.然后在Test里面设置好要断言的方法 如: tests["Status code is 200"] responseCode.code 200; tests["Response time is less than 10000…...
spring如何进行依赖注入,通过set方法把Dao注入到serves
1、选择Generate右键鼠标 你在service层后面方法的这些: 2、UserService配置文件的写法是怎样的: 3、我们在UserController中执行一下具体写法: 最后我们执行一下 : 4、这里可能出现空指针,因为你当前web层,因为你new这个对象根…...
Python使用图像处理库PIL(Python Imaging Library)和NumPy库来比较两副图像的相似度
目录 1、解释说明: 2、使用示例: 3、注意事项: 1、解释说明: 在Python中,我们可以使用图像处理库PIL(Python Imaging Library)和NumPy库来比较两副图像的相似度。常用的图像相似度计算方法有…...
clickhouse扩缩容
一、背景 我们之前已经学会了搭建clickhouse集群,我们搭建的是一套单分片两副本的集群,接下来我们来测试下clickhouse的扩缩容情况 二、扩容 扩容相对来说比较简单,我们原来的架构如下 hostshardreplica192.169.1.111192.169.1.212 现在…...
动漫3D虚拟人物制作为企业数字化转型提供强大动力
一个 3D 虚拟数字人角色的制作流程,可以分为概念设定-3D 建模-贴图-蒙皮-动画-引擎测试六个步骤,涉及到的岗位有原画师、模型师、动画师等。角色概念设定、贴图绘制一般是由视觉设计师来完成;而建模、装配(骨骼绑定)、渲染动画是由三维设计师来制作完成。…...
数据同步工具比较:选择适合您业务需求的解决方案
在当今数字化时代,数据已经成为企业的核心资产。然而,随着业务的扩展和设备的增多,如何实现数据的高效管理和同步成为了一个亟待解决的问题。本文将介绍几种常见的数据同步工具,并对比它们的功能、性能和适用场景,帮助…...
Python中数据结构列表详解
列表是最常用的 Python 数据类型,它用一个方括号内的逗号分隔值出现,列表的数据项不需要具有相同的类型。 列表中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。列表都可…...
引领行业高质量发展|云畅科技参编《低代码开发平台创新发展路线图(2023)》
8月8日-9日,中国电子技术标准化研究院于北京顺利召开《低代码开发平台创新发展路线图(2023)》封闭编制会。云畅科技、浪潮、百度、广域铭岛等来自低代码开发平台解决方案供应商、用户方、科研院所等近30家相关单位的40余位专家参与了现场编制…...
Ubuntu22.04编译Nginx源码
执行如下命令 # ./configure --sbin-path/usr/local/nginx/nginx --conf-path/usr/local/nginx/nginx.conf --pid-path/usr/local/nginx/nginx.pid输出结果,出现如下: Configuration summary using system PCRE2 library OpenSSL library is not used …...
视频上传,限制时长,获取视频时长
使用element的upload上传文件时,除了类型和大小,需求需要限制只能长传18秒内的视频,这里通过upload的before-upload,以及创建一个音频元素对象拿到durtaion时长属性来实现。 getVideoTime(file) {return new Promise(async (resol…...
Open3D 进阶(5)变分贝叶斯高斯混合点云聚类
目录 一、算法原理二、代码实现三、结果展示四、测试数据本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 系列文章(连载中。。。爬虫,你倒是爬个完整的呀?): Open3D 进阶(1) MeanShift点云聚类Open3D 进阶(2)DB…...
5、css学习5(链接、列表)
1、css可以设置链接的四种状态样式。 a:link - 正常,未访问过的链接a:visited - 用户已访问过的链接a:hover - 当用户鼠标放在链接上时a:active - 链接被点击的那一刻 2、 a:hover 必须在 a:link 和 a:visited 之后, a:active 必须在 a:hover 之后&…...
Synchronized与Java线程的关系
前言 Java多线程处理任务时,为了线程安全,通常会对共享资源进行加锁,拿到锁的线程才能进行访问共享资源。而加锁方式通过都是Synchronized锁或者Lock锁。 那么多线程在协同工作的时候,线程状态的变化都与锁对象有关系。 …...
使用本地电脑搭建可以远程访问的SFTP服务器
文章目录 1. 搭建SFTP服务器1.1 下载 freesshd 服务器软件1.3 启动SFTP服务1.4 添加用户1.5 保存所有配置 2. 安装SFTP客户端FileZilla测试2.1 配置一个本地SFTP站点2.2 内网连接测试成功 3. 使用cpolar内网穿透3.1 创建SFTP隧道3.2 查看在线隧道列表 4. 使用SFTP客户端&#x…...
批量修改文件名怎么操作?
批量修改文件名怎么操作?不管你使用电脑处理工作还是进行学习,都会在电脑中产生很多的文件,时间一久电脑里的文件更加杂乱无章,这时候如果不对电脑中的文件进行及时的管理,那么很可能出现文件丢失而你自己还发现不了的…...
【LeetCode】538.把二叉搜索树转换为累加树
题目 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下,二叉搜索树满足下列约束条件…...
linux 安装 kibana
首先下载 kibana https://www.elastic.co/cn/downloads/kibana 然后上传到linux /usr/local 目录下解压安装 修改config/kibana.yml 配置文件,将elasticsearch.hosts 然后再nginx 中做一个端口映射,实现在浏览器中输入后xxxx:5602 nginx 可以将请求转发…...
STM32入门——IIC通讯
江科大STM32学习记录 I2C通信 I2C(Inter IC Bus)是由Philips公司开发的一种通用数据总线两根通信线:SCL(Serial Clock)、SDA(Serial Data)同步,半双工带数据应答支持总线挂载多设备…...
DTC 19服务学习2
紧跟上篇 0x04 reportDTCSnapshotRecordByDTCNumber 通过DTC和快照序列来获取DTC快照记录。 适用以下假设: — 服务器支持存储给定 DTC 的两个 DTCSnapshot 记录的能力。 — 此示例假定是上一个示例的延续。 — 假设服务器请求服务器存储的 DTC 编号 123456 的两个…...
【腾讯云 TDSQL-C Serverless 产品体验】基于腾讯云轻量服务器以及 TDSQL-C 搭建 LNMP WordPress 博客系统
文章目录 一、前言二、数据库发展与云原生数据库2.1 数据库发展简介2.2 云原生数据库简介2.2.1 云数据库与云原生数据库区别 三、腾讯云 TDSQL-C 数据库3.1 什么是腾讯云 TDSQL-C 数据库3.2 为什么推出 TDSQL-C 数据库?传统 MySQL 架构存在较多痛点3.2.1 传统 MySQL…...
中山市建设局网站/如何进行网站性能优化?
我不是Facebook也不是Pinterest 粉丝,所以当朋友Orli发给我 Pinvolve的链接时,我很惊奇,它把 Facebook的动态更新以Pinterest式风格呈现出来,我很喜欢这个。在我眼里它提供了更好地方式来浏览世界上最大的社交网络,即使…...
网站建设需要会/seo国外推广软件
为什么80%的码农都做不了架构师?>>> 编者按:Open vSwitch搭建GRE隧道实现不同AS网络互连互通。GRE(通用路由协议封装)是由Cisco和Net-smiths等公司于1994年提交给IETF,标号为RFC1701和RFC1702。GRE 规定了如何用一种网…...
17z一起做网站广州/网站是如何建立的
文章出处:www.net1980.com 案例描述 一台华为NE系列的路由器与其他厂商的路由器互连,并运行OSPF协议。配置完毕后,一切正常,并在相当长的时间内运转稳定。但两个月后,用户反馈网络中断。采用以下方式对问题定位…...
百度公司做网站服务/十大外贸电商平台
2019独角兽企业重金招聘Python工程师标准>>> 在开发过程中难免会遇到这种类型的错误,这种类型的错误归纳有如下几点: 相关工程文件未导入(主要是.m 文件)可以点击左下角的会发现有些.m 文件的话,点击添加相应的.m 文件即可.相关框架(framewwork)未导入这种情况的解决…...
乌鲁木齐做网站有哪些公司/营销渠道策略
1.安装软件环境安装以下软件,并安装GeoServer imagemosaic拓展插件,用来连接并加载PostGIS数据库中的栅格数据。PostGIS 2.4,PostgreSQL 9.6,GeoServer 2.12,geoserver-2.12-SNAPSHOT-imagemosaic-jdbc-plugin2.导入栅…...
做同款的网站/广州新闻热点事件
选取了部分内容进行记录,主要用于理解总体框架。水平有限,如有理解错误,欢迎指正! 2LEON: 2.3.1寻址范围: 完全权限,但OS在CSS,RT在MSS.直接到各自区域地址更好. 2.3.2启动: OS从ROM开始执行固件,固件从fla…...