Java面试题大全免费下载地址:
Java面试题大全.pdf-其它文档类资源-CSDN下载
V-cloak:防止页面加载时出现闪烁问题
v-text:将数据填充到标签中。
v-html:在v-text的基础上,还可以讲html片段填充到标签中。不能用在用户提交上
v-pre:显示原始信息,跳过编译过程(这个元素和它的子元素)
v-once:执行一次性的插值(当数据改变时,插值处的内容不会继续更新)
v-model:一个指令,限制在
双向数据绑定:当数据发生改变时,视图也就发生变化;
当视图发生变化时,数据也会跟着同步变化。
项目所有功能模块放在一个工程中编码、编译、打包部署在一个tomcat容器中。
简单实用、便于维护、成本低。
优点:高效开发、架构简单、易于测试、易于部署。
缺点:可靠性差、复杂性高、扩展能力受限。
为了业务之间互不影响,提高效率、减少组件之间的依赖。
优点:流量分担解决并发问题;
可以针对不同模块进行优化;
方便水平扩展、负载均衡、容错率高;
系统间相互独立,互不影响,业务迭代更高效。
缺点:服务之间相互调用,端口发生改变得手动改变;
搭建集群之后,实现负载均衡比较复杂;
服务之间调用方式不统一;
服务监控不到位。
Dubbo 高性能、轻量级的开源java RPC框架,可以和Spring框架无缝集成。
核心功能:面向接口的远程方法调用;
智能容错和负载均衡;
服务自动注册和发现。
优点:分布式、松耦合、扩展灵活、可重用。
缺点:服务抽取力度较大,服务调用方和提供耦合度较高。
拆分粒度更小,服务更独立。微小、独立、轻量级通信。
重点:业务需要彻底组件化服务化。
优点:
微小,便于特定服务的聚焦,解耦、便于实施敏捷开发。
便于重用和模块之间的组装
独立,松耦合,不同的微服务可以使用不同的语言开发。
更容易引进新的技术。
缺点:
分布式复杂难以管理。
分布式链路跟踪难。
服务注册:提供者将所提供服务的信息(服务器IP和端口、访问协议)
服务发现:消费者从中获取到服务列表。
将请求压力分配到多个服务器,以提高服务的性能、可靠性。
短路保护。牺牲局部,保全整体。
断路器负责监控服务之间的调用情况,连续多次失败进行熔断保护。
对一次请求涉及的多个服务链路进行日志记录、性能监控。
负责转发所有外来请求
提供了统一的配置信息管理服务,可以实时通知各个服务获取最新的配置信息。
16、SpringCloud
Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
解决的问题:微服务架构中的服务注册发现问题、网络问题(比如熔断场景)、统一认证安全授权问题、负载均衡问题、链路追踪等问题。
16、核心组件:
注册中心:Eureka
客户端负载均衡:Ribbon
熔断器:Hystrix
网关:Zuul
配置中心:Config
服务调用:Feign
消息驱动:Stream
链路追踪:Sleuth
SpringCloud只是利用了SpringBoot的特点,让我们能够快速的实现微服务组件开发。
Eureka:服务注册中心(可以是一个集群),对外暴露自己的地址。
提供者:启动后向Eureka注册自己信息(地址,提供的服务)
消费者:向Eureka订阅服务,Eureka会将对应服务的读物列表发送给消费者,定 期更更新。
心跳(续约):提供者定期通过http方式向Eureka定期通过http方式向Eureka刷新自己的状态。
服务提供者在启动时,会向Eureka Server 发起一次请求,将自己注册到Eureka注册中心去。
注册服务之后,服务提供者维持一个心跳(30s定时向Eureka Server 发送请求)
服务提供者不一定正常下线,可能内存溢出、网络故障等,Eureka Server 将是小的服务剔除服务列表,开启定时任务,每60s对失效服务进行一次剔除。
服务未按时心跳,因为网络原因,Eureka 将当前实例的注册信息保护起来,不允许剔除。有效的保证了大多数服务依然可用。
服务器:(Nginx、F5)请求到服务器,由负载均衡根据一定的算法,将请求路由到目标服务器处理。
客户端:(Ribbon)消费者客户端会有一个服务器列表,调用方法在请求前通过一定的负载均衡算法选择一个服务器访问,负载均衡算法是在请求客户端进行的。
25、服务器雪崩
一种因“服务提供者不可用”导致“服务调用这不可用”,并将不可用逐渐扩大的现象。
形成原因:
解决方案:
一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,提升系统的可用性与容错性。
轻量级HTTP服务客户端(发送请求、远程调用)。
本质:封装了Http调用流程,更符合面向接口化的编程习惯,类似于Dubbo的服务调用。
对熔断的支持:
客户端工程配置文件中开启支持,超时时长设置。
网关:建权、路由、导航
30、Gateway的路由规则
31、Gateway的过滤使用、
GlobalFilter全局过滤器是程序员使用比较多的过滤器,可以在过滤器中完成鉴权、流量控制、IP黑白名单、权限控制、日志监控等。
SCA阿里开源组件
32、Nacos:更易于构建原生应用的动态服务发现、配置管理和服务管理平台。
33、Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务器稳定。
34、RocketMQ:分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息分布与订阅服务。
使用场景/好处:
特点:(1)可靠性。
Broker:消息队列服务器实体。
Exchange:消息交换机,指定消息什么规则,路由到哪个队列。
Queue:消息队列载体。
简称ES,一个开源的高扩展的分布式全文检索引擎,可以近乎实时存储数据、检索数据。
概述:面向文档,可以存储整个对象或文档。还可以检索每个文档的内容,对文档进行索引、搜索、排序、过滤。
分片:将索引划分成多份,可以放置在集群任何节点上。1、允许水平分割/扩展内容数量;2、允许在分片上进行分布式、并行。
复制:创建分片的一份或多份拷贝。1、在分片/节点失败的情况下,提高了高可用性;2、搜索可以在所有复制上运行;3、分片和复制的数量可以在索引创建的时候指定。4、复制数量可以在之后动态改变,分片数量事后不能再改变。
作用:缓解单机和单库带来的性能瓶颈和压力,突破网络IO、硬件资源、连接数的瓶颈。
方式:垂直分库、水平分库、垂直分表、水平分表。
垂直拆分原则:(1)不常用的字段单独放一张表。
(2)text、blob等大字段拆分放在附表。
(3)经常组合查询的列放在同一张表中。
按照业务进行分类,分不到不同的数据库上,每个库可以放在不同的数据库上(专库专用)。
好处:(1)业务层面解耦
(2)对不同的业务数据进行分级管理、维护、监控、扩展。
(3)高并发场景下,提升IO、数据库连接数、降低单机硬件资源的瓶颈。
把同一张表的数据按一定规则拆到不同的数据库中,每个库可以放在不同的服务器上。
好处:解决了单库大数据,高并发的性能瓶颈,提高了系统的稳定性和可用性。
将一个表按照字段分成多表,每个表存储一部分字段。
好处:(1)避免IO争抢,减少锁表的几率。
(2)充分发挥热门数据的操作效率。
在同一个数据库内,把同一个表的数据按一定规则拆到多个表中。
好处:优化单一表数据量过大而产生的性能问题,避免IO争抢,减少锁表的几率。
当当网研发的开源分布式数据库中间件。