2021Java春招面试真题:46岁程序员被互联网公司辞退

大数据开发用java还是python,讲的太透彻了 分布式锁的坑 高并发场景下的问题 以下问题不是说在并发不高的场景下不容易出现,只是在高并发场景下出现的概率更高些而已。 性能问题来自于以下两方面: **①获取锁的时间上。**如果 Redlock 运用在高并发的场景下,存在 N 个 Master 节点,一个一个去请求,耗时会比较长,从而影响性能。 这个好解决,通过上面描述不难发现,从多个节点获取锁的操作并不是一个同步操作,可以是异步操作,这样可以多个节点同时获取。 即使是并行处理的,还是得预估好获取锁的时间,保证锁的 TTL>获取锁的时间+任务处理时间 阅读详情

01 分布式限流:Nginx+ZooKeeper

1.1 分布式限流之Nginx

  • 请解释一下什么是 Nginx?

  • 请列举 x Nginx 的一些特性。

  • 请列举 x Nginx 和 和 Apache 之间的不同点

  • 请解释 x Nginx 如何处理 P HTTP 请求。

  • 在 x Nginx 中,如何使用未定义的服务器名称来阻止处理请求?

  • 使用 “ 反向代理服务器 ”

  • 请列举 x Nginx 服务器的最佳用途。

  • 请解释 x Nginx 服务器上的 r Master 和 和 r Worker 进程分别是什么?

  • 请解释你如何通过不同于 0 80 的端口开启 Nginx?

  • 请解释是否有可能将 x Nginx 的错误替换为 2 502 错误?

  • 在 x Nginx 中,解释如何在 L URL 中保留双斜线? ?

  • 请解释 e ngx_http_upstream_module 的作用是什么?

  • 请解释什么是 K C10K 问题?

  • 请陈述 s stub_status 和 和 r sub_filter 指令的作用是什么?

  • 解释 x Nginx 是否支持将请求压缩到上游?

  • 解释如何在 x Nginx 中获得当前的时间?

  • 用 x Nginx 服务器解释s -s 的目的是什么?

  • 解释如何在 x Nginx 服务器上添加模块?

分布式限流之Nginx的答案解析如下:

分布式限流之Nginx的答案解析

for:Nginx+常见应用技术指南[Nginx++Tips]+第二版

Nginx+常见应用技术指南[Nginx++Tips]+第二版

1.2 分布式限流之ZooKeeper

  • ZooKeeper 是什么?

  • ZooKeeper 提供了什么?

  • Zookeeper 文件系统

  • 四种类型的 znode

  • Zookeeper 通知机制

  • Zookeeper 做了什么?

  • zk 的命名服务(文件系统)

  • zk 的配置管理(文件系统、通知机制)

  • Zookeeper 集群管理(文件系统、通知机制)

  • Zookeeper 分布式锁(文件系统、通知机制)

  • 获取分布式锁的流程

  • Zookeeper 队列管理(文件系统、通知机制)

  • Zookeeper 数据复制

  • Zookeeper 工作原理

  • zookeeper 是如何保证事务的顺序一致性的?

  • Zookeeper 下 Server 工作状态

  • zookeeper 是如何选取主 leader 的?

  • 分布式通知和协调

  • 机器中为什么会有 leader?

  • zk 节点宕机如何处理?

  • Zookeeper 同步流程

  • zookeeper 负载均衡和 nginx 负载均衡区别

  • zookeeper watch 机制

分布式限流之ZooKeeper的答案解析如下

分布式限流之ZooKeeper的答案解析

for:ZK开发手册

ZK开发手册

02 分布式通讯:ActiveMQ+Kafka+RabbitMQ

2.1 分布式通讯之ActiveMQ

  • 什么是 ActiveMQ?

  • ActiveMQ 服务器宕机怎么办?

  • 丢消息怎么办?

  • 持久化消息非常慢

  • 消息的不均匀消费。

  • 死信队列。

  • ActiveMQ 中的消息重发时间间隔和重发次数吗?

分布式通讯之ActiveMQ的答案解析如下:

分布式通讯之ActiveMQ的答案解析

for:手写RocketMQ笔记

手写RocketMQ笔记

