今日学习:负载均衡|分布式ID

负载均衡的实现算法 阅读详情
业务量突然提升100倍QPS怎么应对?

我们应当早已从项目各个部分做好了充分预案,即使提升100倍也不会冲破系统弹性计算能力,保证系统平稳安全运行。具体优化措施:

  • CDN加速
  • Nginx服务器保障和优化
  • 业务运算动静分离
  • 动态部分低更新就采用页面静态化(Nginx缓存)
  • Gateway网关微服务化配置
  • 动态部分高更新就采用动态扩缩容

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

应对高并发的本质

高并发就是应用服务器线程资源不够用了,导致请求响应变慢,甚至阻塞。那我们需要做的就是提升系统响应时间,增加线程资源。

提升响应时间可以从Redis缓存,页面缓存,本地缓存,线程复用,业务逻辑优化,减少IO,减少上下文切换开销,减少服务调用延迟,CDN加速等几个方面延伸。

总的来说就是从QPS高的请求的调用链路去分析

增加线程资源可以从系统硬件配置,线程池设置,提升实例数量等。

让你设置一个订单号生成服务,怎么做?

订单号的性质:

  • 全局唯一
  • 速度快
  • 不溢出
  • 表意性

其实也是分布式ID生成方案的变种,下列是一些参考

参考笔记

8 分布式Id生成方案

8.1 UUID

8.1.1 概念

UUID(Universally Unique Identifier)是一种标准的标识符格式,用于为信息分配唯一的标识符。UUID通常由32个16进制数字构成,分为五个连字符分隔的部分,例如:550e8400-e29b-41d4-a716-446655440000。

8.1.2 UUID的生成算法

  1. 基于时间的UUID:版本1的UUID主要依赖当前的时间戳及机器的MAC地址来生成。时间值占60位,表示从UTC 1582年10月15日以来的100纳秒间隔计数。时钟序列和节点值分别占14位和48位,用于确保在同一时刻生成的UUID也是唯一的。
  2. 基于随机数的UUID:版本4的UUID完全基于随机数或伪随机数生成。这种生成方式简单且高效,但需要使用高质量的随机数生成器以确保唯一性。
  3. 基于名称空间的UUID:版本3和版本5的UUID是基于名称空间和名称的散列值生成的。版本3使用MD5散列算法,而版本5使用SHA-1散列算法。这些UUID在不同的命名空间和名称下是唯一的。

8.1.3 优点

  1. 唯一性:
    • UUID基于时间和机器MAC地址(对于版本1的UUID)或其他因素(如随机数或散列值,对于其他版本的UUID)生成,几乎可以保证全球唯一。
  2. 简单易用:
    • UUID的生成过程相对简单,不需要复杂的配置或额外的组件支持。大多数编程语言都提供了内置的库来生成UUID。
  3. 本地生成:
    • UUID可以在本地生成,无需通过网络请求或依赖外部服务,因此没有网络消耗,且生成速度快。

8.1.4 缺点

  1. 长度过长:
    • UUID通常由36个字符组成(包括4个连字符),长度较长,不适合作为数据库主键或需要短ID的应用场景。
  2. 无序性:
    • UUID是无序的字符串,不具备趋势自增特性,这在某些需要有序ID的场景下可能是一个问题。
  3. 查询效率低:
    • 由于UUID的无序性和长度,其在数据库中的查询效率相对较低,尤其是在大量数据的情况下。
  4. 信息泄露风险:
    • 基于MAC地址生成的UUID可能会暴露生成该UUID的机器的MAC地址,从而引发信息泄露的风险。
  5. 存储成本高:
    • 由于UUID的长度较长,其存储成本相对较高,尤其是在需要存储大量UUID的系统中。

综上所述,UUID作为分布式ID生成方案,在唯一性、简单易用和本地生成方面具有显著优势,但也存在长度过长、无序性、查询效率低、信息泄露风险和存储成本高等缺点。在选择是否使用UUID作为分布式ID生成方案时,需要根据实际需求和场景进行权衡。

8.2 数据库自增序列

8.2.1 单机模式

8.2.1.1 优点
  • 实现简单,依靠数据库即可,成本小。
  • ID数字化,单调自增,满足数据库存储和查询性能。
  • 具有一定的业务可读性。(结合业务代码)
8.2.1.2 缺点
  • 强依赖DB,存在单点问题,如果数据库宕机,则业务不可用。
  • DB生成ID性能有限,单点数据库压力大,无法扛高并发场景。
  • 信息安全问题,比如暴露订单量,url查询改一下id查到别人的订单
  • 分布式下生成的id会重复

