首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2023【美团】面试真题:

项目管理:主要是主导跨团队的项目如何高效的协调好各个团队的工作,使用哪些方法来 保障项目的按时交付。项目遇到困难,作为项目负责人如何应对等等。...它的冲突再达到一定大小时会转化成红黑树,冲突小于一定数量又退回链表。 5、线程池大小如何设置?...为了达到事务的四大特性,数据库定义了 4 种不同的事务隔离级别: READ-UNCOMMITTED(读取未提交):最低的隔离级别,允许脏,也就是可能读取到其他会话中未提交事务修改的数据,可能会导致脏...可重复读的核心就是一致性(consistent read);保证多次读取同一个数据,其值都和事务开始时候的内容是一致,禁止读取到别的事务未提交的数据,会造成幻。...做好主从的部署,当主节点挂掉后,能快速的使用结点顶上。实现熔断限流机制,对系统进行负载能力控制。对于非核心功能的业务,拒绝其请求,只允许核心功能业务访问数据库获取数据

28630

【年度精选】高并发学习笔记

指定一个最大线程数量,并利用一个有限大小的任务队列,当池中线程数量较少时,直接创建新线程去处理任务,当池中线程达到设置的最大线程数量后,可以任务放入任务队列中,等待空闲线程执行。...分离后,库可以用作数据备份,也可用于处理请求,减少单机压力; 注意库数量,库越多,主库需要越多的资源用于数据复制,同时还占用主库网络带宽,一般最多挂3-5个库 主从之间存在延迟,某些场景下库可能读不到最新的数据会导致错误...处理方法: 使用缓存,更新数据后同时更新缓存,的时候直接缓存 写主库后发送可以发送完整数据记录到消息队列,避免后面库操作 需要强一致的请求直接主库 需要对主从延迟进行监控 最好屏蔽分离后导致访问数据库方式的改变...各自系统的变更不会影响到另外一个 使用时注意事项 「避免消息队列数据堆积」 添加对应监控 ❝启动一个监控程序,定时监控消息写入消息队列中,消费端检查消费时与生产时间的时间间隔,达到阈值后发告警 通过消息队列提供的工具对队列内数据量进行监控...) 「关闭->打开」:当调用失败的次数累积到一定的阈值,熔断状态关闭态切换到打开态。

55530
您找到你想要的搜索结果了吗?
是的
没有找到

2021美团Java面试真题解析(含参考答案)

它的冲突再达到一定大小时会转化成红 黑树,冲突小于一定数量又退回链表 5、线程池大小如何设置?...READ-COMMITTED(读取已提交): 只能读取到已经提交的数据。Oracle 等多数数 据库默认都是该级别 (不重复读),可以阻止脏,但是幻或不可重复读仍有可能发生。...10、可重复读解决了哪些问题? 可重复读的核心就是一致性(consistent read);保证多次读取同一个数据,其值都和事务开始时候的内容是一致,禁止读取到别的事务未提交的数据,会造成幻。...做好主从 的部署,当主节点挂掉后,能快速的使用结点顶上。实现熔断限流机制,对系统进行负 载能力控制。对于非核心功能的业务,拒绝其请求,只允许核心功能业务访问数据库获取数据。...slave 服务器,然后 slave 服务器这些命令依次作用于自己本地的数据集上最终达到数据的一致性。

25710

6000多字 | 秒杀系统设计注意点【理论】

遇到大流量,我们应该怎么最大化的保障我们的系统正常运行呢? 降级 所谓“降级”,就是当系统的容量达到一定程度,限制或者关闭系统的某些非核心功能,从而把有限的资源保留给更核心的业务。...缺点就是当客户端比较分散,没法设置合理的限流阈值:如果阈值设的太小,会导致服务端没有达到瓶颈客户端已经被限制;而如果设的太大,则起不到限制的作用。...常见限流算法 计数器(固定窗口)算法 计数器算法是使用计数器周期内累加访问次数,当达到设定的限流值,触发限流策略。下一个周期开始,进行清零,重新计数。...令牌桶算法 令牌桶算法是程序以r(r=时间周期/限流值)的速度向令牌桶中增加令牌,直到令牌桶满,请求到达向令牌桶请求令牌,如获取到令牌则通过请求,否则触发限流策略 拒绝服务 如果限流还不能解决问题,最后一招就是直接拒绝服务了...当系统负载达到一定阈值,例如 CPU 使用达到 90% 或者系统 load 值达到 2*CPU 核数,系统直接拒绝所有请求,这种方式是最暴力但也最有效的系统保护方式。