2.2 分布式通讯之kafka

  • Kafka 的设计时什么样的呢?

  • 数据传输的事物定义有哪三种?

  • Kafka 判断一个节点是否还活着有那两个条件?

  • producer 是否直接将数据发送到 broker 的 leader(主节点)?

  • Kafa consumer 是否可以消费指定分区消息?

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

  • Kafka 存储在硬盘上的消息格式是什么?

  • Kafka 高效文件存储设计特点:

  • Kafka 与传统消息系统之间有三个关键区别

  • Kafka 创建 Topic 时如何将分区放置到不同的 Broker 中

  • Kafka 新建的分区会在哪个目录下创建

  • partition 的数据如何保存到硬盘

  • kafka 的 ack 机制

  • Kafka 的消费者如何消费数据

  • 消费者负载均衡策略

  • 数据有序

  • kafaka 生产数据时数据的分组策略

分布式通讯之kafka的答案解析如下:

kafka面试问题答案解析

for:Kafka源码解析与实战

Kafka源码解析与实战

2.3 分布式通讯之RabbitMQ

  • RabbitMQ 中的 broker 是指什么?cluster 又是指什么?

  • 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的?

  • RAM node 和 disk node 的区别?

  • RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?

  • RabbitMQ 概念里的 channel、exchange 和 queue 这些东东是逻辑概念,还是对应着进程实体?这些东东分别起什么作用?

  • vhost 是什么?起什么作用?

  • 在单 node 系统和多 node 构成的 cluster 系统中声明 queue、exchange ,以及进行 binding 会有什么不同?

  • 客户端连接到 cluster 中的任意 node 上是否都能正常工作?

  • cluster 中 node 的失效会对 consumer 产生什么影响?若是在 cluster 中创建了mirrored queue ,这时 node 失效会对 consumer 产生什么影响?

  • 能够在地理上分开的不同数据中心使用 RabbitMQ cluster 么?

  • 为什么 heavy RPC 的使用场景下不建议采用 disk node ?

  • 向不存在的 exchange 发 publish 消息会发生什么?向不存在的 queue 执行consume 动作会发生什么?

  • routing_key 和 binding_key 的最大长度是多少?

  • RabbitMQ 允许发送的 message 最大可达多大?

  • 什么情况下 producer 不主动创建 queue 是安全的?

  • “dead letter”queue 的用途?

  • 为什么说保证 message 被可靠持久化的条件是 queue 和 exchange 具有durable 属性,同时 message 具有 persistent 属性才行?

  • 什么情况下会出现 blackholed 问题?

  • 如何防止出现 blackholed 问题?

  • Consumer Cancellation Notification 机制用于什么场景?

  • Basic.Reject 的用法是什么?

  • 为什么不应该对所有的 message 都使用持久化机制?

  • RabbitMQ 中的 cluster、mirrored queue,以及 warrens 机制分别用于解决什么问题?存在哪些问题?

分布式通讯之RabbitMQ的答案解析如下:

分布式通讯之RabbitMQ的答案解析

for:RabbitMQ实战指南

RabbitMQ实战指南

03 分布式缓存:memcached+MongoDB+Redis

3.1 分布式缓存之memcached

  • memcached 是怎么工作的?

  • memcached 最大的优势是什么?

  • memcached 和服务器的 local cache (比如 PHP 的 的 APC 、mmap 文件等)相比,有什么优缺点?

  • memcached 和 和 MySQL 的 的 query cache 相比,有什么优缺点?

  • memcached 的 的 cache 机制是怎样的?

  • memcached 如何实现冗余机制?

  • 我需要把 memcached 中的 item 批量导出导入,怎么办?

  • memcached 如何处理容错的?

  • 如何将 memcached 中 中 item 批量导入导出?

  • memcached 是如何做身份验证的?

  • memcached 的多线程是什么?如何使用它们?

  • memcached 能接受的 key 的最大长度是多少?

  • memcached 对 对 item 的过期时间有什么限制?

  • memcached 最大能存储多大的单个 item ?

  • 为什么单个 item 的大小被限制在 1M byte 之内?

分布式缓存之memcached的答案解析如下:

分布式缓存之memcached的答案解析

