精华内容
下载资源
问答
  • 面试题】-java分布式及微服务面试题汇总

    万次阅读 多人点赞 2019-05-06 16:35:38
    目录 1.CAP理论 2.BASE理论 3.接口的幂等性问题 4.消息中间件如何解决消息丢失问题 ...11.dubbo服务提供者,服务消费者需要配置哪些信息? 12.Dubbo有哪些负载均衡策略 13.Redis的持久化方式...

    目录

    1.CAP理论

    2.BASE理论

    3.接口的幂等性问题

    4.消息中间件如何解决消息丢失问题

    5.什么是分布式事务?分布式事务的类型有哪些?

    6.分布式事务的解决方案有哪些?

    7.Dubbo的服务请求失败怎么处理

    10.Soa和微服务架构有哪些区别?

    11.dubbo服务提供者,服务消费者需要配置哪些信息?

    12.Dubbo有哪些负载均衡策略

    13.Redis的持久化方式有哪些?各有何利弊?

    14.aof文件过大怎么处理?

    15.讲一下redis的事务

    16.缓存雪崩是什么

    17.如何避免缓存雪崩

    18.缓存穿透是什么?如何避免?

    19.zookeeper的原理

    20.zookeeper有哪些应用场景

    21.zookeeper的节点类型有哪些?有什么区别?

    22.讲一下zookeeper的选举机制

    23.zookeeper的节点数为什么只能为奇数个?

    24.如何保证消息队列的高可用

    25.如何保证消息不被重复消费(幂等性问题)

    26.如何保证消息的消费顺序? 

    27.如何解决消息队列的延时及过期失效问题?

    28.消息队列满了怎么处理?当消息过度积压怎么处理?


    1.CAP理论

    任何分布式系统都无法同时满足一致性(consistency),可用性(availibity),分区容错性(partition tolerance)这三项,最多只可同时满足其中的两项.

    看过一道京东的面试题:

    请说一说用zookeeper做注册中心和Eureka做注册中心的不同之处.

    可以从CAP的角度进行分析,zk做注册中心是满足CP的,spring cloud是满足AP的,具体的可以展开阐述.

    2.BASE理论

    BASE是 Basically Available (基本可用) Soft state(软状态) Eventually consistent(最终一致性)这几个单词的缩写,

    是从CAP理论发展而来的,其核心思想是:即使无法做到强一致性,但每个应用都可以根据自身特点,采取适当的方式来使系统达到最终一致性.

    3.接口的幂等性问题

    幂等的意思是重复操作,接口的幂等性也就是接口被重复调用了,在前端不进行限制的情况下,同一个接口可能重复调用多次,为了避免类似重复下单的问题,可以通过以下几种方式来解决幂等性问题:

    全局唯一ID,根据业务操作和内容生成全局唯一的ID,然后在执行操作前先判断是否已经存在该ID,如果不存在则将该ID进行持久化(存在数据库或者redis中),如果已经存在则证明该接口已经被调用过了.比如下单时可以生产一个流水号来作为该订单的唯一标识.

    可以使用select+insert来进行判断,因为一般订单的ID都是唯一索引,在高并发场景下不推荐.

    可以使用乐观锁解决,在表中可以添加一个version字段.

    token机制,将token放在redis中.

    4.消息中间件如何解决消息丢失问题

    可以在消息发送者这里发送一个id,接收端收到消息后将该ID存储于DB中,然后可以通过判断DB是否存在该ID来确定消息是否成功发送.

    当然现在的消息中间件都比较强大,已经考虑并完善了这块内容,所以你可以直接借助消息中间件提供的方法来解决.

    比如rabbitMQ,提供了事务机制,你可以在消息发送前提交事务,如果发送失败会自动回滚.

    // 开启事务
    channel.txSelect
    try {
        // 这里发送消息
    } catch (Exception e) {
        channel.txRollback
    
        // 这里再次重发这条消息
    }
    
    // 提交事务
    channel.txCommit

    但这样会比较耗性能,所以更推荐的做法是使用rabbitmq提供的confirm机制.confirm机制是异步的,在消费者收到生产者发送的消息后会回调ack,如果消费者接收失败会回调nack接口.

    要想真正做到万无一失,我们不仅需要对Message进行持久化,还需要对Exchange,Queue也进行持久化,而rabbitMQ提供了这些持久化机制,因此使用一款好的消息中间件就可以很好的解决消息丢失问题.

    当然除了rabbitMQ,kafka也有相应的解决方案,就不细说了(主要是不会).

    5.什么是分布式事务?分布式事务的类型有哪些?

    涉及到多个数据库操作的事务即为分布式事务,目的是为保证分布式系统中的数据一致性.

    分布式事务类型:

    二阶段提交2PC:第一步请求阶段通过协调者来统计表决结果,第二步执行表决后的结果,如果表决的结果是提交,那就提交执行,否则不执行提交.缺点是同步阻塞,而且万一协调者挂了就无法保证ACID.

    三阶段提交3PC:在2PC的第一步拆分成了2步并且引入了超时机制,解决了2PC的痛点.第一步先向参与者发出一个信号,看看大家是否都能提交,如果可以就返回yes,否则返回no.第二步PreCommit阶段,预提交一下,如果参与者可以完成commit,就返回ack进确认,如果不能则放弃提交本次事务.第三步doCommit阶段,进行真正的事务提交.

    6.分布式事务的解决方案有哪些?

    XA:XA是基于二阶段事务实现的一种标准协议,目前主流数据库都已支持该协议.由于是二阶段提交,缺点很明显,不适合高并发场景.

    补偿机制TCC:try,commit,cancel的缩写,try阶段进行检测,commit提交执行,只要try阶段成功了commit就一定会被执行,cancel业务出现错误时执行,回滚事务,释放资源.

    消息中间件MQ:可以通过阿里的消息中间件RocketMQ来进行解决.RocketMQ支持带事务的消息,具体思路大概是这样的:

    第一步:消息生产者向消息集群发送prepared消息,获取消息地址.

    第二步:本地提交事务,并向集群发送确认消息.

    第三步:通过第一步获取到的地址,访问消息并改变消息状态.

     

    7.Dubbo的服务请求失败怎么处理

    Dubbo启动时有默认的重试机制和超时机制,如果服务在限定的请求时间内没有响应,则认为本次请求失败.

    如果在配置的重试次数内,请求失败后dubbo会重新发送请求,如果超过请求失败的重试次数还没有请求成功,则认为本次请求失败,抛出异常.

    8.Dubbo支持哪些协议?Dubbo的默认协议是什么?

    Dubbo支持多种协议,比如dubbo,http,rmi,webservice,默认支持的协议是dubbo协议.

    9.Dubbo和SpringCloud有哪些区别?

    Dubbo是soa(面向服务的架构),SpringCloud是微服务架构.

    Dubbo基于RPC(远程过程调用),SpringCloud是基于Restful,前者底层是tcp连接,后者是http,在大量请求的情况下,dubbo的响应时间要短于springcloud.

    Dubbo的提供的功能要少于springcloud,springcloud提供了一整套的微服务治理方案,比如服务熔断,监控,追踪,配置中心等.

    10.Soa和微服务架构有哪些区别?

    微服务是在Soa的基础上发展而来,从粒度上来说,微服务的粒度要比SOA更细.

    微服务由于粒度更细,所以微服务架构的耦合度相对于SOA架构的耦合度更低.

    微服务的服务规模相较于SOA一般要更大,所能承载的并发量也更高.

    11.dubbo服务提供者,服务消费者需要配置哪些信息?

    提供者:需要配置IP,端口,协议.

    消费者:注册中心的地址.

    12.Dubbo有哪些负载均衡策略

    一致性Hash均衡算法,轮询,随机调用,最少活动调用法.

    13Redis支持哪些数据结构?分别有哪些应用场景?

    Redis一共支持5种数据类型:String,List,Hash,set,sort set.

    String常被用来存放字符串,get,set缓存.

    List可以用来做列表.Hash用来放对象,比如用户的信息.sort set可以用来做排行榜

    13.Redis的持久化方式有哪些?各有何利弊?

    Redis的持久化有两种方式,AOF和RDB.

    AOF:以独立日志记录写命令方式存储日志,重启时再重新执行日志中记录的数据即可完成恢复.优势是数据安全,不容易丢数据,而且aof中的内容可以读懂,如果不小心敲了flushall命令,还可以将aof文件尾部的flushall命令删掉,然后就可以恢复数据了.缺点是占用存储空间大,数据恢复较慢.

    RDB:将内存中的数据以快照的方式写进二进制文件中.优势是数据恢复快,方便备份,缺点是比较耗内存,可能会造成数据丢失.

    14.aof文件过大怎么处理?

    可以重复执行aof命令,bgwriteaof,执行后会触发重写aof文件,会将aof中的重复命令进行压缩.

    15.讲一下redis的事务

    redis的事务先以MULTI开启事务,将多个命令入队到事务中,然后通过EXEC命令触发执行队伍中的所有命令,如果想取消事务可以执行discard命令.

    16.缓存雪崩是什么

    如果所有缓存数据设置的过期时间是相同的,那么所有缓存在同一时间内由于到期而失效,此时请求会全部进入数据库,这就是缓存雪崩.

    17.如何避免缓存雪崩

    可以对缓存的过期时间设置一个随机值,避免缓存在同一时间过期.

    18.缓存穿透是什么?如何避免?

    缓存穿透就是指在查询一个一定不存在的数据时,缓存会不命中,如果从数据库中查询不到则不放入缓存,则每次请求实际都会进数据库进行查询,失去了缓存的意义.

    可以采用布隆过滤,也就是将数据库中所有可能存在的数据哈希放到一张足够大的bitmap中,一定不存在的数据就会被bitmap过滤掉,从而减轻数据库的压力.

    19.zookeeper的原理

    zab协议,zab协议有2种模式恢复模式(选主)和广播模式(同步),当服务启动或者主节点宕机后,zk会进入恢复模式,选出Master节点后就可以进行数据同步了.

    20.zookeeper有哪些应用场景

    zookeeper可以作为dubbo的注册中心,可以做分布式锁,可以做mycat的配置中心.

    21.zookeeper的节点类型有哪些?有什么区别?

    有临时节点和永久节点,分再细一点有临时有序/无序节点,有永久有序/无序节点.

    当创建临时节点的程序结束后,临时节点会自动消失,临时节点上的数据也会一起消失.

    22.讲一下zookeeper的选举机制

    zookeeper的节点数必须为2n+1,也就是奇数个节点,以此来保证选举成功.

    以5个节点的集群为例,每个zk都有自己的id,叫myid,这里假设我5台服务器zk的myid依次为1-5.

    启动myid为1的zk,它会给自己投票,然后发现集群中无其他节点启动,于是它处于looking状态

    启动myid为2的zk,它会给自己投票,然后与节点1互换投票,由于节点2的myid大于节点1,所以此次投票节点2胜出,但节点2此时的得票少于总节点数的一半,所以节点2不能被作为master,节点2也将处于looking状态

    启动myid为3的zk,它会给自己投票,然后与节点1,2互换投票,由于节点3的myid大于节点2,所以此次投票节点3胜出,节点3的得票数大于节点总数的一半了,此时节点3胜出,成为master节点,其他两个节点成为slaver节点

    启动myid为4的zk,尽管节点4的myid最大,但此时已经有主了,节点4也只能乖乖做一个从节点...

    启动myid为5同上...

    当有节点挂了之后,开始重新选举,选举规则跟上面类似.

    23.zookeeper的节点数为什么只能为奇数个?

    因为zookeeper的选举算法要求:可用节点数 > 总节点数/2 如果为奇数个节点的话,一旦zk集群发生均等脑裂,就无法保证该算法要求.

    24.如何保证消息队列的高可用

    可用采用集群来保证高可用,以RabbitMQ为例,推荐采用镜像集群,普通集群如果磁盘节点挂了就GG了,还是无法保证高可用,镜像集群的配置要用到HAProxy,需要在后台管理页面中设置策略,将ha-mode设置为all,表明每个节点上都存放镜像...限于篇幅,具体的集群配置我后面会专门写一篇博客总结.

    25.如何保证消息不被重复消费(幂等性问题)

    rabbitmq并没有提供防止消息重复消费的功能,只能在业务端去实现,如果业务是做了集群的,我们可以用redis帮助解决,具体做法是将消息的msgid和消费状态用redis存储起来,每次消费前先查看一下本次消费的消息状态,如果已经被消费过了,就可以不用消费.如果尚未消费,就可以进行消费,消费完把对应的状态改为已消费即可.

    26.如何保证消息的消费顺序? 

    以rabbitmq为例,消息1和消息2需要按顺序消费,必须先消费消息1,后消费消息2,我们可以将消息放顺序到不同的queue里,然后由worker来消费.

    27.如何解决消息队列的延时及过期失效问题?

    批量重导,自己写程序把失效的数据查出来然后重新导入队里中.

    28.消息队列满了怎么处理?当消息过度积压怎么处理?

    应当在设计上尽量避免出现这种问题,如果确实已经碰到了,可以采取服务降级策略,同时临时增加一些消费能力更强劲的消费者,以X倍速率消费队列中积压的消息.

    展开全文
  • Dubbo、SpringCloud、zookeeper、mq、spring boot、kafka资料汇总
  • 最近整理了分布式面试题,一共有121道,后面会不断增加,争取做到全网最全的分布式面试题。大部分题目都是来自小伙伴们在面试中被问到后,反馈到我这里的。也由此可知,下一个被问到的估计就是你。分...

    最近整理了分布式面试题,一共有121道,后面会不断增加,争取做到全网最全的分布式面试题。大部分题目都是来自小伙伴们在面试中被问到后,反馈到我这里的。也由此可知,下一个被问到的估计就是你。

    分布式事务

    分布式事务相关面试题一共17道,后面不断完善。

    请说说你对分布式系统 CAP 理论的理解,CAP 分别代表什么含义?

    什么是二阶段提交?

    什么是三阶段提交?

    什么是补偿事务?

    你知道哪些分布式事务解决方案?

    为什么分布式系统的一致性和可用性不能同时满足?

    你是如何理解数据一致性的?数据一致性有哪几种模型?

    你在做系统设计时,如何选择实现强一致性还是弱一致性?

    在你的项目里,是如何设计分布式事务,实现最终一致性的?

    Sagas事务模型是什么?

    熟悉哪些分布式锁实现方案?

    分布式锁应该具备哪些条件?

    哪种分布式锁实现方案更好?

    你了解数据库的 binlog 和 redolog 吗?是如何实现一致性的呢?

    分布式幂等性如何设计?

    简单一次完整的 HTTP 请求所经历的步骤?

    如何提高系统的并发能力?

    分布式微服务

    微服务模块一共搜集到面试题共42道,基本上已经覆盖完成,后期对这些题目做进步优化。

    为什么需要 Dubbo?

    Dubbo 的主要应用场景?

    Dubbo 的核心功能?

    Dubbo 服务注册与发现的流程?

    Dubbo 的服务调用流程?

    Dubbo 支持哪些协议,每种协议的应用场景、优缺点?

    Dubbo 有些哪些注册中心?

    Dubbo 如何实现服务治理?

    Dubbo 的注册中心集群挂掉,如何正常消费?

    Dubbo 集群提供了哪些负载均衡策略?

    Dubbo 的集群容错方案有哪些?

    Dubbo 支持哪些序列化方式?

    说说一次 Dubbo 服务请求流程?

    说说 Dubbo 工作原理

    注册中心挂了,consumer 还能不能调用 provider?

    怎么实现动态感知服务下线的呢?

    服务提供者没挂,但在注册中心里看不到?

    说说Dubbo的优先级配置

    负载平衡的意义什么?

    常见负载均衡算法有哪些?

    你知道哪些限流算法?

    说说什么是计数器(固定窗口)算法

    说说什么是滑动窗口算法

    说说什么是漏桶算法

    说说什么是令牌桶算法

    什么是微服务?

    Spring Cloud 的核心组件有哪些?

    Spring Cloud有什么优势?

    什么是服务熔断?什么是服务降级?

    Eureka和Zookeeper,作为注册中心,有什么区别

    Spring Boot和Spring Cloud的区别?

    什么是Hystrix?它如何实现容错?

    说说 RPC 的实现原理

    Eureka自我保护机制是什么?

    什么是Ribbon?

    什么是Feigin?它的优点是什么?

    Ribbon和Feign的区别?

    说说微服务之间是如何独立通讯的?

    Spring Cloud如何实现服务的注册?

    说说 Dubbo 与 Spring Cloud 的区别?

    简述一下什么是Nginx,它有什么优势和功能?

    Nginx是如何处理一个HTTP请求的呢?

    分布式存储

    共10道

    当高并发系统设计时,为什么要分库分表?

    用过哪些分库分表中间件?

    不同的分库分表中间件都有什么优点和缺点?

    如何对数据库进行垂直拆分或水平拆分?

    如果要设计一个可以动态扩容缩容的分库分表方案,应该如何做?

    数据库分库分表以后,如何处理设计主键生成器?

    不同的主键生成方式有什么区别?

    分布式ID生成有几种方案?

    分库分表第三方框架有哪些?

    分布式消息队列

    共27道

    为什么要使用消息队列?

    消息队列有什么缺点?

    如何保证消息队列的高可用?

    如何保证消息不被重复消费?

    如何保证消费的时候是幂等?

    如何保证消息的可靠性传输?

    传输过程出现消息丢失了怎么办?

    如何保证消息的顺序性?

    如何解决消息队列的延时问题?

    如何解决消息队列的过期失效问题?

    消息队列满了以后该怎么处理?

    有几百万消息持续积压几小时,应该怎么解决?

    如果让你写一个消息队列,该如何进行架构设计?

    以 Kafka 为例,可以提出以下的问题:

    描述一下 Kafka 的设计架构?

    Kafka、ActiveMQ、RabbitMQ、RocketMQ 之间都有什么区别?

    Kafka 消费端是否可能出现重复消费问题?

    Kafka 为什么会分区?

    Kafka 如何保证数据一致性?

    Kafka 中 ISR、OSR、AR 是什么?

    Kafka 在什么情况下会出现消息丢失?

    Kafka 消息是采用 Pull 模式,还是 Push 模式?

    Kafka 如何和 ZooKeeper 进行交互?

    Kafka 是如何实现高吞吐率的?

    如果是 RocketMQ,很多问题都是类似的,可以从以下的问题出发进行考察:

    RocketMQ 和 ActiveMQ 有哪些区别?

    为什么 RocketMQ 不会丢失消息?

    RocketMQ 的事务消息都有哪些应用?

    RocketMQ 是怎么保证系统高可用的?

    分布式缓存

    共25道

    缓存雪崩、缓存穿透如何理解?

    如何在业务中避免相关问题?

    如何保证数据库与缓存的一致性?

    如何进行缓存预热?

    缓存集群如何失效?

    一致性哈希有哪些应用?

    缓存如何监控和优化热点 key?

    Redis 有哪些数据结构?

    Redis 和 Memcached 有哪些区别?

    单线程的 Redis 如何实现高性能读写?

    Redis 支持事务吗?

    Redis 的管道如何实现?

    Redis 有哪些失效策略?

    Redis 的主从复制如何实现?

    Redis 的 Sentinel 有哪些应用?

    Redis 集群有哪几种方式?

    Redis 和 memcached 什么区别?

    Redis 的集群模式如何实现?

    Redis 的 key 是如何寻址的?

    Redis 的持久化底层如何实现?

    Redis 过期策略都有哪些?

    缓存与数据库不一致怎么办?

    Redis 常见的性能问题和解决方案?

    使用 Redis 如何实现异步队列?

    Redis 如何实现延时队列?

    总结

    目前就整理这5大模块,后面还会继续完善,赶紧关注起来。

    获取方式

    进入下方公众号,回复“0531”即可获取。

    展开全文
  •  CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和  分区容错性这三个需求。  因此,根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则  和满足AP原则三大类;  CA-单点集群,...

    一、首先介绍下CAP
          RDBMS(mysql/oracle/sqlServer)    ----->    ACID
          NOSQL(redis/mongdb)  ---->   CAP    
                 ACID:A(atomicity)原子性   C(Consistency)一致性
                            I(Isolation)独立性      D(Durability)持久性
                 CAP:  C(Consistency)强一致性   A(Availability) 可用性  
                             P(Partition tolerance)分区容错性
                 CAP的3进2:
                     最多只能同时较好的满足两个。
                     CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和
                        分区容错性这三个需求。
                     因此,根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则
                         和满足AP原则三大类;
            CA-单点集群,满足一致性,可用性的系统,通常在课扩展性上不太强大。
            CP-满足一致性,分区容错性的系统,通常性能不是特别高。
            AP-满足可用性,分区容错性的系统,通常可能对一致性要求低一些。         
              
            CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络
       硬件肯定会出现延迟丢包等问题,所以分区容错性是我们必须要实现的。
       所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。

    二、Eureka 和 Zookeeper区别?
      1.Eureka是遵守AP原则
         Zookeeper是遵守CP原则     
         Zookeeper保证CP原则:
             1.1当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,
      但不能接受服务直接down掉不可用。也就是说,服务注册功能对可用性的要求高于一致性。
      但是zk会出现这一种情况,当master节点因为网络故障与其他节点失去联系时,剩余注册
      功能就会重新进行leader选举看。问题在于,选举leader的时间太长,30~120s,且选举期间
      整个zk集群都是不可用的,这就导致在选举期间注册服务瘫痪。在云部署的环境下,因网络问题
      使得zk集群失去master节点是较大概率会发生的事,虽然服务能够最终恢复,但是漫长的
      选举时间导致的注册长期不可用是不能容忍的。
            1.2Eureka看明白了这一点,因此在设计时就优先保证可用性。Eureka各个节点都是平等
      的,几个节点挂掉不会影响正常节点的工作,剩余节点依然可以提供注册和查询服务。
      而Eureka的客户端在向某个Eureka注册或者如果发现链接失败时,则会自动切换至其他节点,
      只要有一台Eureka还在,就能保证注册服务可用(保证可用),只不过查到的信息可能不是
      最新的(不保证一致性)。除此以外,Eureka还有一种自我保护机制,如果在15分钟内超过85%
      的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,此时会出现
      一下几种情况:
          (1)Eureka不在从注册列表中移除因为长时间没收到心跳而应该过期的服务
          (2)Eureka仍然能够接受新服务的注册和查询请求,但是不会被同步到其他节点上
                   (保证当前节点依然可用)
          (3)当网络稳定时,当前实例新的注册信息会被同步到其他节点中
      因此,Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像zk那样
         是整个注册服务瘫痪。

    展开全文
  • 架构设计相关0.什么是分布式系统,什么是微服务?集群:多机器做同一件事情;分布式系统:一件事情,多系统协同完成;微服务架构:构建分布式系统的一种架构方式,核心思路是:去中心化;......

    架构设计相关

    0. 什么是分布式系统,什么是微服务?

    集群:多机器做同一件事情;

    分布式系统: 一件事情,多系统协同完成;

    微服务架构:构建分布式系统的一种架构方式, 核心思路是:去中心化;

    http://www.cnblogs.com/liuning8023/p/4493156.html

    1. RPC和RPC框架

    RPC是指远程过程调用,实现远程过程调用的方式有很多中,Dubbo,Rmi,Hessian等等;

    RPC的核心过程包括了客户端和服务端的通讯协议,寻址,数据序列化/反序列化;

    对上述过程进行了封装,不需要开发人员自己去定义通讯协议,去实现序列化的细节工作,

    这样的组件称为RPC框架;常见RPC框架有 thrift,gRpc,dubbo,motan

    2. 序列化方式及作用

    序列化:将java对象或者其他内存中的数据,转换为一种特定格式的流,使之可以在网络中传输或者磁盘上存储;

    反序列化:将流以特定的格式转为java对象或者内存中其他形式的数据;# json,jdk serializable, Hessian,Dubbo, Protobuf,

    作用:压缩;持久化存储;跨网络传输;

    3. 分布式系统中事务的处理

    参考:https://wenku.baidu.com/view/be946bec0975f46527d3e104.html

    https://segmentfault.com/a/1190000004468442

    事务相关必了解的概念:

    ACID(Atomic原子性,Consistency一致性,Isolation隔离性,Durability持久性)

    CAP(一致性Consistency,可用性Availability,分区容错性Partitiontolerance),分布式系统来说,P是不能放弃的

    BASE(Basically Available(基本可用),Soft state(软状态),Eventuallyconsistent(最终一致性))

    分布式事务实现方式:

    1.  XA (数据库厂商实现);2. 后台任务定期校对数据;3. 通过消息队列,实现最终一致(确保消息到达MQ,幂等性);4. TCC机制(Try,Confirm,Cancel)

    https://www.cnblogs.com/rainwang/p/7099648.html

    4. 系统监控

    5. 高可用

    6. 服务调用的负载均衡

    7. 分布式配置中心

    8. 服务注册与发现机制

    9. 分布式系统如何拆分?

    展开全文
  • 一、分布式理论: 1. 什么是CAP理论? 2. 什么是BASE理论? 3. 什么是2PC? 4. 什么是3PC? 5. 什么是ZAB协议? 6. 什么是Raft协议? 7. 什么是Paxos算法? 二、Zookeeper: 8. ZooKeeper是什么...
  • hi~大家好,今天分享一下微服务/分布式常见的面试问题,不过这些问题都是针对应届生的,对于比较senior的求职者应该会深入很多。题目都是来自2021大厂真实面经! 没有了解过分布式/微服务的老哥们也不要担心看不懂这...
  • 该课程共49节,包含40节开发与应用...面试题讲解部分共6节内含64道面试题,覆盖面十分广泛,分初级、中级、3个部分讲解,是不可多得的面试资料。附件包括老师的讲课笔记,边讲边记,绝不照搬照念,该课程十分值得学习。
  • 1、从服务发送一个 sync 同步命令给主服务要求全量同步 2、主服务接收到从服务的 sync 同步命令时,会 fork 一个子进程后台执行 bgsave 命令(非阻塞)快照保存,生成 RDB 文件,并将 RDB 文件发送给从服务 3、从...
  • 服务网关 = 路由转发 + 过滤器 路由转发:接收所有外界访问路径,修改或者直接分发到其余服务中 过滤器:在网关服务中进行鉴权、限流以及监控等 为什么微服务一定要有网关? 2.spring-boot-starter-parent 有...
  • 1.什么是 ZooKeeper? 答:ZooKeeper 是一个...分布式服务注册与订阅:在分布式环境中,为了保证高可用性,通常同一个应用或同一个服务的提供方都会部署多份,达到对等服务。而消费者就须要在这些对等的服务器中...
  • 分布式系统的面试题6

    2018-08-03 11:15:00
    1、面试题 dubbo的spi思想是什么? 2、面试官心里分析 继续深入问呗,前面一些基础性的东西问完了,确定你应该都ok了解dubbo的一些基本东西,那么问个稍微难一点点的问题,就是spi,先问问你spi是啥?然后...
  • 销售方式(团购还是普通)等,还有大量的价格促销,这些规则很复杂,容易相互冲突,需要把分散到各个业务的价格逻辑进行统一管理,以基础价格服务的方式透明地提供给上层应用,变成一个内核的服务化架构,即微服务...
  • Java分布式微服务技术专题讲解是一个微服务开发管理工具集,是目前比较热门的Web开发技术。它提供了整套的微服务开发技术解决方案,如在微服务开发时所需的配置管理、服务注册于发现、断路器、智能路由、控制总线、...
  • 分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别...
  • 微服务面试题1.什么是分布式分布式和集群的区别?2.什么是微服务?分布式和微服务的区别? 1.什么是分布式分布式和集群的区别? 分布式:一个业务拆分成多个子业务,子业务分别部署在不同的服务器上。 集群:同...
  • 架构: SpringBoot + Dubbo 主流分布式微服务架构。 场景: 商品首页、商品详情、购物车、订单、支付、库存管理、全文搜索、秒杀、商家管理、大数据用户行为分析 。 特色 : Elasticsearch分布式搜索、分布式事务的...
  • 1.Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串...
  • 本课程通过网关、注册中心、配置中心、服务追踪监控、等微服务核心模块的讲解及案例开发演示,带你步步深入了解微服务整体流程和设计原则,使你可以快速掌握微服务系统核心技术模块的使用,设计出安全稳定同时能够...
  • 分布式微服务治理

    2020-11-23 16:04:38
     http://127.0.0.1:10086/eureka  # 获取服务地址列表间隔时间,默认30秒 registry-fetch-interval-seconds: 10 2、Ribbon负载均衡 3、hystrix服务熔断 Dubbo学习 Dubbo概述 Dubbo是一个分布式服务框架,致力于...
  • ,目前,不管是包含Spark、Flink等分布式计算框架的大数据Hadoop生态圈,还是以SpringCloud为服务治理主体的微服务,还有炒得火热的区块链平台,都是分布式下的智慧结晶,那今天来说说在分布式系统下所能遇到的...
  • 可以说是篇篇经典了,这里面有真实的面经分享,有高频面试点分享,如果能够认认真真读完的话,以后和面试官扯皮再也不怕了 三.容器篇 我知道现在云原生的概念这么火,那么懂容器的概念,会使用 docker ,只是这...
  • 请解释什么是C10K问题或者...如何拆分服务、水平分割、垂直分割 https://mp.weixin.qq.com/s/msinJA9T3TR1uWrYx6M1iQ https://mp.weixin.qq.com/s/4UB4AZe2R0lVCT6f5ExEMw   说说 CAP 定理、BASE 理论 ...
  •  当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。  因此- -般建议堆的最大值设置为可用内存的最大值的80%。在catalina.bat中,设置JAVA _0PTS=’-Xms256m-Xmx5...
  • SpringBoot + Dubbo+ Redis + ES + Nginx + FDFS + ActiveMQ 主流分布式微服务架构。 场景:  商品首页、商品详情、购物车、订单、支付、库存管理、全文搜索、秒杀、商家管理、分布式事务、单点登陆等 。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,900
精华内容 1,960
关键字:

分布式微服务面试题