首页 > 其他 > 详细

第一轮面试

时间:2019-11-05 13:18:24      阅读:94      评论:0      收藏:0      [点我收藏+]

第一轮面试题

1.描述下数据库中的事务--ACID各个的特点

2.什么是springboot?你们公司是用的哪个版本?

3.什么是redis?

4.如何理解springcloud微服务项目中,eureka,provider,consumer它们之间的关系?

5.mysql默认的存储引擎是什么?

6.什么是跨域?

7.什么是token?

8.什么是RESTful?

9.SpringCloud解决了哪些问题?

10.微服务中什么是熔断?什么是服务降级?

11.微服务的优缺点是什么?

12.微服务之间如何独立通讯的?

13.SpringCloud 和 Dubbo 有哪些区别?

14.SpringBoot 和 SpringCloud 之间关系?

15.eureka和zookeeper的区别?

16.mycat是什么?你们公司分库分表的分片规则是什么?

17.什么是集合?

18.什么是dubbo?

19.什么是spring?


 

一、描述下数据库中的事务--ACID各个的特点。

原子性:要么全部成功要么全部失败。
一致性:事务开始前和结束后,都是一致性状态(钱的总额不变)。
隔离性:多个并发的事务之间是相互隔离的,互不干扰的。
持久性:数据提交后,是永久改变的。

 

二、什么是springboot?你们公司是用的哪个版本?

SpringBoot是Spring推出用于解决传统框架配置文件冗余,装配组件繁杂的基于Maven的解决方案,旨在快速搭建单个微服务。
版本号:2.1.6

 

三、什么是redis?

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

 

四、如何理解springcloud微服务项目中,eureka,provider,consumer它们之间的关系?

eureka:提供服务注册于发现
provider:服务提供方法将自身注册到eureka,让消费方找到
consumer:服务消费方从eureka获取注册服务列表,能够消费服务

 

五、mysql默认的存储引擎是什么?

Mysql在V5.1之前默认存储引擎是MyISAM;在此之后默认存储引擎是InnoDB。

 

六、什么是跨域?

要了解跨域,先要说说同源策略。所谓同源是指,域名,协议,端口相同,有一个不一样则是跨域。

 

七、什么是token?

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌。
当第一次登录后,服务器生成一个Token便将此Token返回给客户端,
以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

 

八、什么是RESTful?

RESTful 指的是满足这些约束条件和原则的应用程序或设计。

 

九、SpringCloud解决了哪些问题?

与分布式系统相关的复杂性 – 包括网络问题,延迟开销,带宽问题,安全问题。
处理服务发现的能力 – 服务发现允许集群中的进程和服务找到彼此并进行通信。
解决冗余问题 – 冗余问题经常发生在分布式系统中。
负载平衡 – 改进跨多个计算资源(例如计算机集群,网络链接,中央处理单元)的工作负载分布。
减少性能问题 – 减少因各种操作开销导致的性能问题。

 

十、微服务中什么是熔断?什么是服务降级?

服务熔断的作用类似于我们家用的保险丝,当某服务出现不可用或响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用。       
服务降级是从整个系统的负荷情况出发和考虑的,对某些负荷会比较高的情况,为了预防某些功能(业务场景)出现负荷过载或者响应慢的情况,
在其内部暂时舍弃对一些非核心的接口和数据的请求,而直接返回一个提前准备好的fallback(退路)错误处理信息。
这样,虽然提供的是一个有损的服务,但却保证了整个系统的稳定性和可用性。

 

十一、微服务的优缺点是什么?

优点:
   松耦合,聚焦单一业务功能,无关开发语言,团队规模降低。在开发中,不需要了解多有业务,
    只专注于当前功能,便利集中,功能小而精。微服务一个功能受损,对其他功能影响并不是太大,可以快速定位问题。
    微服务只专注于当前业务逻辑代码,不会和 html、css 或其他界面进行混合。可以灵活搭配技术,独立性比较舒服。