3.2 分布式缓存之MongoDB

  • 你说的 NoSQL 数据库是什么意思?NoSQL 与 RDBMS 直接有什么区别?为什么要使用和不使用NoSQL 数据库?说一说 NoSQL 数据库的几个优点?

  • NoSQL 数据库有哪些类型?

  • MySQL 与 MongoDB 之间最基本的差别是什么?

  • 你怎么比较 MongoDB、CouchDB 及 CouchBase?

  • MongoDB 成为最好 NoSQL 数据库的原因是什么?

  • 32 位系统上有什么细微差别?

  • journal 回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?

  • 分析器在 MongoDB 中的作用是什么?

  • 名字空间(namespace)是什么?

  • 如果用户移除对象的属性,该属性是否从存储层中删除?

  • 能否使用日志特征进行安全备份?

  • 允许空值 null 吗?

  • 更新操作立刻 fsync 到磁盘?

  • 如何执行事务/加锁?

  • 为什么我的数据文件如此庞大?

  • 启用备份故障恢复需要多久?

  • 什么是 master 或 primary?

  • 什么是 secondary 或 slave?

  • 我必须调用 getLastError 来确保写操作生效了么?

  • 我应该启动一个集群分片(sharded)还是一个非集群分片的 MongoDB 环境?

  • 分片(sharding)和复制(replication)是怎样工作的?

  • 数据在什么时候才会扩展到多个分片(shard)里?

  • 当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么?

  • 如果在一个分片(shard)停止或者很慢的时候,我发起一个查询会怎样?

  • 我可以把 moveChunk 目录里的旧文件删除吗?

  • 我怎么查看 Mongo 正在使用的链接?

  • 如果块移动操作(moveChunk)失败了,我需要手动清除部分转移的文档吗?

  • 如果我在使用复制技术(replication),可以一部分使用日志(journaling)而其他部分则不使用吗?

  • 当更新一个正在被迁移的块(Chunk)上的文档时会发生什么?

  • MongoDB 在 A:{B,C}上建立索引,查询 A:{B,C}和 A:{C,B}都会使用索引吗?

  • 如果一个分片(Shard)停止或很慢的时候,发起一个查询会怎样?

  • MongoDB 支持存储过程吗?如果支持的话,怎么用?

  • 如何理解 MongoDB 中的 GridFS 机制,MongoDB 为何使用 GridFS 来存储文件?

分布式缓存之MongoDB的答案解析如下:

分布式缓存之MongoDB的答案解析

for:MongoDB权威指南

MongoDB权威指南

3.3 分布式缓存之Redis

  • redis 简介

  • 为什么要用 redis /为什么要用缓存(高性能、高并发)

  • 为什么要用 redis 而不用 map/guava 做缓存?

  • redis 和 memcached 的区别

  • redis 常见数据结构以及使用场景分析(String、Hash、List、Set、Sorted Set)

  • redis 设置过期时间

  • redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)

  • redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)

  • redis 事务

  • Redis 常见异常及解决方案(缓存穿透、缓存雪崩、缓存预热、缓存降级)

  • 分布式环境下常见的应用场景(分布式锁、分布式自增 ID)

  • Redis 集群模式(主从模式、哨兵模式、Cluster 集群模式)

  • 如何解决 Redis 的并发竞争 Key 问题

  • 如何保证缓存与数据库双写时的数据一致性?

分布式缓存之Redis的答案解析如下:

分布式缓存之Redis的答案解析

for:Redis设计与实现

Redis设计与实现

最后

如果大家需要这份清华大牛整理的进大厂必备的redis视频、面试题和技术文档的话,可以戳这里即可免费获取!

祝大家早日进入大厂,拿到满意的薪资和职级~~~加油!!

感谢大家的支持!!

image.png

式)

  • 如何解决 Redis 的并发竞争 Key 问题

  • 如何保证缓存与数据库双写时的数据一致性?

分布式缓存之Redis的答案解析如下:

[外链图片转存中…(img-LTV7u9xK-1625725866418)]

for:Redis设计与实现

[外链图片转存中…(img-tdv9kMaZ-1625725866418)]

最后

如果大家需要这份清华大牛整理的进大厂必备的redis视频、面试题和技术文档的话,可以戳这里即可免费获取!

祝大家早日进入大厂,拿到满意的薪资和职级~~~加油!!

感谢大家的支持!!

[外链图片转存中…(img-kVp4D91X-1625725866419)]