8.2.2 集群模式(数据库高可用背景下)

8.2.2.1 方案描述

具体操作方案是:多主模式做负载均衡,基于序列的起始值和步长设置,不同的初始值,相同的步长,步长大于等于节点数。例如:

初始值步长一步两步三步……
134710……
235811……
336912……
8.2.2.2 优点
  • 解决了ID生成的单点问题,同时平衡了负载。
  • 解决了分布式环境下id重复问题。
8.2.2.3 缺点
  • 系统扩容困难:系统定义好步长之后,增加机器之后调整步长困难。
  • 主从同步延迟:向master写入数据后,再select查询有可能因为同步延迟导致查询不到

8.3 基于Redis、MongoDB、ZooKeeper等中间件生成

8.3.1 一、Redis

  1. 优点
    • 高性能:Redis作为内存数据库,读写速度非常快,能够提供高效的ID生成服务。
    • 唯一性保证:Redis支持原子操作如INCR,可以确保ID的唯一性和顺序递增。
    • 灵活性:可以根据业务需求自定义ID生成规则,如引入时间、随机数等元素。
    • 持久化:支持持久化选项,可以保证生成的ID在Redis重启后不丢失。
  2. 缺点
    • 依赖组件:如果系统中没有Redis,需要额外引入并配置该组件,增加了系统复杂度。
    • 编码配置量大:实现过程中需要编写较多的代码并进行相应的配置。
    • 单节点性能瓶颈:虽然Redis本身是分布式系统,但单节点的性能可能成为瓶颈,需要考虑使用Redis集群来提高吞吐量。

8.3.2 二、MongoDB

  1. 优点
    • ObjectId生成机制:MongoDB自带的ObjectId生成机制简单易用,且能保证全局唯一性。
    • 趋势递增:ObjectId中的时间戳部分使得ID具有趋势递增的特性。
    • 无需额外组件:对于已经使用MongoDB的系统来说,无需额外引入组件即可实现分布式ID生成。
  2. 缺点
    • 长度较长:ObjectId的长度较长,可能不适合对ID长度有严格要求的场景。
    • 无序性问题:在某些特定场景下,可能需要对ObjectId进行转换或处理以满足有序性要求。

8.3.3 三、ZooKeeper(ZK)

  1. 优点
    • 高可用性:ZooKeeper作为一个分布式协调服务,具有高可用性和稳定性。
    • 临时节点特性:利用ZooKeeper的临时节点特性,可以实现分布式ID的生成和管理。
    • 灵活的ID生成策略:可以根据业务需求自定义ID生成策略,如引入时间、机器标识等信息。
  2. 缺点
    • 依赖组件:与Redis类似,如果系统中没有ZooKeeper,需要额外引入并配置该组件。
    • 性能问题:在高并发场景下,ZooKeeper的性能可能成为瓶颈,需要考虑优化策略。
    • 实现复杂:相比其他中间件,ZooKeeper的ID生成实现可能更为复杂,需要编写更多的代码和配置。

综上所述,基于Redis、MongoDB、ZooKeeper等中间件生成分布式ID的方案各有优劣。在选择具体方案时,需要根据实际业务需求、系统架构以及团队技术栈等因素进行综合考虑。

8.4 雪花算法

雪花算法(Snowflake)是一种分布式ID生成算法,其生成机制和优缺点具体如下:

8.4.1 生成机制

  1. 基本结构:雪花算法生成的ID是一个64位的long型数值,主要分为四个部分。
    • 1位符号位:始终为0,因为生成的ID是正数。
    • 41位时间戳:记录当前时间与某个固定时间的差值(通常是系统开始运行的时间),以毫秒为单位。这41位可以表示约69年的时间范围。
    • 10位机器标识:包括5位数据中心ID和5位机器ID,用于区分不同的节点。最多可以部署在1024个节点上。
    • 12位序列号:用于确保在同一毫秒内生成的ID是唯一的。每毫秒可生成4096个不重复的ID。
  2. 生成过程:在生成ID时,首先获取当前的时间戳。如果当前时间戳与上次生成ID的时间戳相同,则序列号加1;否则,序列号置为0,并更新时间戳。最后,将时间戳、机器标识和序列号组合成64位的长整型值,形成一个唯一的ID。