35321

6000多字 | 秒杀系统设计注意点

遇到大流量,我们应该怎么最大化的保障我们的系统正常运行呢? 降级 所谓“降级”,就是当系统的容量达到一定程度,限制或者关闭系统的某些非核心功能,从而把有限的资源保留给更核心的业务。...缺点就是当客户端比较分散,没法设置合理的限流阈值:如果阈值设的太小,会导致服务端没有达到瓶颈客户端已经被限制;而如果设的太大,则起不到限制的作用。...常见限流算法 计数器(固定窗口)算法 计数器算法是使用计数器周期内累加访问次数,当达到设定的限流值,触发限流策略。下一个周期开始,进行清零,重新计数。...令牌桶算法 令牌桶算法是程序以r(r=时间周期/限流值)的速度向令牌桶中增加令牌,直到令牌桶满,请求到达向令牌桶请求令牌,如获取到令牌则通过请求,否则触发限流策略 拒绝服务 如果限流还不能解决问题,最后一招就是直接拒绝服务了...当系统负载达到一定阈值,例如 CPU 使用达到 90% 或者系统 load 值达到 2*CPU 核数,系统直接拒绝所有请求,这种方式是最暴力但也最有效的系统保护方式。

37910

如何在时间序列预测中检测随机游走和白噪声

相比之下,如果残差是纯白噪声,则您将所选模型的能力最大化。 换句话说,该算法设法捕获了目标的所有重要信号和属性。剩下的是无法归因于任何事物的随机波动和不一致的数据点。...ACF 图中有一些模式,但它们置信区间内。这两个图表明,即使使用默认参数,随机森林也可以训练数据中捕获几乎所有重要信号。 随机游走 时间序列预测中更具挑战性但同样不可预测的分布是随机游走。...那么,当可视化不是一种选择,我们如何检测随机游走? 由于它们的创建方式,时间序列的差分应该隔离每个步骤的随机添加。通过序列滞后 1 并从原始值中减去它来获取一阶差分。...如果斜率显着不同于 0,我们拒绝该系列遵循随机游走的原假设。 幸运的是,您不必担心数学问题,因为该测试已经 Python 中实现了。...由于 0.05 是显着性阈值,我们无法拒绝drifty_walk 是随机游走的零假设,即它是随机游走。 让我们对我们知道不是随机游走的分布进行另一个测试。

1.8K20

经历过“必要,码不亮”后,聊聊运维必须了解的高并发知识

遇到大流量,我们应该怎么最大化的保障我们的系统正常运行呢? 降级 所谓“降级”,就是当系统的容量达到一定程度,限制或者关闭系统的某些非核心功能,从而把有限的资源保留给更核心的业务。...缺点就是当客户端比较分散,没法设置合理的限流阈值:如果阈值设的太小,会导致服务端没有达到瓶颈客户端已经被限制;而如果设的太大,则起不到限制的作用。...常见限流算法 计数器(固定窗口)算法 计数器算法是使用计数器周期内累加访问次数,当达到设定的限流值,触发限流策略。下一个周期开始,进行清零,重新计数。...令牌桶算法 令牌桶算法是程序以r(r=时间周期/限流值)的速度向令牌桶中增加令牌,直到令牌桶满,请求到达向令牌桶请求令牌,如获取到令牌则通过请求,否则触发限流策略 拒绝服务 如果限流还不能解决问题,最后一招就是直接拒绝服务了...当系统负载达到一定阈值,例如 CPU 使用达到 90% 或者系统 load 值达到 2*CPU 核数,系统直接拒绝所有请求,这种方式是最暴力但也最有效的系统保护方式。

35320

对号入座,快看看你的应用系统用了哪些高并发技术?

