自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(135)
  • 收藏
  • 关注

转载 企业级项目管理工具使用Maven之Nexus搭建私服

1、序言Nexus可以做Maven私服,私服不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。有三种专门的Maven仓库管理软件可以用来帮助大家建立私服:Apache基金会的Archiva、JFrog的Artifacotory和Sonatype的Nexus,Archiva是开源的,Artifacotory和Nexus的核心也是开源的。Nexus 是“开箱即用”的系统,不需要数据库,它使用文件系统加 Lucene 来组织数据,支持 WebDAV 与 LDAP 安全身份认证。Ne

2022-03-31 15:16:58 595

转载 TCP 两次握手为什么无法阻止历史连接?

两次握手的情况下,「被动发起方」在收到 SYN 报文后,就进入 ESTABLISHED 状态,意味着这时可以给对方发送数据给,但是「主动发」起方此时还没有进入 ESTABLISHED 状态,假设这次是历史连接,主动发起方判断到此次连接为历史连接,那么就会回 RST 报文来断开连接,而「被动发起方」在第一次握手的时候就进入 ESTABLISHED 状态,所以它可以发送数据的,但是它并不知道这个是历史连接,它只有在收到 RST 报文后,才会断开连接。可以看到,上面这种场景下,「被动发起方」在向「主动

2022-03-31 15:07:27 306

转载 Redis 分布式锁的正确实现原理演化历程与 Redission 实战总结

Redis 分布式锁使用 SET 指令就可以实现了么?在分布式领域 CAP 理论一直存在。分布式锁的门道可没那么简单,我们在网上看到的分布式锁方案可能是有问题的。「码哥」一步步带你深入分布式锁是如何一步步完善,在高并发生产环境中如何正确使用分布式锁。在进入正文之前,我们先带着问题去思考:什么时候需要分布式锁? 加、解锁的代码位置有讲究么? 如何避免出现锁再也无法删除?「」 超时时间设置多少合适呢? 如何避免锁被其他线程释放 如何实现重入锁? 主从架构会带来什么安全问题? 什么是

2022-03-31 15:05:33 509

转载 面试官:应对高并发系统有没有通用的解决方案?

灵魂拷问:应对高并发系统有没有一些通用的解决方案呢? 这些方案解决了什么问题呢? 这些方案有哪些优势和劣势呢?对性能孜孜不倦的追求是互联网技术不断发展的根本驱动力,从最初的大型机到现在的微型机,在本质上也是为了性能而生。软件系统也存在类似的现象,一个系统从最初的少量访问请求到后期的大并发请求,这都需要我们对性能的提升提供一系列解决方案。像最初的淘宝,也仅仅是一个外包做出来的产品,随着业务的不断发展,淘宝的并发量指数级增加,同时对系统提出了严峻的挑战,这才逐步造就了现在淘宝这样可以支撑数千万人同时在

2022-03-31 15:01:45 230

转载 来了,大话分布式:分布式事务(CAP、两阶段提交、三阶段提交)

1、关于分布式系统1.1 介绍我们常见的单体结构的集中式系统,一般整个项目就是一个独立的应用,所有的模块都聚合在一起。明显的弊端就是不易扩展、发布冗重、服务治理不好做。所以我们把整个系统拆分成若干个具备独立运行能力的计算机服务的集合,而从用户的角度看,是一个完整的系统,但实际上,它是一个分布式服务的集合。分布式系统主要从以下几个方面进行裂变:应用可以从业务领域拆分成多个module,每个module还可以再按项目结构分成接口层、业务层、数据访问层;当然也可以按访问入口进行拆分,如移动、桌

2022-03-31 14:59:57 166

转载 面试官:为什么单线程的 Redis 可以实现高并发访问