8.4.2 优点

  1. 高并发性能:在高并发环境下,每秒可生成百万级别的不重复ID。
  2. 唯一性保证:通过结合时间戳、机器ID和序列号,可以确保生成的ID在分布式系统中的唯一性。
  3. 趋势递增:基于时间戳生成ID,可以保证ID的基本有序递增,满足某些业务场景的需求。
  4. 灵活性:可以根据需要自定义ID结构,如调整时间戳、机器标识和序列号的位数。

8.4.3 缺点

  1. 依赖服务器时间:生成的ID依赖于服务器的时钟,如果服务器时钟回拨或不同机器之间的时钟不同步,可能会导致生成重复的ID。
  2. 有限的并发性:虽然雪花算法支持高并发,但在极端情况下仍可能出现并发问题。

综上所述,雪花算法是一种高效、可靠的分布式ID生成算法,适用于大规模分布式系统。然而,由于其依赖服务器时间的特性,需要在实际应用中注意时钟同步和回拨问题。

4 负载均衡算法、类型

4.1 算法

4.1.1 轮询法

将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。

4.1.2 随机法

通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。由概率统计理论可以得知,随着客户端调用服务端的次数增多,其实际效果越来越接近于平均分配调用量到后端的每一台服务器,也就是轮询的结果。

4.1.3 源地址哈希法

源地址哈希的思想是根据获取客户端的IP地址,通过哈希函数计算得到的一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。

4.1.4 加权轮询法

不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。

4.1.5 加权随机法

与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是,它是按照权重随机请求后端服务器,而非顺序。

4.1.6 最小连接数法

最小连接数算法比较灵活和智能,由于后端服务器的配置不尽相同,对于请求的处理有快有慢,它是根据后端服务器当前的连接情况,动态地选取其中当前积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器。

4.2 类型

1、DNS 方式实现负载均衡

2、硬件负载均衡:F5 和 A10

3、软件负载均衡:Nginx 、 HAproxy 、 LVS

4.3 产品落地

  • Nginx :七层负载均衡,支持 HTTP、E-mail 协议,同时也支持 4 层负载均衡;
  • HAproxy :支持七层规则的,性能也很不错。OpenStack 默认使用的负载均衡软件就是HAproxy;
  • LVS :运行在内核态,性能是软件负载均衡中最高的,严格来说工作在三层,所以更通用一些,适用各种应用服务。
构建LLM API限流处理系统:从令牌桶算法到智能负载均衡 在分布式系统与API集成开发中,限流(Rate Limiting)是保障服务稳定性的核心技术之一。其核心原理是通过控制请求速率,防止系统过载或被第三方服务拒绝。常见的实现方式包括令牌桶算法和漏桶算法,它们能有效平滑流量峰值,避免触发服务端的429错误。从技术价值看,一套健壮的限流与容错机制不仅能提升应用可用性,还能优化资源利用率,尤其在成本敏感的场景中至关重要。在实际应用场景中,当开发者整合多个外部API服务(尤其是带有免费额度的LLM API)时,常面临不同服务商的差异化限流策略,如每分钟请求数(RPM) 阅读详情

相关推荐

STM32 伺服电机 指令脉冲+方向位置控制模式 主从定时器 实现PWM脉冲数精确控制

实验室有个项目涉及到多个步进电机以及伺服电机的控制,需要电机得到一个触发信号后精确移动一段距离。 下面以单个伺服电机控制为例,利用伺服电机的指令脉冲加方向位置控制模式实现jing'que ...

phcdd的博客 2万+

6种负载均衡算法

1、轮询法 将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。 2、随机法 通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。由概率统计理论可以得知,随着客户端调用服务端的次数增多,其实际效果越来越接近于平均分配调用量到后端的每一台服务器,也就是轮询的结果。 3、源地址哈希法 源地址哈希的思想是根据获取客户端的IP地址,通过哈希函数计算得到的一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要

追求大牛之人的博客 6435

PyCharm配置及使用Git教程

平时习惯在Windows下开发,但是我们又需要实时将远方仓库的代码clone到本地,也需要将自己修改的代码push到远端服务器。

酒酿小圆子呀~ 4万+

详谈几种常用负载均衡

详谈几种常用负载均衡什么是负载均衡负载均衡分类二层负载均衡三层负载均衡四层负载均衡七层负载均衡常用负载均衡工具1. LVS2.Nginx3. HAProxy 什么是负载均衡 在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但随着业务量越来越大,无论性能还是稳定性上都有了更大的挑战。这时候我们就会想到通过扩容的方式来提供更好的服务。我们一般会把多台机器组成一个集群对外提供服务。然而,我们的网站对外提供的访问入口都是一个的,比如www.taobao.com。那么当用户在浏览器输入www.taobao.