caxa二次开发实例展示 本人有8年CAXA各产品(如电子图版、工艺图表、PDM等)二次开发经验,参与过国家电网南瑞集团、中石油、龙记集团、欧姆龙集团、港日集团、中集集团、中国五矿、方圆塑机、大连锅炉、金蝶PDM集成CAXA,TEAMCENTER集成CAXA、大连锅炉机械、中国中车等项目的开发,擅长CAXA电子图版、CAXA工艺图表的二次开发,有需要的可以联系我,电话:13169467685、13249738576 Q 阅读详情

相关推荐

极化码理论及算法研究6-SCL、CA-SCL及matlab仿真

极化码译码算法5——SCL/CA-SCL译码算法系列目录1、引言2、串行抵消列表(SCL)译码算法2.1、路径度量PM 系列目录 (如要找其他内容,欢迎访问我的主页寻找) #前言 #极化码概述 #极化码定义 #极化码编码 #极化码译码 #5G标准中极化码的编译码概述 #5G标准中极化码的编码 #5G标准中极化码的译码 #总结 1、引言 在上一节中,介绍了经典的SC译码算法的理论原理以及其matlab仿真代码,SC译码算法具有较低的译码复杂度,但是由于每个译码的比特信息都依赖于前面所有的比特信息的译码结果,得

1万+

农民工看完都学会了!java和c语言的语法区别

01 分布式限流:Nginx+ZooKeeper 1.1 分布式限流之Nginx 请解释一下什么是 Nginx? 请列举 x Nginx 的一些特性。 请列举 x Nginx 和 和 Apache 之间的不同点 请解释 x Nginx 如何处理 P HTTP 请求。 在 x Nginx 中,如何使用未定义的服务器名称来阻止处理请求? 使用 “ 反向代理服务器 ” 请列举 x Nginx 服务器的最佳用途。 请解释 x Nginx 服务器上的 r Master 和 和 r Wo

m0_57624876的博客 264

Ubuntu20.04安全重启后WiFi图标消失?MT7922网卡驱动修复全攻略

本文详细解析了Ubuntu20.04安全重启后WiFi图标消失的问题,特别是针对MT7922网卡驱动失效的情况。通过诊断命令和分步解决方案,包括禁用PCIe ASPM、更新无线固件和升级HWE内核,帮助用户快速恢复网络连接。文章还提供了进阶排查技巧和系统优化建议,确保WiFi稳定运行。

weixin_29202687的博客 370

MongoDB数据库经典面试问答

1. MongoDB成为最好NoSQL数据库的原因是什么? 以下特点使得MongoDB成为最好的NoSQL数据库: 面向文件的 高性能 高可用性 ...

csd753111111的博客 198

Numpy快速入门(np)!看这一篇就够了

Numpy快速入门(np)!看这一篇就够了

weixin_74009895的博客 2680

AURIX™ TC49x芯片手册中文分享(二)

主要内容为第一章、功能模块的特征

xibaofenqi的博客 1564

java 异步轮询获取结果

轮询相关视频讲解:实现一个乞丐版四层负载均衡器Java异步轮询获取结果 在Java开发中,有时候我们需要执行一个耗时较长的操作,比如调用远程接口或者执行复杂的计算,为了避免阻塞主线程,我们可以使用异步轮询的方式来获取操作的结果。本文将介绍如何在Java中实现异步轮询获取结果,并提供代码示例。 异步轮询的原理 异步轮询的原...

weixin_40900144的博客 464

Android 音频源码分析——音量调节流程

源码分析基于android9.0 一、声音类型 对于大多数手机用户来说,操作手机音量按键可以看到,声音类型分为四种:媒体、铃声、闹钟、通话,但是其系统内部则分为十几种类型。 声⾳类型用来区分不同播放用途及播放设备,包含11中类型 定义在 frameworks/base/media/java/android/media/AudioSystem.java中 /** Used to identify the default audio stream volume */ public static final in

奋斗的菜鸟ing 3824

java 异步事件_Java编程入门——异步事件:轮询与中断

