zoukankan      html  css  js  c++  java
  • 第一轮面试

    第一轮面试题

    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。

    MyISAM不支持事务,InnoDB支持事务。
    MySIAM不支持外键,InnoDB支持外键,
    MySIAM支持全文索引,InnoDB不支持全文索引。

     

    六、什么是跨域?

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

     

    七、什么是token?

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

     

    八、什么是RESTful?

    首先rest是一种API的模式,常以JSON格式编写。符合rest约束风格和原则的应用程序或设计就是RESTful。

     

    九、SpringCloud解决了哪些问题?

    与分布式系统相关的复杂性 
    处理服务发现的能力
    解决冗余问题 
    负载平衡 
    减少性能问题 

     

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

    服务熔断的作用是当某服务出现不可用或响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用。       
    服务降级是为了预防某些功能(业务场景)出现负荷过载或者响应慢的情况,在其内部暂时舍弃对一些非核心的接口和数据的请求,而直接返回一个提前准备好的fallback(退路)错误处理信息。

     

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

    优点:

    易于开发和维护:因为一个服务只关注一个特定的业务,业务就变得比较清晰。同时维护起来也是比较方便。
    单个服务启动比较快:单个服务代码量不会很多,启动起来就会很快。
    便于伸缩:如果系统中有三个服务ABC,服务B的访问量比较大,我们可以将服务B集群部署。


    缺点:
    运维要求比较高:之前就一个war包,现在一个系统中会有很多的服务,每个服务都对应一个war包,维护起来就会变得很麻烦。
    技术复杂性提高:微服务就会带来一系列的问题,事务问题,Session一致性问题,锁问题等。

    
    

     

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

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

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

    首先,他们都是分布式管理框架。
        dubbo 是二进制传输,占用带宽会少一点。SpringCloud是http 传输,带宽会多一点,同时使用http协议一般会使用JSON报文,消耗会更大。
        SpringCloud 接口协议约定比较松散,需要强有力的行政措施来限制接口无序升级。
    最大的区别:
        Spring Cloud抛弃了Dubbo 的RPC通信,采用的是基于HTTP的REST方式。

     

    十四、SpringBoot 和 SpringCloud 之间关系?

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

    十五、eureka和zookeeper的区别?

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

     

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

    
    

    Mycat是基于MySQL的数据库中间件,用来协调切分后的数据库,使其可以进行统一管理。

    分片规则:取模分片 PartitionByMode

     

    十七、什么是集合?

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

     

    十八、什么是dubbo?

    Dubbo和Springcloud都是分布式服务中常用的框架。dubbo与cloud不同,dubbo基于RPC协议。它提供了三大核心功能: 面向接口的远程方法调用,

    智能容错和负载均衡, 以及服务自动注册和发现。

     

    十九、什么是spring?

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

     

     

     

     

     

  • 相关阅读:
    UUID工具类
    jax-rs 标准以及 结合 resteasy的使用
    Mina.Net实现的断线重连
    Mina.Net实现的UDP协议消息收发Demo
    MySql 比Replace Into更适合的用法,外加SqlServer的方式。
    MySql【Insert Select Not Exist】判断记录再添加值的方案
    MySql中存储过程中的@变量总是无法执行,提示Parameter '@XXX' must be defined
    Go语言使用Beego的ORM插入Mysql后,时区不一致的解决方案
    Go语言中Path包用法
    C#(WPF和WinForm)在普通类中调用到主线程的方法,SynchronizationContext的用法。
  • 原文地址:https://www.cnblogs.com/lingboweifu/p/11797419.html
Copyright © 2011-2022 走看看