第一轮面试题css
1.描述下数据库中的事务--ACID各个的特色html
2.什么是springboot?大家公司是用的哪一个版本?mysql
3.什么是redis?面试
4.如何理解springcloud微服务项目中,eureka,provider,consumer它们之间的关系?redis
5.mysql默认的存储引擎是什么?spring
6.什么是跨域?sql
7.什么是token?数据库
8.什么是RESTful?json
9.SpringCloud解决了哪些问题?跨域
10.微服务中什么是熔断?什么是服务降级?
11.微服务的优缺点是什么?
12.微服务之间如何独立通信的?
13.SpringCloud 和 Dubbo 有哪些区别?
14.SpringBoot 和 SpringCloud 之间关系?
15.eureka和zookeeper的区别?
16.mycat是什么?大家公司分库分表的分片规则是什么?
17.什么是集合?
18.什么是dubbo?
19.什么是spring?
1、描述下数据库中的事务--ACID各个的特色。
原子性:要么所有成功要么所有失败。
一致性:事务开始前和结束后,都是一致性状态(钱的总额不变)。
隔离性:多个并发的事务之间是相互隔离的,互不干扰的。
持久性:数据提交后,是永久改变的。
2、什么是springboot?大家公司是用的哪一个版本?
SpringBoot是Spring推出用于解决传统框架配置文件冗余,装配组件繁杂的基于Maven的解决方案,旨在快速搭建单个微服务。
版本号:2.1.6
3、什么是redis?
Redis 是彻底开源免费的,遵照BSD协议,是一个高性能的key-value数据库。
4、如何理解springcloud微服务项目中,eureka,provider,consumer它们之间的关系?
eureka:提供服务注册于发现
provider:服务提供方法将自身注册到eureka,让消费方找到
consumer:服务消费方从eureka获取注册服务列表,可以消费服务
5、mysql默认的存储引擎是什么?
Mysql在V5.1以前默认存储引擎是MyISAM;在此以后默认存储引擎是InnoDB。
6、什么是跨域?
要了解跨域,先要说说同源策略。所谓同源是指,域名,协议,端口相同,有一个不同则是跨域。
7、什么是token?
Token是服务端生成的一串字符串,以做客户端进行请求的一个令牌。
当第一次登陆后,服务器生成一个Token便将此Token返回给客户端,
之后客户端只需带上这个Token前来请求数据便可,无需再次带上用户名和密码。
8、什么是RESTful?
首先rest是一种API的模式,常以JSON格式编写。符合rest约束风格和原则的应用程序或设计就是RESTful。
9、SpringCloud解决了哪些问题?
与分布式系统相关的复杂性 – 包括网络问题,延迟开销,安全问题。
处理服务发现的能力 – 服务发现容许集群中的进程和服务找到彼此并进行通讯。
解决冗余问题 – 冗余问题常常发生在分布式系统中。
负载平衡 – 改进跨多个计算资源(例如计算机集群,网络连接,中央处理单元)的工做负载分布。
减小性能问题 – 减小因各类操做开销致使的性能问题。
10、微服务中什么是熔断?什么是服务降级?
服务熔断的做用相似于咱们家用的保险丝,当某服务出现不可用或响应超时的状况时,为了防止整个系统出现雪崩,暂时中止对该服务的调用。
服务降级是从整个系统的负荷状况出发和考虑的,对某些负荷会比较高的状况,为了预防某些功能(业务场景)出现负荷过载或者响应慢的状况,
在其内部暂时舍弃对一些非核心的接口和数据的请求,而直接返回一个提早准备好的fallback(退路)错误处理信息。
这样,虽然提供的是一个有损的服务,但却保证了整个系统的稳定性和可用性。
11、微服务的优缺点是什么?
优势:
松耦合,聚焦单一业务功能,无关开发语言,团队规模下降。在开发中,不须要了解多有业务,
只专一于当前功能,便利集中,功能小而精。微服务一个功能受损,对其余功能影响并非太大,能够快速定位问题。
微服务只专一于当前业务逻辑代码,不会和 html、css 或其余界面进行混合。能够灵活搭配技术,独立性比较舒服。
缺点:
随着服务数量增长,管理复杂,部署复杂,服务器须要增多,服务通讯和调用压力增大,运维工程师压力增大,
人力资源增多,系统依赖加强,数据一致性,性能监控。
或
优势
易于开发和维护:由于一个服务只关注一个特定的业务,业务就变得比较清晰。同时维护起来也是比较方便。
单个服务启动比较快:单个服务代码量不会不少,启动起来就会很快。
便于伸缩:若是系统中有三个服务ABC,服务B的访问量比较大,咱们能够将服务B集群部署。
微服务的缺点?
运维要求比较高:以前就一个war包,如今一个系统中会有不少的服务,每一个服务都对应一个war包,维护起来就会变得很麻烦。
技术复杂性提升:微服务就会带来一系列的问题,事务问题,Session一致性问题,锁问题等。
12、微服务之间如何独立通信的?
同步通讯:dobbo经过 RPC 远程过程调用、springcloud经过 REST接口json调用等。
异步:消息队列,如:RabbitMq、ActiveMq、Kafka 等。
十3、SpringCloud 和 Dubbo 有哪些区别?
首先,他们都是分布式管理框架。
dubbo 是二进制传输,占用带宽会少一点。SpringCloud是http 传输,带宽会多一点,同时使用http协议通常会使用JSON报文,消耗会更大。
dubbo 开发难度较大,所依赖的 jar 包有不少问题大型工程没法解决。SpringCloud 对第三方的继承能够一键式生成,自然集成。
SpringCloud 接口协议约定比较松散,须要强有力的行政措施来限制接口无序升级。
最大的区别:
Spring Cloud抛弃了Dubbo 的RPC通讯,采用的是基于HTTP的REST方式。
严格来讲,这两种方式各有优劣。虽然在必定程度上来讲,后者牺牲了服务调用的性能,
但也避免了上面提到的原生RPC带来的问题。并且REST相比RPC更为灵活,服务提供方和调用方的依赖只依靠一纸契约,
不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更为合适。
十4、SpringBoot 和 SpringCloud 之间关系?
SpringBoot:专一于快速方便的开发单个个体微服务(关注微观);
SpringCloud:关注全局的微服务协调治理框架,将SpringBoot开发的一个个单体微服务组合并管理起来(关注宏观);
SpringBoot能够离开SpringCloud独立使用,可是SpringCloud不能够离开SpringBoot,属于依赖关系。
十5、eureka和zookeeper的区别?
eureka和zookeeper均可以提供服务注册与发现的功能,zookeeper 是CP原则,强一致性和分区容错性。eureka 是AP 原则 可用性和分区容错性。
zookeeper当主节点故障时,zk会在剩余节点从新选择主节点,耗时过长,虽然最终可以恢复,可是选取主节点期间会致使服务不可用,这是不能容忍的。
eureka各个节点是平等的,一个节点挂掉,其余节点仍会正常保证服务。
十6、mycat是什么?大家公司分库分表的分片规则是什么?
Mycat是基于MySQL的数据库中间件,用来协调切分后的数据库,使其能够进行统一管理。
分片规则:取模分片 PartitionByMode
十7、什么是集合?
集合有两个父接口,一个collection,一个Map;
而collection有两个子接口,一个List,一个Set;
List有两个常见的实现类 ArrayList,LinkedList;
Set有两个常见的实现类 HashSet,TreeSet;
Map有两个常见的实现类 HashMap,HashTable。
十8、什么是dubbo?
Dubbo是一款高性能, 轻量级的开源Java RPC分布式服务框架, 它提供了三大核心功能: 面向接口的远程方法调用,
智能容错和负载均衡, 以及服务自动注册和发现。它最大的特色是按照分层的方式来架构,使用这种方式可使各个层之间解藕(或者最大限度地松耦合)。
从服务模型的角度来看, Dubbo采用的是一种很是简单的模型, 要么提供方提供服务, 要么是消费方消费服务, 因此基于这一点能够抽象出服务提供方和服务消费方两个角色。
十9、什么是spring?
Spring是一个开源的轻量级的Java开发框架。是一种简化应用程序的开发。
在spring出来以前,service层调用dao层都是用new的方式,在spring出来以后,service层和到dao层都会放在spring容器去管理,这是spring的第一种特性,咱们称之为IOC,控制反转。
spring还有一种特性,咱们称之为AOP,大白话,所谓“面向切面”,说白了就是专门的人干专门的事。在项目不少公有的或是要被重复被调用的模块能够被抽取出来,利用的就AOP的特性,例如日志模块。