
面试题-分布式
文章平均质量分 67
面试题-分布式
啥也不懂的派大星
这个作者很懒,什么都没留下…
展开
-
分布式锁实现方案
分布式锁服务之间的共享资源,如何保证线程安全单体,一个jvm,使用synchronized关键字或者lock加锁同步分布式,多个jvm,使用分布式锁分布式锁的实现方案?原创 2021-04-16 09:51:07 · 324 阅读 · 1 评论 -
RabbitMQ的使用场景 RabbitMQ如何保证消息不丢失 消息幂等性 延时队列
SpringhMVC常用的哪些注解及作用@Requestmapping 做请求的URL跟我们controller或者方法的映射关系@RequestParam 做请求参数的匹配,当请求参数名称跟我们方法的参数名不一致的时候,可以做匹配@getMapping 请求方式为GET@PostMapping 请求方式为POST@DeleteMapping 请求方式为DELETE@PutMapping 请求方式为PUT@RequestBody 接收请求中的参数信息,一般来说,接收一个集合或数组,或者以p原创 2021-04-17 23:04:37 · 400 阅读 · 2 评论 -
redis高可用方案
redis 主从这种复杂的部署架构,尽量在测试环境和生产环境,都进行充足的测试和演练。master node 是否宕机了,需要大部分的哨兵都同意才行,涉及到了分布式选举,即。gossip 协议,用于节点间进行高效的数据交换,占用更少的网络带宽和处理时间。集群的高可用,本身也是分布式的,作为一个哨兵集群去运行,互相协同工作。Redis实例像单服务器一样运行,非常容易线性扩展,系统的灵活性很强。通过哈希的方式,将数据分片,每个节点均分存储一定哈希槽。主从的部署架构,是不保证数据零丢失的,只能保证。原创 2023-02-14 15:17:19 · 290 阅读 · 0 评论 -
RabbitMQ常见面试题
RabbitMQ 架构设计 交换器类型 如何确保消息发送接收 事务消息 死信队列 延时队列 持久化机制 保证消息的可靠性传输 普通集群原理 镜像队列原理原创 2023-02-13 16:14:20 · 1362 阅读 · 0 评论 -
redis的基本数据类型?过期策略?淘汰策略?
redis的基本类型及用途String 存用户凭证(分布式会话 )、分布式锁(setnx)、存验证码、存json串,数字(点赞、计数器)List 队列和栈 双向链表 做秒杀抢购、只允许用户登录几台设备Set集合 无序 唯一 只能抢购一件商品 求集合的差集 并集 交集Zset有序集合 可排序 分数 数值,定点提醒,排行榜Hashvalue是键值对,更适合存对象 可以快速定位存储信息且频繁修改的信息 如购物做缓存、排行榜、计数器、社交网站、消息队列等。内存管理策略 回收策略 淘汰策略设置原创 2021-04-17 23:04:49 · 230 阅读 · 0 评论 -
Redis常见题目整理
RDB 和 AOF 机制;Redis的过期键的删除策略;Redis线程模型、单线程快的原因;简述Redis事务实现;redis 主从复制的核心原理;缓存穿透、缓存击穿、缓存雪崩;如何保证数据库与缓存的一致性?布隆过滤器原理,优缺点?原创 2023-02-01 14:45:22 · 267 阅读 · 0 评论 -
服务拆分的原则,为什么要做服务化
业务的边界+共性的基础服务共性的基础服务,如调度任务、日志,短信,邮件等。真实的微服务项目,采用聚合结构,更侧重于服务的功能。原创 2021-04-13 09:21:52 · 184 阅读 · 0 评论 -
SpringBoot自动配置原理?SpringBoot中的Starter?嵌入式服务器?
SpringBoot自动配置原理?SpringBoot中的Starter?嵌入式服务器?原创 2021-04-16 09:53:25 · 309 阅读 · 1 评论 -
zookeeper做注册中心
zookeeper 文件系统+监听机制服务注册:在zookeeper的服务器上创建一个临时有序节点 保存服务地址信息服务发现:就是去获取zookeeper上的节点信息,获取到地址列表信息。这样服务消费者去调用生产者,就可以采取负载均衡算法,去访问其中一个提供者。...原创 2021-04-13 09:19:48 · 157 阅读 · 0 评论 -
分布式事务
分布式事务-解决分布式系统的数据一致性问题单体应用:service层加事务,基于AOP实现,基于数据库本身的事务机制,保证数据的原子性。分布式环境:刚性事务和柔性事务两种处理方式刚性事务,依然保持要么一起成功,要么一起失败;柔性事务,追求的是数据的最终一致性,允许存在中间状态,符合BASE理论,基于MQ的方式来实现。...原创 2021-04-16 09:43:17 · 179 阅读 · 0 评论 -
SpringCloud的基本组件 五大神兽 SpringCloud和dubbo的区别
SpringCloud的基本认识 常用组件及解决的问题SpringCloud是一系列主流框架的集合。是基于springBoot。spring没有重复造轮子,将成熟的技术框架,组合起来封装。springCloud基于springboot的开发便利性,实现了分布式系统基础设施的开发。springCloud5大神兽:服务注册与发现 eureka,负载均衡ribbon feign,断路器 hystrix,网关 zuul,gateway,配置中心 config。还有消息总线,链路监控等。服务网关:为微服务集原创 2021-04-16 09:31:35 · 508 阅读 · 0 评论 -
互联网常见的负载均衡策略
源地址哈希的思想是根据获取客户端的IP地址,通过哈希函数计算得到的一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。最小连接数算法比较灵活和智能,由于后端服务器的配置不尽相同,对于请求的处理有快有慢,它是根据后端服务器当前的连接情况,动态地选取其中当前积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器。与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。连接数和当前的系统负载。原创 2021-04-16 09:52:05 · 699 阅读 · 0 评论 -
限流降级方案
统计线程数是为了保护业务线程数不被耗尽,例如,在zuul网关的场景下,zuul转发用户的请求,如果下游某个服务因为某种原因出现延迟或者响应慢的情况,这时候如果用户请求持续进入,就会出现zuul线程池资源被大量占用,极端情况导致线程资源耗尽出现拒绝服务。慢调用比例:就是针对慢调用请求的比例,在单位时间内,慢调用的请求大于最小请求数,且比例大于阈值,就会触发熔断,在第一个熔断时长后,会开启监测状态,如果服务恢复,熔断器关闭,如果服务未恢复,接着触发一个熔断时长。建议官网查询。原创 2023-02-10 15:30:38 · 689 阅读 · 0 评论 -
什么是Hystrix?简述Hystrix实现机制
HystrixObservableCommand 将所有的外部系统(或者称为依赖)包装起来,整个包装对象是单独运行在一个线程之中(这是典型的命令模式)。降级:编写好调用失败的补救逻辑,然后对服务直接停止运行,这样这些接口就无法正常调用,但又不至于直接报错,只是服务水平下降。打开断路器可以在一段时间内停止对特定服务的所有请求,如果服务的错误百分比通过阈值,手动或自动的关闭断路器。如果它变满了,那么依赖关系的请求将立即被拒绝,而不是排队等待。统计成功,失败(由客户端抛出的异常),超时和线程拒绝。原创 2023-02-10 14:59:57 · 280 阅读 · 0 评论 -
微服务注册中心zookeeper&Eureka
微服务注册中心zookeeper&Eureka首先,大家要明确一点微服务注册中心是一个重要的组件,解决的是服务的注册和发现的问题,而zookeeper,Eureka都只是其中一款落地实现的产品,再比如Nacos也是如此,所以关键是掌握注册中心的工作原理,组件的使用,诸如配置,安装,这些都是常规步骤,没有什么特别的。1,zookeeperzookeeper的核心主要是包含两个部分:服务信息的管理和变更通知机制(watch)服务注册,就是在zookeeper的服务器上创建一个节点,而且是临时节点原创 2021-04-16 09:51:34 · 315 阅读 · 0 评论 -
接口的幂等性的实现
唯一id。每次操作,都根据操作和内容生成唯一的id,在执行之前先判断id是否存在,如果不存在则执行后续操作,并且保存到数据库或者redis等。服务端提供发送token的接口,业务调用接口前先获取token,然后调用业务接口请求时,把token携带过去,务器判断token是否存在redis中,存在表示第一次请求,可以继续执行业务,执行业务完成后,最后需要把redis中的token删除建去重表。将业务中有唯一标识的字段保存到去重表,如果表中存在,则表示已经处理过了版本控制。增加版本号,当版本号符合时原创 2023-02-07 14:45:25 · 185 阅读 · 0 评论 -
服务间通信的方式,RPC、RMI的理解
远程对象必须实现java.rmi.server.UniCastRemoteObject类,这样才能保证客户端访问获得远程对象时,该远程对象将会把自身的一个拷贝以Socket的形式传输给客户端,此时客户端所获得的这个拷贝称为“存根”,而服务器端本身已存在的远程对象则称之为“骨架”。:远程方法调用,java中用于实现RPC的一种机制,RPC的java版本,是J2EE的网络调用机制,跨JVM调用对象的方法,面向对象的思维方式。:在本地调用远程的函数,远程过程调用,可以跨语言实现 httpClient。原创 2021-04-13 09:20:55 · 562 阅读 · 0 评论 -
BASE理论
BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于CAP定理逐步演化而来的。BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。允许存在中间状态,这个中间状态不影响系统的整体可用性。比如读写分离,主库同步到从库会有一定延迟,其实就是一种柔性状态。在最终的状态中,数据是一致的。系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态,不要求实时。,应对更大的并发流量。原创 2021-04-16 09:42:46 · 343 阅读 · 0 评论 -
CAP理论
即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。比如现在的分布式系统中有某一个或者几个机器宕掉了,其他剩下的机器还能够正常运转满足系统需求,对于用户而言并没有什么体验上的影响。:分区容错是必须保证的,当发生网络分区的时候,如果要继续服务,那么强一致性和可用性。容错:是一种目标,就是发生在分区之后,服务的节点还可以对外提供服务。对于客户端来说,一致性指的是并发访问时更新过的数据如何获取的问题。即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致。原创 2021-04-16 09:43:35 · 224 阅读 · 0 评论 -
分布式会话Session
分布式会话如何解决分布式会话问题?原创 2021-04-14 20:47:49 · 265 阅读 · 0 评论 -
Dubbo高频面试题
Dubbo高频面试题1,问:当zookeeper挂了之后,生产者和消费者之间还能通信吗?答:可以。因为当启动dubbo容器时,消费者会去zookeeper拉取注册的生产者地址列表,并将其缓存在本地。每次发起调用时,都会按照本地的地址列表,以负载均衡的策略去进行调用。但是如果zookeeper挂掉了,则后续新的生产者无法被消费者发现。2,问:当监控中心monitor挂了之后,生产者和消费者之间还能通信吗?答:可以。因为监控中心主要是起到一个收集数据的作用,监控中心宕机,只会影响采集数据,不影响生原创 2021-04-14 10:40:17 · 188 阅读 · 0 评论 -
Dubbo架构
Dubbo架构dubbo工作图,使用zk做注册中心。工作流程:dubbo中有个服务容器(Container),dubbo启动时,加载和运行服务提供者,服务提供者启动时将自己能提供的服务信息注册到注册中心里,服务消费者在启动时会从注册中心订阅所需要的服务,注册中心会将消费者需要的服务的地址列表等信息返回给他;服务如果有变更,注册中心会基于长连接的方式将变更异步通知消费者,消费者从而保持实时的服务提供者名单;消费者通过提供者的服务地址列表,通过负载均衡算法来调用提供者,如果调用失败,还可以调用服务列表中原创 2021-04-16 09:31:52 · 86 阅读 · 0 评论