todd_qwe的博客 566

FMEA-MSR步骤三:功能分析

目的 FMEA-MSR功能分析的主要目标: ● 功能及各功能之间的关系的可视化 ● 功能树/网络或等效功能矩阵参数图(P图) ● 顾客(外部和内部)功能与相关要求的关联 ● 要求或特性与功能的关联 ● 工程团队(系统、安全和组件)之间的协作 ● 失效分析步骤的基础 (点击链接进入官网领取软件试用) 在监视及系统响应的补充FMEA中,对失效探测和失效响应的监视视为其具有的功能。硬件和软件功能可能包括监视控制状态的功能。 故障/失效的监视和探测功能可能包括超出范围的探测、循环冗余校验、真实性检查和序列计数器检查

Infomass的博客 2391

【skill】漫剧 AI 视频创作的知识库 + API 调用手册

方案适用场景在对话中使用,自动触发注入到任何 LLM(Cursor/Windsurf/Claude API)Python 模块集成到自动化管线/批量生成GitHub 又限速了,不过前几轮搜到的已经够用了。根据搜索结果,结合已分析过的项目,给你整理完整对比 🐮。

突围 992

四款负载均衡工具Nginx、HAProxy、MetalLB、gobetween 比较

在选择负载均衡工具时,需要根据具体的业务需求、技术栈和预期的负载情况来决定。例如,对于需要处理大量HTTP/HTTPS流量的Web应用,Nginx可能是更合适的选择;而对于需要复杂负载均衡策略和高并发处理能力的场景,HAProxy可能更胜一筹;在Kubernetes环境下,MetalLB提供了一种有效的解决方案;而对于现代化的微服务架构,gobetween提供了灵活的配置和强大的功能。

威哥爱编程,华为 HDE,鸿蒙极客、优快云博客专家、《鸿蒙 HarmonyOS 5/6 开发之路》系列图书第一作者 2281

面向 ABAP 开发者的 Joule 实战:把 AI 带进 Eclipse 的每一次敲键

本文介绍了SAP推出的ABAP开发AI工具套件Joule for developers,重点解析了其代码补全、自然语言对话、代码解释、测试生成等功能如何融入ABAP Cloud开发全流程。文章提供了具体的使用场景和操作示例,包括RAP应用开发中的建模辅助、代码理解、测试生成等环节,并分享了实用的提示词模板。同时强调了启用授权等实施细节,帮助开发者将AI能力转化为实际生产力而非演示效果。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 461

Linux系统——Haproxy高性能负载均衡软件

Haproxy介绍、安装Haproxy(yum安装、第三方rpm包安装、编译安装要解决lua环境)、配置文件详解(状态页、日志、指定进程线程、cpu亲缘性、多进程和多线程等)、Proxies配置(defaults、listen、check、frontend、backend)、实际操作

一坨小橙子的博客 2832

网络安全 | 企业网络安全的十大挑战及解决方案

网络安全 | 企业网络安全的十大挑战及解决方案,随着信息技术的飞速发展,企业数字化转型进程不断加速,网络安全问题日益成为企业运营与发展面临的关键挑战。本文深入剖析企业网络安全的十大挑战,包括网络攻击日益复杂、数据泄露风险、内部威胁、物联网安全、云安全、合规性要求、移动办公安全、供应链安全、人才短缺以及安全预算有限等,并针对每个挑战详细阐述相应的解决方案,旨在为企业构建全面、有效的网络安全体系提供指导与参考,助力企业在复杂多变的网络环境中保障自身信息资产安全,实现可持续发展。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4万+

“反激电源”是AC/DC隔离电源还是DC/DC隔离电源?

所以在一些场景,我们的输入电压是一个DC,但是我们仍然需要隔离电源的需求,我们就会只采用图9.2的右半部分。在这个场景下“反激电源”是DC/DC。所以此AC/DC的本质是将AC变成高压的DC之后,用带隔离变压器的反激式开关电源产生一个隔离的、稳定的直流电压。一般在讲述各种电源的拓扑的文章和书籍都是在讲述AC/DC的电源拓扑分类的时候,讲述Flyback。反激式开关电源是指使用反激高频变压器隔离输入输出回路的开关电源,反激式隔离变压器开关电源重点表述的是开关电源包含变压器的拓扑结构。