百舸流量运营平台承接着京东金融APP核心资源位和京东APP部分重要资源位,大促单接口QPS达到10w+,压测单接口到20w+,典型的c端链路高并发场景。...熔断也是保护系统的一种手段,分布式系统中系统之间通过微服务调用,偶尔会出现依赖的某个服务不可用或者耗时骤增,导致耗尽业务线程池,从而拖垮整个服务,可通过sentinel配置慢调用比例或者异常比例策略,达到熔断阈值后...5、池化技术 池化技术思想:池化思想的解决的核心思想是通过预先创建数据库连接或者线程放入池中,以便在需要可以重复使用,减少创建和销毁的开销,提高系统的性能和并发。...最大元空间大小,MetaspaceSize表示Metaspace首次使用不足触发Full GC(全面垃圾回收)的阈值,垃圾回收机制使用G1回收器,MaxGCPauseMillisjvm垃圾回收过程中允许停顿的最大毫秒时间...10、数据异构 业务数据通常存储支持事务的关系型数据库中,当在面对复杂查询场景捉襟见肘,可将数据通过binlog异构到ES中,ES支持复杂场景的查询并且有较高的性能,轻松突破数据库单表数据量大及多表关联查询瓶颈

6410

Sentinel流量控制

流控模式 4.1 流控模式说明 5、流控效果(只适用于QPS限流): 1、Sentinel微服务限流 Sentinel流量控制(flow control)的原理是监控应用流量的QPS或并发线程数等指标,当达到指定的阈值对流量进行控制...比如对数据库同一个字段的操作和写操作存在争抢,的速度过高会影响写得速度,写的速度过高会影响的速度。如果放任读写操作争抢资源,则争抢本身带来的开销会降低整体的吞吐量。...可使用关联限流来避免具有关联关系的资源之间过度的争抢,举例来说,read_db 和 write_db 这两个资源分别代表数据库读写,我们可以给 read_db 设置限流规则来达到写优先的目的:设置 strategy...这样当写库操作过于频繁,读数据的请求会被限流。...系统长期处于低水位的情况下,当流量突然增加,直接把系统拉升到高水位可能瞬间把系统压垮。通过冷启动让通过的流量缓慢增加,一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮。

58230

golang 微服务中的断路器 hystrix

hystrix-go go 中有一个项目实现了 这个断路器的功能: https://github.com/afex/hystrix-go Hystrix 能够服务提供者出现故障,隔离调用者和提供者...,这个 命令是 hystrix 唯一识别的 hystrix 根据 对应的指令获取到对应的断路器,判断断路器是否打开 执行池请求通行证 执行执行失败回滚逻辑,不直接执行远程调用逻辑,因此此时服务已经熔断了...若打开 若关闭或者是半开状态 hystrix 中我们可以配置多个参数,最大并发数量,超时时间,最小请求阈值,超时窗口时间 和 错误比例阈值等等 图中我们可以看到 Metrics 控制器, 当我们的服务执行异常或者下游服务超时的时候...,失败次数,超时次数 和 被拒绝的次数,下一篇的案例代码中,有体现如何配置 这个被拒绝的次怎么理解呢?...指的是向执行池子请求通行证的时候,池子已满,故被拒绝 如果这段时间内,执行错误的频率出超过了断路器错误率的阈值,那么断路器就会打开 重试超时定时器到达之前的请求都会直接进入失败回滚逻辑,拒绝执行真正的远程调用

15630

SCN、ORA-19706错误和_external_scn_rejection_threshold_hours参数

这个值是一个限制,避免数据库的SCN无限制地增大,甚至达到了SCN的最大值。这个值大约是这样一个公式计算出来的:(当前时间-1988年1月1日)*24*3600*SCN每秒最大可能增长速率。...这里显然有一个阈值,如果递增SCN使得Headroom过小到什么值,就会拒绝递增(同步)SCN?...解决的办法_external_scn_rejection_threshold_hours这个隐含参数设置为较小的值,推荐的值是24,即1天。..._external_scn_rejection_threshold_hours这个参数名的字面意思结合它的作用,可以说这个参数就是”拒绝外部SCN“的阈值。...2、11.2.0.2及之后的版本,原来的32K SCN最大速率调整回了16K速率。

1.1K30

如何设计一个秒杀系统

