![](https://img-blog.csdnimg.cn/2020112322240244.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
面试篇
文章平均质量分 63
面试准备中的一些知识点记录
mind_programmonkey
好久没上线了~,有问题私信哈,每周末尽量抽时间回答问题哈
展开
-
【分布式面试高频】- 04 分布式事务的解决方案(2PC TCC 可靠性消息 最大努力通知)
【分布式面试高频】- 04 分布式事务的解决方案(2PC TCC 可靠性消息 最大努力通知)4.1 网络二将军问题这里给出一个二将军问题的简化版本:一支白军被围困在一个山谷中,山谷的左右两侧是蓝军。困在山谷中的白军人数多于山谷两侧的任意一支蓝军,而少于两支蓝军的之和。若一支蓝军对白军单独发起进攻,则必败无疑;但若两支蓝军同时发起进攻,则可取胜。两只蓝军的总指挥位于山谷左侧,他希望两支蓝军同时发起进攻,这样就要把命令传到山谷右侧的蓝军,以告知发起进攻的具体时间。假设他们只能派遣士兵穿越白军所在的山谷原创 2021-07-08 20:06:41 · 478 阅读 · 2 评论 -
【分布式面试高频】- 03 分布式事务涉及的BASE理论是什么
【分布式面试高频】- 03 分布式事务涉及的BASE理论是什么1、理解强一致性和最终一致性CAP理论告诉我们一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容忍 性(Partition tolerance)这三项中的两项,其中AP在实际应用中较多,AP即舍弃一致性,保证可用性和分区容忍性,但是在实际生产中很多场景都要实现一致性,比如前边我们举的例子主数据库向从数据库同步数据,即使不要 一致性,但是最终也要将数据同步成功来保证数据一致,这种一致性和原创 2021-07-08 18:57:52 · 179 阅读 · 0 评论 -
【分布式面试高频】- 02 分布式事务涉及的CAP理论是什么
【分布式面试高频】- 02 分布式事务涉及的CAP理论是什么?我们了解到了分布式事务的基础概念。与本地事务不同的是,分布式系统之所以叫分布式,是因为提供服务的各个节点分布在不同机器上,相互之间通过网络交互。不能因为有一点网络问题就导致整个系统无法提供服务,网络因素成为了分布式事务的考量标准之一。因此,分布式事务需要更进一步的理论支持,接下来,我 们先来学习一下分布式事务的CAP理论。2.1 CAP理论CAP是 Consistency、Availability、Partition tolerance原创 2021-07-08 18:51:03 · 188 阅读 · 0 评论 -
【分布式面试高频】- 01 分布式事务涉及的基本概念
【分布式面试高频】- 01 分布式事务涉及的基本概念1.1 什么是事务什么是事务?举个生活中的例子:你去小卖铺买东西,“一手交钱,一手交货”就是一个事务的例子,交钱和交货必 须全部成功,事务才算成功,任一个活动失败,事务将撤销所有已成功的活动。 明白上述例子,再来看事务的定义:事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。1.2 本地事务在计算机系统中,更多的是通过关系型数据库来控制事务,这是利用数据库本身的事务特性来实现的,因此叫数据 库事务,由原创 2021-07-08 17:22:15 · 155 阅读 · 0 评论 -
【网络面试高频】- SSL/TLS四次握手过程是怎么样的?
【网络面试高频】- SSL/TLS四次握手过程是怎么样的?SSL/TLS四次握手过程SSL(Secure Socket Layer 安全套接层)是基于 HTTPS 下的一个协议加密层,最初是由网景公司(Netscape)研发,后被 IETF(The Internet Engineering Task Force - 互联网工程任务组)标准化后写入(RFC:Request For Comments 请求注释),RFC 里包含了很多互联网技术的规范。起初是因为 HTTP 在传输数据时使用的是明文(虽然说原创 2021-07-01 10:23:51 · 1633 阅读 · 3 评论 -
【面试高频】- 谈谈final,finally和finalize有什么不同?
谈谈final,finally和finalize有什么不同final可以用来修饰类、方法、变量,分别有不同的意义。final修饰的class代表不可以被继承扩展。final修饰的变量是不可以修改的,而final修饰的方法也是不可以重写的。finally则是Java保证重点代码一定要被执行的一种机制。我们可以执行try-finally或者try-catch-finally来进行类似关闭JDBC连接、保证unlock锁等动作。finalize是基础类java.lang.Object的一个方法,它的设计目的原创 2021-07-01 09:55:25 · 154 阅读 · 0 评论 -
【面试高频】- NoClassDefFoundError和ClassNotFoundException有什么区别?
【面试高频】- NoClassDefFoundError和ClassNotFoundException有什么区别?NoClassDefFoundError是一个错误(Error),而ClassNOtFoundException是一个异常,在Java中对于错误和异常的处理是不同的,我们可以从异常中恢复程序但却不应该尝试从错误中恢复程序。ClassNotFoundException的产生原因主要是:Java支持使用反射方式在运行时动态加载类,例如使用Class.forName方法来动态地加载类时,可以将类转载 2021-07-01 09:45:02 · 160 阅读 · 0 评论 -
【面试篇】- CPU上下文切换到底是什么意思?进程上下文,线程上下文以及中断上下文切换是什么呢
【面试篇】- CPU上下文切换到底是什么意思?CPU上下文切换进程在竞争 CPU 的时候并没有真正运行,为什么还会导致系统的负载升高呢?CPU 上下文切换就是罪魁祸首。我们都知道,Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同时运行的错觉。而在每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好 CPU 寄存器和程原创 2021-06-30 22:01:18 · 693 阅读 · 1 评论 -
【Java锁体系】Disruptor是什么?什么是Disruptor?
【Java锁体系】Disruptor是什么1.Disruptor是什么?Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的Duke大奖。目前,包括Apache Storm、Camel、Log原创 2021-06-30 16:41:06 · 637 阅读 · 0 评论 -
【多线程高并发】伪共享是什么?什么是伪共享?
【多线程高并发】伪共享是什么?什么是伪共享?1.CPU架构下图是计算的基本结构。L1、L2、L3分别表示一级缓存、二级缓存、三级缓存,越靠近CPU的缓存,速度越快,容量也越小。所以L1缓存很小但很快,并且紧靠着在使用它的CPU内核;L2大一些,也慢一些,并且仍然只能被一个单独的CPU核使用;L3更大、更慢,并且被单个插槽上的所有CPU核共享;最后是主存,由全部插槽上的所有CPU核共享。级别越小的缓存,越接近CPU, 意味着速度越快且容量越少。L1是最接近CPU的,它容量最小,速度最快,每个核上都有原创 2021-06-30 16:40:01 · 547 阅读 · 0 评论 -
【面试高频题】CMS垃圾收集器是如何工作的?
CMS全称 Concurrent Mark Sweep,是一款并发的、使用标记-清除算法的垃圾回收器,以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器,对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。CMS的基础算法是:标记—清除。它的过程可以分为以下6个步骤:初始标记(STW initial mark)并发标记(Concurrent marking)并发预清理(Concurrent precleaning)重新标记(STW remark)并发清理(Concurrent swee原创 2021-06-29 16:35:20 · 378 阅读 · 0 评论 -
【面试高频】- ThreadLocal的使用场景以及使用方式是怎么样的
【面试高频】- ThreadLocal的使用场景以及使用方式是怎么样的1 两大使用场景-ThreadLocal的用途典型场景1:每个线程需要一个独享的对象(通常是工具类,典型需要使用的类有SimpleDateFormat和Random)典型场景2:每个线程内需要保存全局变量(例如在拦截器中获取用户信息),可以让不同方法直接使用,避免参数传递的麻烦。2 典型场景1:每个线程需要一个独享的对象每个Thread内有自己的实例副本,不共享;举例:SimpleDateFormat。(当多个线程共用这样原创 2021-06-25 14:46:15 · 1019 阅读 · 1 评论 -
【面试篇】- Redis与MySQL双写一致性如何保证呢
Redis与MySQL双写一致性如何保证呢1 什么是一致性?一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。强一致性: 这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验性好,但实现起来往往对系统的性能影响大;弱一致性: 这种一致性级别约束了系统在写入成功后,不承诺立即可以读到写入的值,也不承诺多久之后数据能够达到一致,但会尽可能地保证到某个时间级别(比如秒级别)后,数据能够达到一致状态;最终一致性: 最终一致性是弱一致性的一个特例原创 2021-06-25 14:42:36 · 413 阅读 · 1 评论 -
【Redis面试】- Redis的加锁策略
Redis的加锁策略(高频)Redis的加锁命令分别是INCR, SETNX, SET.(1)第一种锁命令:INCR这种加锁的思路是, key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作进行加一。然后其它用户在执行 INCR 操作进行加一时,如果返回的数大于 1 ,说明这个锁正在被使用当中。1、 客户端A请求服务器获取key的值为1表示获取了锁2、 客户端B也去请求服务器获取key的值为2表示获取锁失败3、 客户端A执行代码完成,删除锁4、 客户端B在等待一段原创 2021-06-25 14:32:33 · 165 阅读 · 0 评论 -
【面试篇】- 什么是索引?主键,唯一性索引,单列索引,复合索引,聚簇索引和非聚簇索引都有什么区别呢?
什么是索引?主键,唯一性索引,单列索引,复合索引,聚簇索引和非聚簇索引都有什么区别呢?索引数据库只做两件事情:存储数据、检索数据。而索引是在你存储的数据之外,额外保存一些路标,以减少检索数据的时间。所以索引是主数据衍生的附加结构。一张表可以建立任意多个索引,每个索引可以是任意多个字段的组合。索引可能会提高查询速度(如果查询时使用了索引),但一定会减慢写入速度,因为每次写入时都需要更新索引,所以索引只应该加在经常需要搜索的列上,不要加在写多读少的列上。单列索引与复合索引只包含一个字段的索引叫做 单列原创 2021-06-24 22:13:38 · 474 阅读 · 0 评论 -
【面试篇】-count(*),count(常量),count(col_name)这三者有什么区别?如何查询表的总行数
count(*),count(常量),count(col_name)这三者有什么区别?如何查询表的总行数(1)COUNT(列名) COUNT(1)和COUNT(*)之间的区别COUNT(列名)、 COUNT(常量) 和 COUNT(*)这三种语法中,expr分别是列名、 常量 和 *。COUNT(列名)表示的是查询符合条件的列的值不为NULL的行数。COUNT(常量) 和 COUNT(\*)表示的是直接查询符合条件的数据库表的行数。除了查询得到结果集有区别之外,COUNT(*)相比COUNT(原创 2021-06-24 22:12:43 · 295 阅读 · 0 评论 -
【面试篇】- Mysql的多表查询了解吗?
【面试篇】- Mysql的多表查询了解吗?连接查询内连接查询外连接查询左连接右连接联合查询子查询带in关键字的子查询带比较运算符的子查询带exists的子查询带any关键字的子查询带all关键字的子查询(1)连接查询连接查询的意义: 在用户查看数据的时候,需要显示的数据来自多张表.a.内连接查询当两个表中存在相同意义的字段的时候,就可以通过该字段来连接查询这两个表,当该字段的值相同时就可以查出该记录。select a.id,a.name,a.sex,b原创 2021-06-24 22:11:39 · 172 阅读 · 0 评论 -
【面试篇】Java自带的线上问题排查工具
【面试篇】Java自带的线上问题排查工具(1)jps命令 来查看虚拟机进程状态工具jps是Java提供的一个显示当前所有Java进程的pid的命令,适合查看当前Java进程的一些简单情况。类似于ps -ef | grep java$>jps23991 jar(2)jinfo来查看jvm参数信息的工具示例:查看堆栈大小check检查,是否符合预期。jinfo --flags pid(3)jstat:查看虚拟机各种运算状态jstat -gcutil pids0: 新生代surv原创 2021-06-24 21:50:18 · 289 阅读 · 1 评论 -
【面试篇】- Linux的零拷贝技术是什么样的?
【面试篇】- Linux的零拷贝技术是什么样的?1. 术语零拷贝“零拷贝”中的“拷贝”是操作系统在I/O操作中,将数据从一个内存区域复制到另外一个内存区域。而“零”并不是0次复制,更多是指在用户态和内核态之间的复制是0次。CPU COPY通过计算机的组成原理我们知道, 内存的读写操作是需要CPU的协调数据总线,地址总线和控制总线来完成的因此在"拷贝"发生的时候,往往需要CPU暂停现有的处理逻辑,来协助内存的读写.这种我们称为CPU COPYcpu copy不但占用了CPU资源,还占用了总线的带原创 2021-06-24 21:47:43 · 190 阅读 · 1 评论 -
【面试篇】- 线程和协程的区别是什么?
1.什么是进程,什么是线程?进程就是应用程序的启动实例。比如我们运行一个游戏,打开一个软件,就是开启了一个进程。线程从属于进程,是程序的实际执行者。一个进程至少包含一个主线程,也可以有更多的子线程。进程是资源分配的基本单位,线程是操作系统调度的基本单位。而无论是进程还是线程,都是由操作系统所管理的,其Java中线程具有多种状态。而线程不同状态之间的转换是由谁来实现的呢?JVM通过操作系统内核中的TCB(Thread Control Block)模块来改变线程的状态,这一过程需要耗费一定的CPU资源。原创 2021-06-24 21:43:19 · 8908 阅读 · 2 评论 -
【大数据面试】- 04Hadoop分布式集群资源管理器-YARN
集群资源管理器-YARN一、Hadoop yarn简介Apache YARN (Yet Another Resource Negotiator) 是 hadoop 2.0 引入的集群资源管理系统。用户可以将各种服务框架部署在 YARN 上,由 YARN 进行统一地管理和资源分配。二、YARN架构3.1 ResourceManagerResourceManager 通常在独立的机器上以后台进程的形式运行,它是整个集群资源的主要协调者和管理者。 ResourceManager 负责给用户提交的所有原创 2021-06-22 20:48:55 · 262 阅读 · 3 评论 -
03Hadoop分布式计算框架-MapReduce
分布式计算框架——MapReduce一、MapReduce概述Hadoop MapReduce 是一个分布式计算框架,用于编写批处理应用程序。编写好的程序可以提交到Hadoop 集群上用于并行处理大规模的数据集。MapReduce 作业通过将输入的数据集拆分为独立的块,这些块由 map 以并行的方式处理,框架对map 的输出进行排序,然后输入到 reduce 中。MapReduce 框架专门用于 <key,value> 键值对处理,它将作业的输入视为一组 <key,value>原创 2021-06-22 20:47:43 · 192 阅读 · 2 评论 -
【大数据面试】- 02Hadoop分布式文件系统-HDFS
Hadoop分布式文件系统-HDFS一、介绍HDFS (Hadoop Distributed File System)是 Hadoop 下的分布式文件系统,具有高容错、高吞吐量等特性,可以部署在低成本的硬件上。二、HDFS设计原理HDFS 遵循主/从架构,由单个 NameNode(NN) 和多个 DataNode(DN) 组成:NameNode : 负责执行有关 文件系统命名空间 的操作,例如打开,关闭、重命名文件和目录等。它同时还负责集群元数据的存储,记录着文件中各个数据块的位置信息。Da原创 2021-06-22 20:44:46 · 203 阅读 · 3 评论 -
【大数据面试】- 01大数据处理流程是怎么样呢
大数据处理流程上图是一个简化的大数据处理流程图,大数据处理的主要流程包括数据收集、数据存储、数据处理、数据应用等主要环节。1.数据收集大数据处理的第一步是数据的收集。现在的中大型项目通常采用微服务架构进行分布式部署,所以数据的采集需要在多台服务器上进行,且采集过程不能影响正常业务的开展。基于这种需求,就衍生了多种日志收集工具,如 Flume 、Logstash、Kibana 等,它们都能通过简单的配置完成复杂的数据收集和数据聚合。2.数据存储收集到数据后,下一个问题就是:数据该如何进行存储?通常原创 2021-06-22 20:40:01 · 644 阅读 · 0 评论 -
【Java面试高频】- java的enum(枚举)和普通类有什么区别,能否实现接口
枚举类和普通类的区别是什么:a. 使用enum定义的枚举类默认继承了java.lang.Enum类;b. 枚举类的构造器只能使用private访问控制符;c. 枚举类的所有实例必须在枚举类中显式列出(, 分隔 ;结尾)。列出的实例系统会自动添加public static final修饰;interface info{ void show();}//枚举类enum Season1 implements info{ SPRING("春天", "春暖花开"){ public voi原创 2021-05-23 20:33:39 · 846 阅读 · 0 评论 -
【Java线程高频】- java线程池怎么做到复用的?
【Java线程高频】- java线程池怎么做到复用的?首先来看下线程池的执行线程的流程:首先会先判断线程池的状态,即是否在运行状态,若线程为非运行状态 ,则会拒绝;接下来会去判断线程数是否小于核心线程数,若小于核心线程数,则会新建工作线程并执行任务,随着任务的增多,线程数会慢慢增加至核心线程数;如果此时还有任务提交,就会判断阻塞队列workQueue是否已满,若没满,则会将任务放入阻塞队列中,等待工作工作线程获得并执行,如果任务提交非常多,会使得阻塞队列达到上限,会去判断线程数是否小于最大线程数原创 2021-05-23 20:32:49 · 325 阅读 · 3 评论 -
【Java线程高频】- threadlocal的使用场景,底层实现
【Java线程高频】- threadlocal的使用场景,底层实现场景1: ThreadLocal用作保存每个线程独享的对象,为每个线程都创建一个副本,这样每个线程都可以修改字节所拥有的副本,而不会影响其它线程的副本,确保了线程安全。**场景2:**ThreadLocal用作每个线程内需要独立保存信息,以便其它方法更方便地获取该信息的场景。每个线程获取到信息可能是不一样的,前面执行的方法保存了信息后,后续方法可以通过ThreadLoal直接获取到,避免了传参。类似于全局变量的概念。比如: 用Thead原创 2021-05-23 20:31:58 · 202 阅读 · 0 评论 -
【Java线程高频】- 为什么用多线程模型而不用IO多路复用模型(区别)
【Java线程高频】- 为什么用多线程模型而不用IO多路复用模型(区别)(1)场景对于通信模型来说,有服务器-客户端,也有点对点或者广播等方式;对于网络来演,最常用的模型就是服务器-客户端,客户端主动发起请求,服务端接收请求并给与响应。(request-response)当然根据请求/响应的场景不一样,服务器有不一样的名称。获取Web页面的,称之为Web服务器,使用的是http协议;获取文件的,称之为FTP服务器,使用ftp协议;或者可以自定义应用协议,定制一个专用服务器,无论是何种应用层协议原创 2021-05-23 20:30:44 · 336 阅读 · 0 评论 -
【Mysql面试高频】- Mysql索引中 hash索引和B+索引的时间复杂度
【Mysql面试高频】- Mysql索引中 hash索引和B+索引的时间复杂度Hash索引在不存在hash碰撞的情况下,只需一次读取,查询复杂度为O(1),比B+树快;但是Hash索引是是无序的,所以只适用于等值查询,而不能用于范围查询,自然也不具备排序性。根据hash索引查询出来的数据,还有再次进行排序;B+树索引的复杂度等于树的高度,一般为3-5次IO。但是B+树叶子结点上的数据是排过序的,因此可以作用域范围查询。此外在数据库中的多列查询中,只能用B+树索引,数据在B+树的哪个结点上,只取决于原创 2021-05-23 20:29:26 · 899 阅读 · 3 评论 -
【Java容器】- HashMap的遍历方式
【Java容器】- HashMap的遍历方式第一种:遍历HashMap的entrySet键值对集合 public static void main(String[] args) { // 创建一个key和value均为String的Map集合 Map<String, String> map = new HashMap<String, String>(); map.put("1", "11"); map.put("2"原创 2021-05-23 20:28:36 · 140 阅读 · 0 评论 -
【Mybatis面试高频】- mybatis的id能否重复,命名空间能否重复,命名空间的id能否重复?
【Mybatis面试高频】- mybatis的id能否重复,命名空间能否重复,命名空间的id能否重复?要解释该问题,从另外一个问题来理解MyBatis不同映射文件中的id是否可以重复?可以重复,但是需要映射文件的namespace不同;不同的XML映射文件,如果配置了namespace, 那么id可以重复;如果没有配置namespace, 那么id不能重复;原因就是namespace+id是作为Map<String,MapperStatement>的key使用的,如果没有namespa原创 2021-05-23 20:27:52 · 3150 阅读 · 2 评论 -
【Mysql面试高频】- drop、delete、truncate的区别,是否是DML或者DDL的,能否回滚
【Mysql面试高频】- drop、delete、truncate的区别,是否是DML或者DDL的,能否回滚DML(Data Manipulation)数据库操作语言,即实现了基本的“增删改查”操作,包括的关键字有:select 、update、delete、insert、mergeDDL(Data Definition Language)数据定义语言,包括的关键字有:create、alter、drop、truncate。delete操作是DML,执行delete操作时,每次从表中删除一行,并且会将该原创 2021-05-23 20:27:17 · 2225 阅读 · 0 评论 -
【计算机网络高频】- OSI的7层每一层都起着什么作用
【计算机网络高频】- OSI的7层每一层都起着什么作用第一层:物理层通过硬件设备将模拟信息转换为数字信号,即0/1数据流,也被称为比特流;第二层:数据链路层物理层的比特流可以发,但是没有格式会乱七八糟,于是就有了帧。采用帧的数据块进行传输,实现数据有效的差错控制,加入了检错等功能。第三层:网络层物理层和数据链路层保证了可以发数据以及发的数据是否准确,但是对于多台电脑通信,则需要路由,于是出现了IP协议;第四层:传输层比特流的传输过程不可能一直通畅,偶尔出现中断很正常,如原创 2021-05-23 20:26:21 · 450 阅读 · 0 评论 -
【Java面试高频】- Java内存泄露如何排查呢?
【Java面试高频】- Java内存泄露如何排查呢?常的一个误解是是:认为Java的自动垃圾回收完全使他们免于担心内存管理,虽然垃圾收集器做的很好,但即使是最好的程序也完全有可能成为严重破坏内存泄露的牺牲品。当不必要地维护不再需要的对象引用时,会发生内存泄露。实际上有四类内存问题具有相似和重叠的特征,但原因和解决方案各不相同:Performance(性能):通常与过多的对象创建和删除,垃圾收集的长时间延迟,过多的操作系统系统页面交换等相关联;Resource constrains(资源约束):当原创 2021-05-23 20:25:21 · 420 阅读 · 3 评论 -
【Java面试高频】- Java中cpu高如何排查错误呢?
【Java面试高频】- Java中cpu高如何排查错误呢?java线程占用cpu高 于 占用内存高的类似的解决措施a. 通过top命令来查看占用cpu或者内存高的进程【备注:输入大写P表示以cpu从大到小排序,大写M表示以内存大小排序】b.通过对应的cpu找到PID也就是进程对应的pid,然后找到java进程106854这个进程的idc.通过命令top -Hp PID 例如top-Hp 106854。就可以列出该进程下 的所有线程id4.通过输出大写的P查看线程占用cpu最高的原创 2021-05-23 20:21:59 · 256 阅读 · 1 评论 -
【Java面试高频】- Java内存满怎么办,怎么排查?
【Java面试高频】- Java内存满怎么办,怎么排查?(1) 查看涉及到的命令为dstat和top先使用dstat,查询到内存占用最高的 Java应用,但是这台服务器跑了好几个java,具体哪个进程使用top看下资源情况;之后用top命令,-H 显示线程信息 -p指定pid 即top -Hp pid可以查看某个进程下的线程信息。(2)定位线程问题使用ps查看16494的线程情况ps p 16494 -L -o pcpu,pmem,pid,tid,time,tname,cmd可原创 2021-05-23 20:20:07 · 1242 阅读 · 3 评论 -
【Redis高频】- 集群Session共享存储的方案是什么呢?
集群session共享存储方案*一个用户的Session信息如果存储在一个服务器上,那么当负载均衡器把用户的下一个请求转发到另一个服务器上,由于服务器上没有用户的session信息,那么该用户就需要重新进行登录操作;(1)Sticky Session需要配置负载均衡器,使得一个用户的所有请求都路由到同一个服务器上,这样就可以把用户的Session都存放在该服务器上;缺点:当服务器宕机时,将丢失该服务器上的所有Session;(2)Session Replication在服务器之间进行Sessi原创 2021-05-23 20:16:55 · 304 阅读 · 0 评论 -
【Leetcode多线程】- Leetcode1195 交替打印字符串
【多线程Leetcode】- Leetcode1195 交替打印字符串编写一个可以从 1 到 n 输出代表这个数字的字符串的程序,但是:如果这个数字可以被 3 整除,输出 “fizz”。如果这个数字可以被 5 整除,输出 “buzz”。如果这个数字可以同时被 3 和 5 整除,输出 “fizzbuzz”。例如,当 n = 15,输出: 1, 2, fizz, 4, buzz, fizz, 7, 8, fizz, buzz, 11, fizz, 13, 14, fizzbuzz。假设有这么一个类:原创 2021-05-18 15:42:09 · 225 阅读 · 1 评论 -
【Leetcode链表篇】-Leetcode链表相关的题目
链表篇1.Leetcode002 两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.链表的:加法模板记录好进位值/** * Definition for singly-原创 2021-05-16 19:34:52 · 583 阅读 · 0 评论 -
【系统设计】- 分布式唯一ID的生成策略是怎么样的呢?
【系统设计】- 分布式唯一ID的生成策略是怎么样的呢?所谓全局性唯一的ID往往对应是生成唯一记录标识的业务需求;记录标识生成的两大核心需求:全局唯一;趋势有序;(1) 方法一、用数据库的auto_increment来生成这个方案就是利用了Mysql主键的自增auto_increment,默认每次ID加1.优点:此方法使用数据库原有的功能,所以相对简单;能够保证唯一性;能够保证递增性;id 之间的步长是固定且可自定义的缺点:可用性难以保证:数据库常见架构是一主多从+读写分离原创 2021-05-13 13:46:59 · 236 阅读 · 0 评论