qq_43416206的博客 1298

Java最新今日话题:分布式 ID 生成器 ~ ~,不可多得的干货

Redis,常用作于的一种技术,并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。// 相同的时间戳序列号+1// 重新绕了一圈。

2401_84584854的博客 743

一个中科大差生的8年程序员工作总结

今年终于从大菊花厂离职了,离职前收入大概60w不到吧,在某乎属于比较差的,今天终于有空写一下自己的职场故事,也算是给自己近8年的程序员工作做个总结复盘。近8年有些事情做对了,也有更多事情做错了,在这里记录一下,希望能够给后人一些帮助吧,也欢迎私信交流。文笔不好,见谅,有些细节记不清了,如果有出入,就当是我编的这个故事吧。 PS:有几个问题先在这里解释一下,评论就不一一回复了 1、关于差生,我本人在科大时确实成绩偏下,差生主要讲这一点,没其他意思。 2、因为买房是我人生中的大事,我认为需要记录和总结一下

陈小房的自我修炼 5万+

分布式调度系统的任务分配算法:负载均衡与亲和性约束

调度系统的核心在于把正确的人分配到正确的任务。硬约束保证了"能做"(安全性),软约束和负载均衡保证了"做好"(效率和质量)。负载均衡不是简单的"平均分配",而是"条件匹配 + 多目标优化的综合结果"。在这个框架上,可以叠加更多优化维度——路线连续性、团队协作、紧急响应等。好的调度算法,是能让系统"削峰填谷"的同时,让每个工人和订单都得到合理对待。

cannonjinx的博客 5040

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

分布式集群到底是什么?数据库场景下的架构选型指南

拆解分布式、集群、分布式集群三个概念的区别与联系,结合数据库场景讲清楚分片策略、一致性、负载均衡、故障转移等关键技术点,附架构对比表和避坑清单。

「一个在数据库赛道上边学边分享的学妹」——聚焦国产数据库/信创方向、分享学习笔记、踩坑经验和行业观察。 566

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

一分钟了解负载均衡的一切

什么是负载均衡 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。 常见的负载均衡方案 常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每一个下游都有多个上游调用,只需要做到,每一个上游都均匀访问每一个下游,就能实现“将请求...

HelloWorld搬运工 634

今日头条Go建千亿级微服务的实践

今日头条使用 Go 语言构建了大规模的微服务架构,本文结合 Go 语言特性着重讲解了并发,超时控制,性能等在构建微服务中的实践 编者按:本文来自微信公众号“InfoQ”(ID:infoqchina),作者项超;36氪经授权发布。 今日头条当前后端服务超过80%的流量是跑在 Go 构建的服务上。微服务数量超过100个,高峰 QPS 超过700万,日处理请求量超过3000亿,是业内最大规模的

火烧云 397

今日头条java后端面试,薪资翻倍

正式介绍 ZooKeeper 之前,我们先来看看 ZooKeeper 的由来,还挺有意思的。下面这段内容摘自《从 Paxos 到 ZooKeeper 》第四章第一节,推荐大家阅读一下:ZooKeeper 最早起源于雅虎研究院的一个研究小组。在当时,研究人员发现,在雅虎内部很多大型系统基本都需要依赖一个类似的系统来进行分布式协调,但是这些系统往往都存在分布式单点问题。所以,雅虎的开发人员就试图开发一个通用的无单点问题的分布式协调框架,以便让开发人员将精力集中在处理业务逻辑上。

m0_61041374的博客 340

三年工作经验——Java后端社招面试经历(有赞、网易、华为等)

今年互联网形式依旧严峻,再次爆发几次大规模裁员潮。我决定把这篇文章分享出来帮助那些对前途感到迷茫的朋友。根据粉丝投稿的真实经历改编 在现在这个浮躁而又拜金的社会,我相信很多人做技术并非出于热爱,只是被互联网的高薪吸引,毕竟技术岗位非常枯燥,不仅要面对奇奇怪怪的需求,还要不停的充实自己避免被淘汰。所以想要吃好技术这碗饭并不容易。在这给还在找工作的朋友几点建议以及文末还有一些免费的JA...

xingduan5153的博客 1756

全栈系统化的学习路线,面试突击版!