设计秒杀前,我们需要先理解秒杀,秒杀其实主要就是解决两个问题:并发和并发写。...那如何避免单点呢? 我认为关键点是避免服务的状态和机器绑定,即把服务无状态化,这样服务就可以机器中随意移动。 如何那把服务的状态和机器解耦呢?...缺点就是当客户端比较分散,没法设置合理的限流阈值:如果阈值设的太小,会导致服务端没有达到瓶颈客户端已经被限制;而如果设的太大,则起不到限制的作用。...例如我们的系统最高支持 1w QPS ,可以设置 8000 来进行限流保护。 拒绝服务 如果限流还不能解决问题,最后一招就是直接拒绝服务了。...当系统负载达到一定阈值,例如 CPU 使用达到 90% 或者系统 load 值达到 2*CPU 核数,系统直接拒绝所有请求,这种方式是最暴力但也最有效的系统保护方式。

74321

基于redis实现分布式服务限流器

基于redis的分布式服务限流器 本文基于redis来设计一个分布式场景下的令牌桶算法,旨在重点解决以下问题: 并发请求如何处理? 何时进行加锁?何时不需要加锁? 如何提高准确性和稳定性?...如何解决边界问题? 如何提升程序效率? 使用redis的incr命令进行加1操作,由于redis天然是单线程的,因此加1操作是不需要进行加锁的。...并发的情况下,假设我们的服务限制访问速率为5000次/分,某一刻t请求数量已经达到了4999次,此时突然并发来了10个请求,按照上面设计的流程,这10个请求首先读取redis中对应键k的数值v,同时读取到了...(但是不影响业务);第二种方式达到阈值后需要加锁,代码较为复杂。...重置计数器 初始化redis计数器,我们使用了SET...EX方式设置了过期时间,但是实际中可能出现key过期后却没有自动删除的现象,于是这里加上了手动删除过期key的监控,采用redis的ttl

1.8K30

有自信了,再战阿里!

提交,指一个事务提交之后,它做的变更才能被其他事务看到,可能发生不可重复读和幻现象,但是不可能发生脏现象; 可重复读,指一个事务执行过程中看到的数据,一直跟这个事务启动看到的数据是一致的,MySQL...(“拉链法”解决冲突),JDK1.8 以后解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)链表转化为红黑树,以减少搜索时间 LinkedHashMap:LinkedHashMap...CachedThreadPool:可以称作可缓存线程池,它的特点在于线程数是几乎可以无限增加的(实际最大可以达到 Integer.MAX_VALUE,为 2^31-1,这个数非常大,所以基本不可能达到)...可以通过实现DisposableBean接口或者配置文件中指定销毁方法。 Spring如何解决循环依赖?...上图是blocking I/O发起system call recvfrom(),进程一直阻塞等待另一端Socket的数据到来。

18210

大厂面试系列一些内容的解答

年龄达到一定值(年龄阈值,可以通过-XX:MaxTenuringThreshold来设置)的对象会被移动到年老代中,没有达到阈值的对象会被复制到“To”区域。...一般来说系统的吞吐量是可以被测算的,为了保证系统的稳定运行,一旦达到的需要限制的阈值,就需要限制流量并采取一些措施以完成限制流量的目的。比如:延迟处理,拒绝处理,或者部分拒绝处理等等。...(5)B+树:B树的基础上,非叶节点改造为不存储数据纯索引节点,进一步降低了树的高度;此外叶节点使用指针连接成链表,范围查询更加高效。 脏和幻是什么?...(Redis集群解决了该情况) Zookeeper锁是如何实现的?...当客户端A使用完锁,删除01节点,客户端B获取到01删除的监听,然后发现自己的02节点排名第一,那么就获取到锁。

42020

Python金融时间序列模型ARIMA 和GARCH 股票市场预测应用|附代码数据

这篇文章讨论了自回归综合移动平均模型 (ARIMA) 和自回归条件异方差模型 (GARCH) 及其股票市场预测中的应用 ( 点击文末“阅读原文”获取完整代码数据******** )。...因此,ARIMA和GARCH结合起来,预计模拟股票价格比单独一个模型更适合。在这篇文章中,我们将把它们应用于标普500指数的价格。...ADF p 值为 0,拒绝单位根的原假设。...一种解决方案是使用每周或每月图表。在这里,我们最大滞后时间限制为 5 天,并使用 AIC 选择最佳模型。...一些系数统计上不显着。 最后但并非最不重要的是,预测区间±4%下降到±3%,然后又反弹到±5%,这清楚地表明了模型的波动性集群。请注意,这里是单步滚动预测,应该比静态的多期预测要好。

45800