缺点:
  随着服务数量增加,管理复杂,部署复杂,服务器需要增多,服务通信和调用压力增大,运维工程师压力增大,
  人力资源增多,系统依赖增强,数据一致性,性能监控。

 

十二、微服务之间如何独立通讯的?

同步通信:dobbo通过 RPC 远程过程调用、springcloud通过 REST接口json调用等。
异步:消息队列,如:RabbitMq、ActiveMq、Kafka 等。

 

十三、SpringCloud 和 Dubbo 有哪些区别?

首先,他们都是分布式管理框架。
    dubbo 是二进制传输,占用带宽会少一点。SpringCloud是http 传输,带宽会多一点,同时使用http协议一般会使用JSON报文,消耗会更大。
    dubbo 开发难度较大,所依赖的 jar 包有很多问题大型工程无法解决。SpringCloud 对第三方的继承可以一键式生成,天然集成。
    SpringCloud 接口协议约定比较松散,需要强有力的行政措施来限制接口无序升级。
最大的区别:
    Spring Cloud抛弃了Dubbo 的RPC通信,采用的是基于HTTP的REST方式。
    严格来说,这两种方式各有优劣。虽然在一定程度上来说,后者牺牲了服务调用的性能,
    但也避免了上面提到的原生RPC带来的问题。而且REST相比RPC更为灵活,服务提供方和调用方的依赖只依靠一纸契约,
    不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更为合适。

 

十四、SpringBoot 和 SpringCloud 之间关系?

SpringBoot:专注于快速方便的开发单个个体微服务(关注微观);
SpringCloud:关注全局的微服务协调治理框架,将SpringBoot开发的一个个单体微服务组合并管理起来(关注宏观);
SpringBoot可以离开SpringCloud独立使用,但是SpringCloud不可以离开SpringBoot,属于依赖关系。

 

十五、eureka和zookeeper的区别?

eureka和zookeeper都可以提供服务注册与发现的功能,zookeeper 是CP原则,强一致性和分区容错性。eureka 是AP 原则 可用性和分区容错性。
zookeeper当主节点故障时,zk会在剩余节点重新选择主节点,耗时过长,虽然最终能够恢复,但是选取主节点期间会导致服务不可用,这是不能容忍的。
eureka各个节点是平等的,一个节点挂掉,其他节点仍会正常保证服务。

 

十六、mycat是什么?你们公司分库分表的分片规则是什么?

一个彻底开源的,面向企业应用开发的大数据库集群 ,支持事务、ACID、可以替代MySQL的加强版数据库
分片规则:除三取模

 

十七、什么是集合?

集合有两个父接口,一个collection,一个Map;
而collection有两个子接口,一个List,一个Set;
List有两个常见的实现类 ArrayList,LinkedList;
Set有两个常见的实现类 HashSet,TreeSet;
Map有两个常见的实现类 HashMap,HashTable。

 

十八、什么是dubbo?

Dubbo是一款高性能, 轻量级的开源Java RPC分布式服务框架, 它提供了三大核心功能: 面向接口的远程方法调用,
智能容错和负载均衡, 以及服务自动注册和发现。它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解藕(或者最大限度地松耦合)。
从服务模型的角度来看, Dubbo采用的是一种非常简单的模型, 要么提供方提供服务, 要么是消费方消费服务, 所以基于这一点可以抽象出服务提供方和服务消费方两个角色。

 

十九、什么是spring?

Spring是一个开源的轻量级的Java开发框架。是一种简化应用程序的开发。
在spring出来之前,service层调用dao层都是用new的方式,在spring出来之后,service层和到dao层都会放在spring容器去管理,
这是spring的第一种特性,我们称之为IOC,控制反转。 spring还有一种特性,我们称之为AOP,大白话,所谓“面向切面”,说白了就是专门的人干专门的事。
在项目很多公有的或是要被重复被调用的模块可以被抽取出来,利用的就AOP的特性,例如日志模块。

 

 

 

 

 

 

第一轮面试

原文:https://www.cnblogs.com/lingboweifu/p/11797419.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!