前言 难道程序员的职业生命线是青春饭?答案是的。 35岁考虑转行,然后35岁又成了一个新人,而外国可以做到60岁,啥也不说了,可能是觉得中年大叔油腻,不及小鲜肉便宜,唉,可叹市场更新换代太快,快到我们来不及改变,所以,只有让随时保鲜才最重要。 有赞: 一面 hashMap原理,put和resize过程 线程池有哪些类型, concurrentHashMap分段锁原理,java8和java7实现的区别 B-树和B+树区别,数据库索引原理,组合索引怎么使用?最左匹配的原理 spring生命周期,几种scop

m0_56712948的博客 113

java培训后好找工作吗

前言 今年因为这个疫情,感觉这是从工作以来过的最久的一个年了,在家呆的时间不是一般的久,算一算有好几个月呢!我大概是3月底快4月了才出门,投了超多的简历,天天面试面试面试面试面试面试面试…庆幸的是还是上岸了(嘻嘻开心开心)。但其实所谓的庆幸也是靠努力堆起来的,我记忆力还比较好,背一背,没啥难的,背了1000道题。。。(注:关于我背的这1000题,文末有分享) 眼看着6月就过去了,再过两天就7月份了,想着面试大军可能也过不了几天就要来了,所以这两天整理了一些面经,今天给大家看的是“美团+字节跳动+腾讯”这三家

m0_57285325的博客 218

2021Java春招面试:国外java技术论坛

有赞: 一面 hashMap原理,put和resize过程 线程池有哪些类型, concurrentHashMap分段锁原理,java8和java7实现的区别 B-树和B+树区别,数据库索引原理,组合索引怎么使用?最左匹配的原理 spring生命周期,几种scope区别,aop实现有哪几种实现,接口代理和类代理会有什么区别 二面 项目介绍 斐波那契数列非递归实现 短URL实现 三面 HR+主管 你现在做的事情,为什么要离职?反正对你性格生活薪资全面了解 今日头条: 一面 自我介绍,做的项目价值

m0_57983312的博客 226

字节跳动今日学习内容:java基本语言与c++的不同

1. 面试官:工作中使用过Zookeeper嘛?你知道它是什么,有什么用途呢? 小菜鸡的我: 有使用过的,使用ZooKeeper作为dubbo的注册中心,使用ZooKeeper实现分布式锁。 ZooKeeper,它是一个开放源码的分布式协调服务,它是一个集群的管理者,它将简单易用的接口提供给用户。 可以基于Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。 Zookeeper的用途:命名服务、配置管理、集群管理、分布

m0_57771583的博客 173

系统优化问题

头条笔试设计题 今日头条会根据用户的浏览行为、内容偏好等信息,为每个用户抽象出一个标签化的用户画像,用于内容推荐。用户画像的存储、高并发访问,是推荐系统的重要环节之一。现在请你给出一个用户画像存储、访问方案,设计的时候请考虑一下几个方面: 用户画像如何存储 如何保证在线高并发、低延迟的访问 机器宕机、负载均衡问题 如果用户增长很快,在你的方案下,该如何扩容 解决方案: 一、建立用户关...

windflybird 1003

数据库集群和分布式到底有什么区别?从主从复制到分库分表的选型指南(附避坑清单)

摘要: 数据库架构选型指南:集群与分布式的本质区别与应用场景 本文系统解析了数据库集群与分布式架构的核心差异。集群通过多节点分担同一任务实现高可用和负载均衡,包括主从复制、读写分离和共享存储集群三种形式;分布式则通过数据分片解决写入瓶颈,但带来跨分片查询、分布式事务等复杂度。文章通过对比表展示两者在扩展性、一致性和运维复杂度等维度的差异,指出KES数据库的集中分布一体化方案可平滑演进。最后强调应根据业务规模、读写比例和团队能力谨慎选型,避免过早分布式化带来的不必要复杂度,并为信创迁移提供架构选择建议。

「一个在数据库赛道上边学边分享的学妹」——聚焦国产数据库/信创方向、分享学习笔记、踩坑经验和行业观察。 644

【Redis】Redis实战:分布式短信登录与Token无感续期

本文详细介绍了Redis在分布式短信登录中的核心应用,包括验证码临时存储和登录状态持久化,以及Token无感续期的双拦截器设计。通过实战代码示例,展示了如何利用Redis解决Session共享问题,提升系统安全性和用户体验。文章还涵盖了性能优化与安全加固策略,为开发者提供了一套完整的分布式登录解决方案。

resnet7explorer的博客 269
上一篇: 今日学习:怎么算高并发
下一篇: 今日学习:音视频领域入门文章参考(待完善)
~Yogi
博客等级 码龄5年 414粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~Yogi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值