背景上回说到小枫在接受面试官的拷打,所幸第一个问题回答的还不错,因此面试官对于小枫的初步印象还行。我们接着来看看小枫是怎么和面试官继续过招的吧,他还能扛得住面试官几个连环炮呢?面试官考察目的分析面试官:Redis了解吗?说说为什么单线程的Redis可以支持高并发访问?面试官考察目的分析:1、考察候选同学对于Redis原理的理解程度;2、考察候选同学对于网络连接的理解程度;面试题分析面试官的问题中包含了两个关键词,一个是单线程一个是高并发访问,因此我们在回答问题的时候主要从两个

2022-03-31 14:55:17 213

转载 分布式接口幂等性、分布式限流(Guava 、nginx和lua限流)

一、接口幂等性接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条,这就没有保证接口的幂等性。幂等性的核心思想:通过唯一的业务单号保障幂等性,非并发的情况下,查询业务单号有没有操作过,没有则执行操作,并发情况下,这个操作过程需要加锁。1、

2022-03-31 14:53:49 174

转载 原地涨薪,拿着GitHub标星80k的阿里性能优化笔记,把项目优化个遍

前不久公司新入职了一个从阿里出来的同事,本以为能跟着学习一下大厂的经验,没想到被反秀了一手!事情是这样的:入职的第一天,这位仁兄就开始了自愿加班,我们虽然反感但还是没说什么,公司也没有什么事当然是准点下班了。半个月后,这位仁兄就搞出了一件大事——把现在的项目性能优化了一遍,直接给公司节省了将近一半的成本,老板了解后直接给他安排了一手升职加薪。结果就是老板和这位同事都高兴了,我们懵逼了~内卷终究还是对手无缚鸡之力的我下手了,没办法,只能跟着卷了,不然等待我的可能就是辞退了前几天凭借请客

2022-03-31 14:50:58 129

转载 腾讯二面:你们线程池是怎么做监控的?

大部分情况下,线程池的运行情况对于使用者来说是个黑盒运行情况不可知,会导致 生产出现事故问题排查困难,以及线程池参数难以定义文章围绕线程池监控展开,讨论 线程池如何监控、监控的指标以及监控数据的存储展示如何监控运行数据设想一下,如果想监控线程池的运行数据,你会怎么操作?这里提供两种常规思路线程池运行时埋点,每一次运行任务都进行统计 定时获取线程池的运行数据这里我推荐第二种,因为线程池的监控 API 会通过 获取主锁来控制结果的相对准确性,性能相对较差,后面会详细说明为什么

2022-03-31 14:46:29 106

转载 Redis的高性能怎么做到的?

Redis这个NOSQL数据库在计算机界可谓是无人不知,无人不晓。只要涉及到数据那么就需要数据库,数据库类型很多,但是NOSQL的kv内存数据库也很多,redis作为其中一个是怎么做到行业天花板的呢?是怎么做到高性能的呢?怎么做到高可用的呢?今天这篇八股文我就整理一些redis的设计写写,本篇还是偏关于高性能这一块。高效数据结构Redis的数据库相比传统的关系数据库,在数据结构上也是比较特殊的,它的所有数据类型都可以看做是一个map的结构,key作为查询条件。基本数据结构Redis基

2022-03-31 14:43:53 313

转载 还在curd吗?封装属于自己的Spring-Boot-Starter

什么是StarterStarter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境( 条件)进行自动配置。使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,Spring Boot就能自动扫描并加载相应的模块并设置默认值,做到开箱即用为什么使用Starter在我们的日常开发工作中,经常会有一些独立于业务之外的配置模块,我们经常将其放到一个特定的包下,然后如果另一个工程需要复用这块功能的时候,需要将

2022-03-31 14:40:32 152

转载 15分钟,一文帮初学者搞懂操作系统之内存

