JUC提供的锁机制,可以保证在同一个JVM进程中同一时刻只有一个线程执行操作逻辑; 多服务多节点的情况下,就意味着有多个JVM进程,要做到这样,就需要有一个中间人; 分布式锁就是用来保证在同一时刻,仅有一个JVM进程中的一个线程在执行操作逻辑; 换句话说,JUC的锁和分布式锁都是一种保护系统资源的措施。尽可能将并发带来的不确定性转换为同步的确定性;
本文探讨了进程调度的原理和算法,并提供了全面的概述。进程调度是操作系统中的重要组成部分,用于决定进程的执行顺序和分配CPU时间。我们讨论了优先级调度和时间片轮转调度算法。优先级调度根据进程的优先级确定执行顺序,可以分为抢占式和非抢占式。时间片轮转调度将CPU时间划分为固定大小的时间片,每个进程在一个时间片内执行。合理设置时间片长度能够避免资源浪费和频繁的上下文切换。最短作业优先和最短剩余时间优先是
在当今互联世界中,数据的传输和通信是不可或缺的。然而,你是否曾想过,在网络通信中隐藏着哪些神秘的秘密?本文将带你深入探索数据链路层、MAC地址和ARP协议的奥秘。数据链路层是网络通信中的关键一环,负责将数据包封装为帧并进行传输。而MAC地址作为设备的唯一标识符,扮演着识别节点的重要角色。而ARP协议则解决了从IP地址到MAC地址的映射问题,确保数据的准确传输。通过揭开这些网络通信的神秘面纱,你将更
在服务器的VMWARE ESXi系统环境中,我们经常需要创建虚拟机来运行各种应用程序。然而,服务器如果偶尔出现自动重启以及紫屏报错的问题,说明服务器内部出现了故障,一般情况下重启机器能够解决问题,但时间一长,问题会越来越严重,可能会出现无法启动的情况,这就会导致数据丢失,因此为了确保数据的安全,需要...
Merkle 树(Merkle Tree)是一种树状数据结构,通常用于验证大规模数据集的完整性和一致性。它的名字来源于其发明者 Ralph Merkle。Merkle 树在密码学、分布式系统和区块链等领域得到广泛应用,尤其在区块链中,它用于验证交易和区块的完整性,确保数据不被篡改。 下面是 Merk
敏感词过滤在社区发帖、网站检索、短信发送等场景下是很常见的需求,尤其是在高并发场景下如何实现敏感词过滤,都对过滤算法提出了更高的性能要求,Ahocorasick算法能够实现毫秒级的万字过滤匹配,能够很好的满足各种场景下的敏感词过滤需求。 Aho-Corasick算法通过将模式串预处理为确定有限状态自
重命名 `pandas` 数据中列的名称是一种常见的数据预处理任务。这通常是因为原始数据中的列名称可能不够清晰或准确。例如,列名可能包含空格、大写字母、特殊字符或拼写错误。 使用 `pandas` 的 `rename`函数可以帮助我们更改列名,从而使数据更加清晰和易于理解。此外,重命名列名还可以确保
摘要:本文主要讲解数仓运维中遇到单SQL磁盘空间管控问题的解析和方案。 本文分享自华为云社区《GaussDB(DWS)运维 -- 单SQL磁盘空间管控》,作者: 譡里个檔。 【问题描述】 执行部分SQL语句时出现如下报错信息(具体数值可能因为配置有差异),本文针对根因和场景触发场景,确定触发此类问题
摘要:服务过载在云时代是必然存在的,如何解决与应对成为了云服务开发、运营与运维的关键要素,通过过载场景现象、基础过载控制等能力,来应对出现的服务/应用过载。 本文分享自华为云社区《云服务过载控制的前世今生》,作者:SRE确定性运维 。 1.为什么会有过载? 过载,是服务或应用处理的请求超过了自身所能
摘要:本文主要是对《凤凰架构》的解读,讲述规划系统流量的几种方式。 本文分享自华为云社区《大流量时代,如何规划系统流量提升可靠性》,作者:breakDawn 。 透明多级分流系统 对系统流量进行规划, 要注意以下2个原则 尽可能减少单点部件, 或者减少到达单点部件的流量或者作用 奥卡姆剃刀原则,确定
# 1. 什么是Code Review Code Review(CR)即代码评审,又名代码走查,是指对软件开发过程中编写的代码进行检查和评估的一种实践。它通常由其他团队成员、同事或专门的质量保证团队成员来执行。Code Review的目的是发现代码中的潜在问题、改进代码质量和可维护性,并确保代码符合
## 前言 我在使用 AspNetCore 的这段时间内,看了很多开源项目和博客,发现各种 .Net 体系的新技术很多人都有关注和使用,但却很少有人关注测试。 测试是软件生命周期中的一个非常重要的阶段,对于保证软件的可靠性具有极其重要的意义。在应用程序的开发过程中,为了确保它的功能与预期一致,必须对
本文旨在探讨进程间通信的重要性,并介绍了不同的通信机制,如管道、消息队列、共享内存、信号量、信号和套接字。通过理解这些通信机制的特点和应用场景,可以更好地实现进程间的高效数据共享。同时,本文还强调了同步和互斥机制的重要性,以确保数据的一致性和正确性。最后,还介绍了套接字作为一种跨网络和同一主机上进程间通信的通信机制,为读者提供了更全面的了解。通过阅读本文,读者将能够深入理解进程间通信的概念和不同机制,为实现有效的数据共享提供指导。
最近接手的项目中要新增一个抽奖功能,场景类似年会上的抽奖,触发抽奖的只有一个动作,不存在多线程操作导致所抽奖品已经被抽完的情况。简单来说,就是不存在需要锁的场景,也不存在数据同步的情况。 这种场景的抽奖是最容易实现的,我这里的实现思路就是首先获取参与抽奖的总数,然后根据奖品数量生成几个随机数来确定中
本文主要介绍Kerberos认证协议的原理以及解决了什么问题 Kerberos是什么 Kerberos是计算机网络世界中的一种身份认证协议。 身份认证是我们日常生活中经常进行的活动,比如我们要去银行取自己账户的钱,就必须先向银行证明你声明想要取钱的账户确实是你自己的。银行采取的认证方法是,需要你现场
在当今快节奏的数字世界中,网站性能对于吸引用户和取得成功至关重要。然而,对于像首页这样的页面,在不影响功能的前提下优化性能就成了一项挑战。 这就是 Vue 组件懒加载的用武之地。通过将非必要元素的加载推迟到可见时进行,开发人员可以增强用户体验,同时确保登陆页面的快速加载。 懒加载是一种优先加载关键内
在之前的Java 17新特性中,我们介绍过关于JEP 406: switch的模式匹配,但当时还只是关于此内容的首个预览版本。之后在JDK 18、JDK 19、JDK 20中又都进行了更新和完善。如今,在JDK 21中,该特性得到了最终确定!下面,我们就再正式学习一下该功能! 在以往的switch语