CPU几乎把所有的时间都花费在从内存获取指令并运行它们的过程中。然而,CPU和主存仅仅只是计算机硬件系统中众多组件的其中两个。一个完整的系统还包含其他的设备,比如:硬盘或者固态硬盘,用来存储程序和数据文件的。(注意,主存仅保存少量的信息,并且只有在计算机接通电源的时候才能保存信息。硬盘或者固态硬盘用 来***存储大量的信息。但是在程序真正运行前,程序必须把硬盘或者固态硬盘里的数据加载到主存中。硬盘...

weixin_33044131的博客 599

flowable工作流看这一篇就够了(基础篇)

接下来我们构建一个非常简单的请假流程,Flowable引擎需要流程定义为BPMN 2.0格式,这是一个业界广泛接受的XML标准。在Flowable术语中,我们将其称为一个流程定义(process definition)。一个流程定义可以启动多个流程实例(process instance)。流程定义可以看做是重复执行流程的蓝图。在这个例子中,流程定义定义了请假的各个步骤,而一个流程实例对应某个雇员提出的一个请假申请。

qq_38196449的博客 2万+

XDMA Scatter-Gather(SG)模式

XDMA Scatter-Gather(SG)模式 是 Xilinx FPGA 中用于高效处理 ​非连续内存数据 的 DMA 传输机制,通过 ​描述符链表(Descriptor List)​ 管理多块分散数据,显著减少 CPU 开销并提升吞吐量。

浩瀚之水的专栏 2149

Go语言中的分布式系统:从一致性哈希到分布式锁

高可用性:多个节点,一个节点挂了不影响整体高扩展性:可以通过增加节点来提高系统容量负载均衡:将请求均匀分布到多个节点作为一个务实的后端开发者,我建议从小规模开始,逐步完善分布式系统。先实现基本的一致性哈希和分布式锁,再考虑更复杂的分布式协调机制。记住:分布式系统不是银弹,它带来了复杂性,需要更多的工具和实践来管理。我见过不少团队,盲目追求分布式系统,结果把简单的问题复杂化了。其实,对于小团队来说,单体应用可能更适合,只有当业务发展到一定规模,才需要考虑分布式系统。

好代码自己会说话,烂代码才需要注释来圆谎 4559

【第2章>第10节】深度学习DenseNet模型分析与matlab仿真

本文介绍了基于DenseNet深度学习模型的图像分类MATLAB实现方法。主要内容包括:1. DenseNet模型原理,详细解析了初始卷积层、密集块、过渡层等核心结构;2. 在MATLAB环境下完成DenseNet工具箱安装和测试样本准备;3. 实现图像预处理(统一缩放为224×224)、模型训练和测试的完整流程;4. 提供了混淆矩阵和准确率等测试结果分析。文章附带完整的MATLAB程序代码和操作视频教程,适合深度学习初学者快速掌握DenseNet模型的图像分类应用。通过实际测试,验证了该方案的有效性。

FPGA/MATLAB学习教程/源码/项目合作开发 330

轮询功能java实现

java实现轮询功能

qq_36070644的博客 4206

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java中的轮询方法总结

本文总结了Java中常见的五种轮询实现方式及其适用场景,希望能够帮助你在实际应用中选择合适的方法来满足业务需求。

程序猿小样的博客 4465

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Java 异步编程 (5 种异步实现方式详解)

首先我们先来看看一个同步的用户注册例子,流程如下:在同步操作中,我们执行到插入数据库的时候,我们必须等待这个方法彻底执行完才能执行“发送短信”这个操作,如果插入数据库这个动作执行时间较长,发送短信需要等待,这就是典型的同步场景。于是聪明的人们开始思考,如果两者关联性不强,能不能将一些非核心业务从主流程中剥离出来,于是有了异步编程雏形,改进后的流程如下:这就是异步编程,它是程序并发运行的一种手段,它允许多个事件同时发生,当程序调用需要长时间运行的方法时,它不会阻塞当前的执行流程,程序可以继续运行。

wy971744839的博客 3239

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

分布式常见面试题详解

分布式常见面试题详解

Redemption___的博客 1万+

Redis进阶—分布式锁

Redis并发运用,双写不一致以及分布式锁

bcpx819的博客 341

Java架构师之路四、分布式系统:分布式架构、分布式数据存储、分布式事务、分布式锁、分布式缓存、分布式消息中间件、分布式存储等。

锁的实现方式:常见的分布式锁实现方式包括基于数据库的实现(使用行级锁或乐观锁)、基于缓存的实现(使用Redis、Memcached等分布式缓存)、基于ZooKeeper、etcd等分布式协调服务的实现,以及基于分布式锁算法的自定义实现等。缓存穿透和雪崩:分布式缓存需要考虑缓存穿透(即请求的数据在缓存中不存在,导致请求直接访问数据库)和缓存雪崩(即大量缓存同时失效,导致请求集中访问后端存储)等问题,通常通过预热、降级、限流等手段来应对。分布式锁通常用于控制对共享资源的访问,以确保系统的一致性和正确性。

shenzhiyoushen的博客 2560

前端解决异步的方法和详细的介绍(看了,不后悔)

前端开发中经常会遇到异步操作。这是因为前端开发通常涉及到与服务器进行数据交互、处理用户输入、执行动画效果等任务,这些任务往往需要花费一定的时间来完成。为了确保用户体验和页面性能,前端开发中采用异步操作是很常见的。回调函数(Callback Functions):简单易用:回调函数是最早的异步处理方法之一,其概念简单易懂,使用方便。广泛支持:几乎所有的 JavaScript 环境都支持回调函数,因此在不同的项目中都可以使用。

weixin_51391923的博客 3974

springboot实现异步线程池并实现实时监控

背景 :因为我要对接京东订单服务 拉取订单的时候需要100个商户同时拉取订单服务,必须是异步的。 首先要在springboot 启动处加入 @EnableAsync @Configuration class TaskPoolConfig { @Bean("taskExecutor") public Executor taskExecutor() { ...

qq_37014611的博客 8403

js运行机制,异步任务的处理和事件轮询机制

我们都清楚 js是单线程自上而下执行的,其实这里面可以把 执行方式又分同步和异步,那异步又分为 宏任务(定时器,dom事件 ajax 都属于宏任务)和 微任务(promise async/await)当执行到异步任务的时候,论是执行宏任务还是微任务,他都会把这个异步任务放到异步线程里(webapi)然后把有了执行结果的异步任务 放到 “任务队列” 里又成为 “消息队列” “事件队列”,只要主线程一空,js就会查询任务队列里是否有待执行的任务并执行,这个过程不断重复的过程就叫做时间轮询。

qq_45300842的博客 448

Go语言实现分布式缓存:从LRU到多级缓存架构

分布式缓存是现代分布式系统中提升性能的关键组件。Go语言凭借其高性能和并发支持,成为实现分布式缓存的理想选择。本文将深入探讨Go语言实现分布式缓存的完整实践。

jiang_style的博客 4266

搞懂分布式技术16:浅谈分布式锁的几种方案

搞懂分布式技术16:浅谈分布式锁的几种方案 前言 随着互联网技术的不断发展,数据量的不断增加,业务逻辑日趋复杂,在这种背景下,传统的集中式系统已经无法满足我们的业务需求,分布式系统被应用在更多的场景,而在分布式系统中访问共享资源就需要一种互斥机制,来防止彼此之间的互相干扰,以保证一致性,在这种情况下,我们就需要用到分布式锁。 分布式一致性问题 首先我们先来看一个小例子: 假设某商城...

weixin_34191845的博客 103

缓存原理的学习

在如今这个微服务分布式的大环境下,集群分布式部署 几乎 已经是我们每个人都熟知的了。缓存也一样,对我们来说 ,如果只是一个单体应用 , 那只要 有本地缓存就足以了,但是倘若分布式部署了很多台机器上,那我们该如何缓存呢,如果依然用本地缓存,那我们不同机器之间的缓存数据该如何同步呢。这样就需要我们的分布式缓存出场了。下面我将分别介绍 本地缓存 和 分布式缓存。

weixin_44735933的博客 723

锁的原理和使用场景,乐观锁、悲观锁、公平锁、非公平锁,基于数据库、Redis、Zookeeper实现分布式锁的原理及代码实现

锁(lock)或互斥(mutex)是一种同步机制,用于在有许多执行线程的环境中强制对资源的访问限制。锁旨在强制实施互斥排他、并发控制策略。乐观锁、悲观锁、公平锁、非公平锁。单体应用锁是在一个JVM进程内有效,无法跨JVM、跨进程。分布式锁就是可以跨越多个JVM、跨越多个进程的锁。分布式锁都是通过第三方组件来实现的,目前比较流行的分布式锁的解决方案有:1、通过数据库可以实现分布式锁;2、借助Redis也可以实现分布式锁;3、Zookeeper也可以实现分布式锁。

加州暖阳的博客 5149
上一篇: 2021Java春招面试真题详解,Java多进程从头讲到尾
下一篇: 2021Java春招面试真题:docker停止镜像
普通网友
博客等级 码龄6年 39粉丝 387原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值