操作系统是一门比较难啃的课程,同时操作系统知识对开发者们来说是十分重要,相信各位在学操作系统的时候,有太多的抽象难以理解的词汇与概念,把我们直接劝退,即使怀着满腔热血的心情学操作系统,不到 3 分钟睡意就突然袭来。所以本人想把自己的想法通过图解+大白话的形式,产出操作系统系列文章,让小白也能看懂,帮助大家快速科普入门本篇开始介绍内存,内存在操作系统中还是比较重要的,理解了它,对整个操作系统的工作会有一个初步的轮廓。内容大纲什么是内存小故事我们想去摆地摊(准备运行程序进程)需要

2022-03-31 14:37:05 203

转载 从根上理解用户态与内核态

本篇文章开始探秘用户态与内核态,虽然一般面试不会问这个,但搞清楚这块,对我们理解整个计算机系统是及其有意义的,这会让你在今后的学习中豁然开朗,你肯定会发出:“啊,原来如此的感叹!”内容大纲小故事张三是某科技公司的初级Java开发工程师(低权限),目前在15楼办公码代码,公司提供的资源仅有一套电脑(用户态),张三想着这一线的房价,倍感压力山大,于是给自己定下一个目标,一定要做技术总监,在一线扎根, 奋斗B张三,奋斗5年终于当上了技术总监(高权限),之后张三搬到30楼,可以随时向资源部(系统

2022-03-31 14:30:41 134

转载 由浅入深CAS原理,初学者也能与BAT面试官对线

Java并发编程系列番外篇C A S(Compare and swap),文章风格依然是图文并茂,通俗易懂,让读者们也能与面试官疯狂对线。C A S作为并发编程必不可少的基础知识,面试时C A S也是个高频考点,所以说C A S是必知必会,本文将带读者们深入理解C A S。大纲C A S基本概念C A S(compareAndSwap)也叫比较交换,是一种无锁原子算法,映射到操作系统就是一条cmpxchg硬件汇编指令(保证原子性),其作用是让C P U将内存值更新为新值,但是有个条件

2022-03-31 14:23:28 96

转载 写给刚学习的人看的LockSupport

Java并发编程系列第三篇LockSupport,上一篇Synchronized文章中有提过,不推荐读者们使用Object的wait、notify、notifyAll等函数做多线程间的通信协同,使用LockSupport会是更好的选择,本篇就来谈谈LockSupport,也正好为下篇的A Q S(AbstractQueuedSynchronized)打基础。内容大纲LockSupport基本概念LockSupport是线程工具类,主要作用是阻塞和唤醒线程,底层实现依赖Unsafe,同时它

2022-03-31 14:00:08 79

转载 MySQL 默认隔离级别是RR,为什么阿里等大厂会改成RC?

MySQL在主从复制的过程是通过bin log 进行数据同步的,而MySQL早期只有statement这种bin log格式,这种格式下,bin log记录的是SQL语句的原文。当出现事务乱序的时候,就会导致备库在 SQL 回放之后,结果和主库内容不一致。为了解决这个问题,MySQL默认采用了Repetable Read这种隔离级别,因为在 RR 中,会在更新数据的时候增加记录锁的同时增加间隙锁。可以避免这种情况的发生。关于MySQL的加锁方式及加锁原则,这里就不再赘述了。这里就不再赘述了。

2022-03-31 13:52:06 515 1

转载 学到了,原来代码是这样被CPU跑起来的

CPU对我们来说既熟悉又陌生,熟悉的是我们知道代码是被CPU执行的,当我们的线上服务出现问题时可能首先会查看CPU负载情况。陌生的是我们并不知道CPU是如何执行代码的,它对我们的代码做了什么。本文意在简单解释我们代码的生命周期,以及代码是如何在CPU上跑起来的。编译-让计算机认识我一个漂亮 control+c 加上一个漂亮的 control+v,啪~,我们愉快的写下了代码,当代码被保存后,它就被存在我们磁盘的某个地方,它可能是像java或者python这些高级语言写的,也可能是像c这种古老语

2022-03-31 13:45:34 505

转载 接口的幂等性的多重考虑,你会了吗?

今天的主题:接口幂等性的解决方案。本来是想把对象的存储过程和内存布局肝出来的,但是临时产生了变化,哈哈,这部分内容我们留在下一期吧,有句话说的好,好事多磨,对吧。在实际项目开发中接口是我们在开发中经常接触到的,而且是经常经常要写,每一个项目可能都会伴随着大量的接口开发,在涂鸦的这几个月,基本上就是在与接口作斗争了,新需求除了业务相关就是设计表和接口编写了。当然,在接口设计中我们要考虑很多问题,安全性,格式,设计等等,今天我们先来聊聊,在高并发环境下,接口幂等性的解决方案有哪些。1 接口幂等性

2022-03-31 13:39:54 85

转载 阿里三面:什么是循环依赖?你说一下Spring解决循环依赖的流程

Spring循环依赖的原理解析1、什么是循环依赖?我们使用Spring的时候,在一个对象中注入另一个对象,但是另外的一个对象中也包含该对象。如图:在Student中包含了teacher的一个属性;在Teacher中包含有student的属性。这样就形成了一个循环依赖。2、代码描述xml配置文件testCycle.java private static void testCycle(){ ClassPathXmlApplica

2022-03-31 13:36:52 123

转载 Java 大杀器来了,性能提升一个数量级

自 1996 年诞生以来,Java 语言长期在最受欢迎的编程语言排行榜中占据领先地位。除了语言本身的优秀特性之外,Java 语言持续演进、不断发展也是它能够保持长盛不衰的重要原因。Java 语言的功能和性能都在不断地发展和提高,但是 冷启动开销较大 的问题长期存在,难以从根本上解决。Java 语言也因此在 Serverless 场景下无法与 Node.js、Go 等快速启动的语言竞争,落于下风。在这种背景下,作为能够从根本上解决冷启动问题的 Java 静态编译技术 有了用武之地,开始在业界崭露头角,为

2022-03-31 13:30:05 102

转载 作为程序员,你一般用什么软件画流程图时序图和状态图等?

作为一名合格的程序员,在需求整理及功能实现的时候,各种流程图是避免不了的,像用例图、时序图、状态图基本上是必备,辅助分析需求及梳理实现思路。时序图,又称为序列图、循序图,是一种UML交互图。时序图通过描述对象之间发送消息的时间顺序,显示多个对象之间的动态协作过程。 时序图的使用场景非常广泛,几乎各行各业都可以使用。当然,作为一个软件工作者,我这边主要列举和软件开发有关的场景。 时序图涉及到的角色主要包括 角色(Actor)系统角色,可以是人或者其他系统和子系统。以一个小人图标表示。 对象(O.

2022-03-29 15:30:37 1655

转载 关于微服务系统中数据一致性的总结

从单体架构到分布式架构,从巨石架构到微服务架构。系统之间的交互越来越复杂,系统间的数据交互量级也是指数级增长。作为一个系统,我们要保证逻辑的自洽和数据的自洽。数据自洽有两方面要求:抛开代码,数据能够自己验证自己的准确性,也就是数据彼此之间不矛盾 所有数据准确且符合期望为了实现这两点,需要实现数据的一致性,为了实现一致性,就需要用到事务。需要注意一下,本文所设计的数据一致性,不是多数据副本之间保持数据一致性,而是系统之间的业务数据保持一致性。本地事务在早期的系统中,我们可以通过关系型数

2022-03-29 15:27:55 485

转载 HashMap除了死循环之外,还有什么问题?

本篇的这个问题是一个开放性问题,HashMap 除了死循环之外,还有其他什么问题?总体来说 HashMap 的所有“问题”,都是因为使用(HashMap)不当才导致的,这些问题大致可以分为两类:程序问题:比如 HashMap 在 JDK 1.7 中,并发插入时可能会发生死循环或数据覆盖的问题。 业务问题:比如 HashMap 无序性造成查询结果和预期结果不相符的问题。接下来我们一个一个来看。1.死循环问题死循环问题发生在 JDK 1.7 版本中,形成的原因是 JDK 1.7 HashMap

2022-03-29 15:23:41 100

转载 阿里二面:基于Redis实现延时队列服务

一、背景在业务发展过程中,会出现一些需要延时处理的场景,比如:订单下单之后超过30分钟用户未支付,需要取消订单 订单一些评论,如果48h用户未对商家评论,系统会自动产生一条默认评论 点我达订单下单后,超过一定时间订单未派出,需要超时取消订单等。。处理这类需求,比较直接简单的方式就是定时任务轮训扫表。这种处理方式在数据量不大的场景下是完全没问题,但是当数据量大的时候高频的轮训数据库就会比较的耗资源,导致数据库的慢查或者查询超时。所以在处理这类需求的时候,采用了延时队列来完成。二、几种延时队列

2022-03-29 15:19:16 103

转载 跟字节聊了下四层代理和七层代理,我人傻掉了

日常与大佬沟通或看文章,时不时总会遇到两个概念“四层代理负载均衡”和“七层代理负载均衡”,那么,所谓的四层代理和七层代理分别指的是什么?又在什么场景下用到呢?这篇文章就带大家聊聊这方面的知识点。OSI七层模型要聊几层代理,需要先看一下网络分层,在之前的文章中也提到,标准的七层网络分层,也就是OSI七层模型。TCP/IP五层模型和TCP/IP四层模型是从OSI七层优化而来。这里所谈的四层代理和七层代理,便是基于OSI七层模型来划分的。OSI七层模型从下往上看,第四层为传输层、第七层

2022-03-29 15:15:36 446

转载 Redis 中的持久化技术《Redis设计与实现》

本篇将介绍 Redis 中的持久化技术,主要有两种: RDB持久化 和 AOF持久化;1、RDB 持久化1.1 RDB 文件的创建与载入Redis使用 SAVE 和 BGSAVE 命令生成 RDB 文件;SAVE :会阻塞 Redis 服务器进程,直到 RDB 文件创建完毕为止,阻塞期间服务器不能处理任何命令请求;BGSAVE :会派生一个子进程,由子进程负责创建 RDB 文件,父进程继续处理命令请求。BGSAVE 执行期间,会发生以下特殊情况:在BGSAVE 命令执行期间,客户端发送 SA

2022-03-29 15:10:57 62

转载 Redis布隆防击穿实战-如何解决布隆值在被刷新时出现的真空期

大促、抢券、抢红包系统在面临大促时,会面临笔直上升的流量访问趋势。如果流量是“慢慢爬升”,这对系统的考验其实是很一般的。系统最怕的就是笔直上升的流量直线趋势。如下面这种图,直线几乎为90度爬升,每秒超过5,000,8,000甚至几万的并发。此时市面上90%的系统都顶不住。笔者在近9年的互联网生涯中一直对于流量进行过分析。这种流量里往往真实的业务流量只会占到80%甚至不到,很多大量是一些非正常请求,你们也可以认为是“黑产”流量。因为在大促、抢券、领红包、秒杀时会引来很多“苍蝇”。如我在

2022-03-29 14:47:53 148

转载 问题来了,拔掉网线几秒,再插回去,原本的 TCP 连接还存在吗?

今天,聊一个有趣的问题:拔掉网线几秒,再插回去,原本的 TCP 连接还存在吗?可能有的同学会说,网线都被拔掉了,那说明物理层被断开了,那在上层的传输层理应也会断开,所以原本的 TCP 连接就不会存在的了。就好像, 我们拨打有线电话的时候,如果某一方的电话线被拔了,那么本次通话就彻底断了。真的是这样吗?上面这个逻辑就有问题。问题在于,错误的认为拔掉网线这个动作会影响传输层,事实上并不会影响。实际上,TCP 连接在 Linux 内核中是一个名为 struct socket 的结构体,该结构体的内

2022-03-29 14:45:10 149

转载 给面试加点硬菜:延迟任务场景,该如何提高吞吐量和时效性

一、前言不卷了,能用就行!哈哈哈,说好的不卷了,能凑活用就行了。但每次接到新需求时都手痒,想结合着上一次的架构设计和落地经验,在这一次需求上在迭代更新,或者找到完全颠覆之前的更优方案。卷完代码的那一刻总是神清气爽其实大部分喜欢写代码的一类纯粹码农,都是比较卷的,就比如一个需求在实现上是能用大概是P5、如果这个做出来的功能不只是能用还非常好用是P6、除了好用还凝练共性需求开发成通用的组件服务是P7。每一个成长过来的码农,都是在造轮子的路上一次次验证自己的想法和加以实践,绝对不是一篇篇的八股文就能累

2022-03-29 14:42:01 186

转载 Nginx 从安装到高可用,一篇了解

一、Nginx安装1、去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本2、上传nginx到linux系统3、安装依赖环境(1)安装gcc环境yum install gcc-c++(2)安装PCRE库,用于解析正则表达式yum install -y pcre pcre-devel(3)zlib压缩和解压缩依赖yum install -y zlib zlib-devel(4)SSL 安全的加密的套接字协议层,用于HT

2022-03-29 14:30:13 66

转载 RocketMQ在存储架构上的极致追求

内容导读:MQ作为一款中间件,就需要承载全公司所有业务系统使用需求,并高效稳定运行。因此,MQ对本身运行效率有着非常苛刻的诉求。为了实现高效率,其实需要很多方面一起配合来完成。比如存储方式、内存使用、负载均衡等等。本文就RocketMQ为了实现高效的读写速率在存储架构上所做的努力,进行下阐述。Part one / 存储结构选型对比为了更方便地进行数据读写,消息在磁盘底层的文件目录设计,都需要关注和解决什么问题呢:•首先,最基本的,是消息原始记录的写入和存储,且速率要快。•其次,要可以区分.

2022-03-29 14:26:52 70

转载 彻底搞懂 select/poll/epoll,就这篇了

之前已经把网络 I/O 相关要点都盘了,还剩 select/poll/epoll 这几个区别没说,这篇就来搞搞它们,并且是从完全理解原理的角度来区分它们。本来是要上源码的,但是感觉没啥必要,身为应用开发者我觉得理解原理就行了,源码反正看了就忘了,理解才是最重要!所以我就尽量避免代码且用大白话来盘一盘这三个玩意。话不多说,发车。小思考首先,我们知道 select/poll/epoll 是用来实现多路复用的,即一个线程利用它们即可 hold 诸多个 socket。按照这个思路,线程不可能被任

2022-03-29 13:21:46 264

转载 为什么微服务一定要有API网关?

微服务不能没有网关,就如同 Java 程序员不能没有IDEA、Eclipse。为什么呢?之所以网关对微服务这么重要,主要有以下几点原因:1. 解决 API 放哪里的问题要知道,采用微服务架构的系统本身是由很多的独立服务单元组合起来的。而客户端要调用系统,则必须通过系统提供的各种对外开放的功能 API 来实现。问题来了,这些 API 要放在哪里呢?直接放在组成系统的服务单元上行不行?比如,在一套电商系统上,关于订单相关的 API ,放在组成订单服务的服务单元上;风控服务的 API ,放在组

2022-03-29 12:57:38 255 2

转载 那些年我们一起优化的SQL

一、背景随着业务不断迭代,系统中出现了较多的SQL慢查。慢查虽不致命,但会让商家感知到系统较慢,影响使用体验。在进行慢查优化过程中,我们积累了一些经验。本文将基于我们的实战经历,讲解工作中比较常见的慢查原因,以及如何去优化。本文讲解基于MySQL 5.7。二、慢查优化本节主要针对常见的慢查进行分类,讲解怎么去优化。2.1 建立索引的 正确姿势数据量较大的时候,如果没有索引,那么数据库只能全表一行一行的遍历判断数据,因此优化SQL的时候,第一步要做的就是确定有没有合适的可用的索引。

2022-03-29 12:55:45 70

转载 kafka怎么做到基于磁盘却比内存还快?

相信看见题目的同学都会很有疑问,甚至不服气,这都是基于个人对于kafka原理的理解,我可以说磁盘顺序写要比内存的随机读快吧。但是说到底,基于性能的优化方面,还是离不开内存的。Kafka作为一个支持大数据量写入写出的消息队列,由于是基于Scala和Java实现的,而Scala和Java均需要在JVM上运行,所以如果是基于内存的方式,即JVM的堆来进行数据存储则需要开辟很大的堆来支持数据读写,从而会导致GC频繁影响性能。考虑到这些因素,kafka是使用磁盘存储数据的。kafka文件存储形式Kafka

2022-03-29 12:52:35 637

转载 美团一面:四种事务隔离级别分别是怎么实现的?

前面其实单独写过事务隔离级别和 MVCC 的文章,但是感觉仍然没法把知识串起来,今天正好借着这道面试题来巩固一下知识体系,虽然文章比较长,不过都是大伙熟悉的知识,帮助大家理清思路而已~老规矩,背诵版在文末。引子众所周知,事务就是要保证一组数据库操作,要么全部成功,要么全部失败。提到事务,你肯定立马脱口而出 ACID(原子性 Atomicity、一致性 Consistency、隔离性 Isolation、持久性 Durability)本文的主旨,就是其中的 Isolation,也就

2022-03-29 12:48:12 203

转载 面试官:Redis分布式锁超时了,任务还没执行完怎么办?

今天主要分享的是面试中常见的redis的一些面试内容。如果你正好需要刚好可以帮你回顾一下,如果不需要可以收藏起来后面用到的时候翻出来回顾。一、背景面试官:你们项目中有使用分布式锁么?我:有使用。面试官:你们使用分布式锁主要是为了干啥?我:多节点并发访问同一份数据的时候,防止造成脏数据。面试官:都有哪些方案实现分布式锁?你们用的是哪一种?我:有基于zk的临时顺序节点的方案,有redis的setnx和指定expire超时时间的方案。面试官:你们是用哪种方案呢?我:用的是red

2022-03-29 12:30:38 2387

转载 Nginx反向代理配置

首先部署实施后端Web服务器1)部署后端Web1服务器后端Web服务器可以简单使用yum方式安装httpd实现Web服务,为了可以看出后端服务器的不同,将两台后端服务器的首页文档内容设置为不同的内容。[root@web1~]# yum-y install httpd[root@web1~]# echo"192.168.2.100">/var/www/html/index.html[root@web1~]# systemctl restart httpd2)部署后端W...

2022-03-29 11:36:07 162

转载 如何将源码包转换成rpm包

1)安装rpm-build软件包[root@proxy ~]# yum -y install rpm-build2)生成rpmbuild目录结构[root@proxy ~]# rpmbuild -ba nginx.spec//制作rpm包,但是没有配置文件会报错,报错也需要敲,会产生所需的目录3)准备工作,将源码软件复制到SOURCES目录[root@proxy ~]# cp lnmp_soft/nginx-1.12.2.tar.gz /root/rpmbui

2022-03-29 11:34:41 1050

转载 systemd服务管理,编写systemd Unit文件

熟悉systemctl常用命令 通过systemd管理shell脚本 通过systemd管理Nginx服务熟悉systemctl常用命令1)命令列表[root@web1 ~]# systemctl #列出所有启动的服务[root@web1 ~]# systemctl status <服务名称> #查看服务状态[root@web1 ~]# systemctl start <服务名

2022-03-29 11:33:14 161

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除