大白话分析常见限流算法及实战| 技术创作特训营第一期

三、接口限流算法1.计数器这种是最简单的限流算法,利用的是限定请求次数,每个用户建立一个计数器,第一次请求的时候开始计数,当达到限定次数,就把改用户放入数据库或者缓存中,一定时间内不允许调用,时间到期之后...图片3.滑动窗口计数器滑动窗口限流解决固定窗口临界值的问题,对固定窗口的一种改造,窗口。...优点:解决了固定窗口算法的临界值问题,避免了固定窗口算法切换窗口请求总量可能为阈值两倍的问题。...而每次请求进入时,必须令牌桶中获取一个令牌,如果没有获取到令牌则被限流拒绝,这样保证了接口可以匀速处理请求。...,"123"); Integer current = cacheData.getIfPresent(key); // 3.再一次模拟突然大量请求,由于之前缓存结束,只能再次达到阈值拒绝

619120

高并发场景下如何保证系统稳定性

遇见以上特征带来的技术难题,要如何保证系统正常运行呢?...通过控制 QPS 的方式,把后端服务无法承受的部分流量拒绝掉,只将能够稳定处理的流量放入进来,避免后端服务被瞬时的流量高峰冲垮,南北向设置阈值,保障大后方的稳定性。...问题:当短时间内有大量请求,速率无法动态调整。即使服务器负载不高,新请求也得队列中等待一段时间才能被响应,无法固定时间内承诺响应,容易出现请求“饥饿”现象。 那这种问题又该如何解决呢?...秒杀场景下,系统增加了一个秒杀子系统,专门为大促活动,商品秒杀使用,先来看下架构图。 最北向进来的流量会首先经过云原生网关,到达商城主页。...请求前面提到,可以客户层进行缓存,也可以 CDN层进行缓存,但更重要的是需要在数据库前也进行一次缓存,使得请求不会直接到达系统最薄弱的环节——数据库,形成一个“冲突缓存带”。

1.2K40

流量控制还能这么搞。。。

再以我家里的带宽为例,是联通100m的,也就是说,每一秒钟,联通提供最大100m bits的数据传输量。那么联通是如何限制这个上限的呢?...以图一为例,时间片为60s,时间片内的第一秒内,处理请求量就达到了上限,那么在后面的59s内,所有的请求都将被拒绝 时间片切换时刻,可能会产生两倍于上限的请求。...当请求的时间大于当前窗口的最大时间,则将计时窗口向前平移一个小窗口。平移时,第一个小窗口的数据丢弃,然后第二个小窗口设置为第一个小窗口,同时最后面新增一个小窗口,新的请求放在新增的小窗口中。...那么溢出的水滴请求都是拒绝访问的,或者直接调用服务降级方法。前提是同一刻。 但是对于很多场景来说,除了要求能够限制数据的平均传输速率外,还要求允许某种程度的突发传输。...漏桶 原理 请求来了之后会首先进到漏斗里,然后漏斗以恒定的速率请求流出进行处理,从而起到平滑流量的作用。当请求的流量过大,漏斗达到最大容量时会溢出,此时请求被丢弃。

56120

熔断、隔离、重试、降级、超时、限流,高可用架构流量治理核心策略全掌握

本文介绍一下流量治理是如何维持这种“三高”系统的健康,保障数据流动的均衡与效率,就如同营养顾问维持人类健康饮食中所起的作用一般。...熔断器会对成功执行的调用进行计数,达到配置的阈值后会认为目标服务恢复正常,此时熔断器回到“关闭”状态; 如果有请求出现失败的情况,则回到“打开”状态,并重新启动超时计时器,再给系统一段时间来故障中恢复...3.2.2 读写隔离 读写隔离通常是指操作和写操作分离到不同的服务或实例中处理 大部分的系统里读写操作都是不均衡的,写数据可能远远少于读数据; 读写隔离得以让服务和写服务独立扩展。...服务 负责处理所有的操作,例如查询和检索数据; 可以有独立的数据库或数据存储,也可以使用缓存来提高查询的性能。...服务端限流实现的两个关键点: 1、如何判断系统是否过载 常用的判断依据包括: 资源使用率; 请求成功率; 响应时间; 请求排队时间, 2、过载如何选择要丢弃的请求 常用的判断依据包括: 按照主调方(客户端

1K24
领券