面试复习资料
Captain2200
这个作者很懒,什么都没留下…
展开
-
如何通过事务消息保障抢购业务的分布式一致性?
前言在电商领域,抢购和秒杀是非常普遍业务模式,抢购类业务在快速拉升用户流量并为消息者带来实惠的同时,也给电商系统带来了巨大考验。在高并发、大流量的冲击下,系统的性能和稳定性至关重要,任何一个环节出现故障,都会影响整体的购物体验,甚至造成电商系统的大面积崩溃。和电商领域抢购场景极为类似的业务模式还有很多,比如大型赛事和在线教育的报名系统,以及各类购票系统等。针对抢购类业务在技术上带来的挑战,业界有一系列解决方案,通过不同维度来提升系统的性能与稳定性,包括动静分离、定时上架、异步处理、令牌队列、多级缓存转载 2022-01-13 14:57:19 · 287 阅读 · 1 评论 -
面试复习计划
1、spring书本 架构和spring4.02.redis书复习3、zk书本复习4.jvm书复习和 jvm调优资料查看和实践;jvm调优案例查看和学习;博闻强记;5、mysql45讲 学习和查看6、kafka书本学习7、k8s书本自己学习8、多线程编程 复习9、分布式系统架构书本复习和查看10、netty 权威指南和netty实践要仔细看看11、...原创 2021-08-01 15:26:08 · 201 阅读 · 0 评论 -
如何解决分布式系统中的“幽灵复现”?-转载自 阿里技术 微信公众号
阿里妹导读:“幽灵复现”的问题本质属于分布式系统的“第三态”问题,即在网络系统里面,对于一个请求都有三种返回结果:成功,失败,超时未知。对于超时未知,服务端对请求命令的处理结果可以是成功或者失败,但必须是两者中之一,不能出现前后不一致情况。1、“幽灵复现”问题我们知道,当前业界有很多分布式一致性复制协议,比如Paxos,Raft,Zab及Paxos的变种协议,被广泛用于实现...转载 2020-03-12 10:06:32 · 373 阅读 · 0 评论 -
rpc核心实现和原理
RPC,即 Remote Procedure Call(远程过程调用),调用远程计算机上的服务,就像调用本地服务一样。 RPC 可以很好的解耦系统,如 WebService 就是一种基于 Http 协议的 RPC。这个 RPC 整体框架如下:8.1.3.2. 关键技术1. 服务发布与订阅:服务端使用 Zookeeper 注册服务地址,客户端从 Zookeeper 获取可用的服务地址。2...原创 2019-12-02 13:59:52 · 1858 阅读 · 0 评论 -
MySQL的学习--触发器
转载自https://www.cnblogs.com/CraryPrimitiveMan/p/4206942.htmlMySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。创建触发器在MySQL中,创建触发器语法如下:CREATE TRIGGER trigger_nametrigger_timet...转载 2018-05-09 10:23:43 · 182 阅读 · 0 评论 -
mysql 函数substring_index()
转载自 https://www.cnblogs.com/lijiageng/p/6511334.html函数: 1、从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my_content_t 2、从右开始截取字符串 right(str, length) 说明:ri...转载 2018-04-25 18:00:31 · 940 阅读 · 0 评论 -
步步深入:MySQL架构总览->查询执行流程->SQL解析顺序
转载自 https://www.cnblogs.com/annsshadow/p/5037667.html前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识。 一、MySQL架构总览: 架构最好看图,再配上必要的说明文字。 ...转载 2018-07-05 10:20:43 · 264 阅读 · 0 评论 -
java中产生死锁的原因及如何避免
转载自 https://blog.csdn.net/m0_38126177/article/details/785878451. Java中导致死锁的原因Java中死锁最简单的情况是,一个线程T1持有锁L1并且申请获得锁L2,而另一个线程T2持有锁L2并且申请获得锁L1,因为默认的锁申请操作都是阻塞的,所以线程T1和T2永远被阻塞了。导致了死锁。这是最容易理解也是最简单的死锁的形式。但是实际环境中...转载 2018-06-12 23:34:54 · 1135 阅读 · 0 评论 -
LongCache机制与Long等值比较\\\\Integer 中的缓存类IntegerCache
转载自https://www.cnblogs.com/wellmaxwang/p/4422855.htmlhttps://blog.csdn.net/louistech/article/details/51062966一、背景引入近期在开发一个项目的后台时,当项目上线后出现了一个测试环境没有出现的问题:部分用户在提交信息时提示了该信息不属于当前用户。经过对代码的review,发现了出错的代码的开发...转载 2018-06-22 13:49:50 · 888 阅读 · 0 评论 -
Java分布式系统高并发解决方案
对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步 1、同步和异步的区别和联系 所谓同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或...转载 2018-04-17 15:08:55 · 3680 阅读 · 1 评论 -
MySQL的or/in/union与索引优化
假设订单业务表结构为:order(oid, date, uid, status, money, time, …)其中:oid,订单ID,主键date,下单日期,有普通索引,管理后台经常按照date查询uid,用户ID,有普通索引,用户查询自己订单status,订单状态,有普通索引,管理后台经常按照status查询money/time,订单金额/时间,被查询字段,无索引…假设订单有三种状态:0已下单...原创 2018-04-04 15:08:29 · 274 阅读 · 0 评论 -
mysql优化学习笔记
优化sql的一般步骤通过show status了解各种sql的执行频率定位执行效率低的sql语句通过explain分析效率低的sql通过show profile分析sql通过trace分析优化器如何选择执行计划确定问题,采取措施优化索引优化措施mysql中使用索引的典型场景匹配全值,条件所有列都在索引中而且是等值匹配匹配值的范围查找,字段必须在索引中匹配最左前缀,复合索引只会根据最左列进行查找仅仅...原创 2018-04-04 15:07:23 · 199 阅读 · 0 评论 -
mysql分析sql语句基础工具 —— explain
转载自 https://segmentfault.com/a/1190000009724144 立即登录[笔记] mysql分析sql语句基础工具 —— explain mysql waterandair 2017年06月18日发布赞 | 0收藏 | 6402 次浏览分析sql语句 explainexplain (sql语句) G;分析结果:id sql语句编号如果是连接查询,表之间是平...转载 2018-04-04 15:06:47 · 2008 阅读 · 0 评论 -
MySQL InnoDB索引介绍及优化
转载自 https://segmentfault.com/a/1190000007445807 一、索引概念索引(index)翻译为一个目录,用于快速定位我们想要找的数据的位置。例如:我们把一个数据库比作一本书,而索引(index)就是书中的目录,此刻要找到书的某个感兴趣的内容,我们一般是不会整本书翻完再去确认该内容在哪里,而是通过书的目录,定位到该内容章节所在页数,最后直接翻到该页面我们来看看在...转载 2018-04-04 15:03:04 · 956 阅读 · 0 评论 -
MyISAM 和InnoDB 的区别.(存储,索引, 事务, 锁)
转载自 https://www.cnblogs.com/bincoding/p/5895706.html MyISAM类型的表强调的是性能,但是不支持事务、及外部键等高级功能。MySQL默认采用的是MyISAM。MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示...原创 2018-04-04 14:45:42 · 234 阅读 · 0 评论 -
Spring事务管理--嵌套事务详解
转载自 https://www.2cto.com/kf/201607/529762.html一、前言最近开发程序的时候,出现数据库自增id跳数字情况,无奈之下dba遍查操作日志,没有delete记录。才开始慢慢来查询事物问题。多久以来欠下的账,今天该还给spring事物。 希望大家有所收获。2016年07月19日22:32:38二、spring嵌套事物1、展示项目代码--简单测springboot...转载 2018-04-10 14:26:54 · 2491 阅读 · 0 评论 -
多线程编程--异步转同步之CountDownLatch
转载自https://blog.csdn.net/vic_fang/article/details/24653477———————————————————————————————————————————————————— 在日常开发中,我们经常会碰到这样的情况:一些异步请求我们需要等到接收到请求后再执行下一步动作,这时我们就需要把异步动作转为同步动作。 java中给我们提供了一...转载 2018-06-22 16:13:32 · 495 阅读 · 0 评论 -
京东面试题:Java中 ++i 的操作是线程安全的么?为什么?如何使其线程安全呢?
转载自https://blog.csdn.net/fansunion/article/details/79625510相关文章你真的了解volatile关键字吗?http://blog.csdn.net/FansUnion/article/details/79495080面试题:为什么最后两行没有运行?http://blog.csdn.net/FansUnion/article/details/7...转载 2018-06-23 11:06:20 · 1546 阅读 · 2 评论 -
GC算法基础
转载自 http://www.wolfbe.com/detail/201609/364.html#摘要:总的来说基本所有的回收器都会关注如下两个方面:找出所有的存活对象;清理掉所有的其它对象——也就是那些被认为是废弃或无用的对象。原文出处:英文原文链接在深入GC算法的实现细节之前,我们最好先来了解下相关术语及背后的基本原理。不同回收器的实现细节各有不同,但总的来说基本所有的回收器都会关注如下两个方...转载 2018-06-26 16:55:36 · 139 阅读 · 0 评论 -
使用Redis bitmaps进行快速、简单、实时统计
转载自 https://www.cnblogs.com/fvsfvs123/p/4293203.htmlgetspool.com的重要统计数据是实时计算的。Redis的bitmap让我们可以实时的进行类似的统计,并且极其节省空间。在模拟1亿2千8百万用户的模拟环境下,在一台MacBookPro上,典型的统计如“日用户数”(dailyunique users) 的时间消耗小于50ms, 占用16...翻译 2018-12-05 19:42:46 · 1513 阅读 · 0 评论 -
Redis随笔Jedis、jedisCluster的使用
转载自 http://www.cnblogs.com/c-xiaohai/p/8376364.html1、Jedis客户端https://redis.io/clients2、Jedis源码包与使用介绍https://github.com/xetorthio/jedis3、项目中使用通过maven引入Jedis的依赖包<dependency> &...转载 2018-11-26 11:22:58 · 3317 阅读 · 0 评论 -
MyBatisPlus注入公共Sql问题
转载自 https://blog.csdn.net/synsdeng/article/details/78354462 同事新建项目运行CRUD时发现MyBatis的Mapper找不到对应方法,该方法为AutoMapper中的公共方法。 在此之前做了一次依赖及配置清理,怀疑是否不小心多删除了什么或是版本变化导致出了问题。把该项目还原就不会出现此问题,间接证明了此猜想。但另外一个...转载 2018-11-22 11:13:02 · 1999 阅读 · 0 评论 -
Java HttpClient使用小结
转载自 https://blog.csdn.net/bhq2010/article/details/9210007httpclient是apache的一个项目:http://hc.apache.org/文档比较完善:http://hc.apache.org/httpcomponents-client-ga/tutorial/html/这里就不啰嗦了,主要是在做demo的时候遇到的一些问...转载 2018-11-14 16:11:08 · 391 阅读 · 0 评论 -
RecursiveTask和RecursiveAction的使用 以及java 8 并行流和顺序流
转载自 https://blog.csdn.net/weixin_41404773/article/details/80733324什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解...转载 2018-11-12 17:22:09 · 808 阅读 · 0 评论 -
XSS跨站脚本攻击在Java开发中防范的方法
转载自 https://www.cnblogs.com/101key/p/3569217.html1. 防堵跨站漏洞,阻止攻击者利用在被攻击网站上发布跨站攻击语句不可以信任用户提交的任何内容,首先代码里对用户输入的地方和变量都需要仔细检查长度和对”<”,”>”,”;”,”’”等字符做过滤;其次任何内容写到页面之前都必须加以encode,避免不小心把html tag 弄出来。这一个层...转载 2018-11-01 10:40:28 · 821 阅读 · 0 评论 -
redis.mecmcached和mongoDB的区别
转载自 https://blog.csdn.net/cleble/article/details/78325527https://segmentfault.com/q/1010000002588088/a-1020000002589415https://www.cnblogs.com/94cool/p/3247307.htmlMemcachedMemcached的优点: Mem...转载 2018-09-02 23:31:08 · 190 阅读 · 0 评论 -
Java多线程学习之wait、notify/notifyAll 详解
转载自https://www.cnblogs.com/moongeek/p/7631447.html1、wait()、notify/notifyAll() 方法是Object的本地final方法,无法被重写。2、wait()使当前线程阻塞,前提是 必须先获得锁,一般配合synchronized 关键字使用,即,一般在synchronized 同步代码块里使用 wait()、notify/n...转载 2018-08-13 16:31:41 · 364 阅读 · 0 评论 -
Java结束线程的三种方法
转载自https://blog.csdn.net/xu__cg/article/details/52831127线程属于一次性消耗品,在执行完run()方法之后线程便会正常结束了,线程结束后便会销毁,不能再次start,只能重新建立新的线程对象,但有时run()方法是永远不会结束的。例如在程序中使用线程进行Socket监听请求,或是其他的需要循环处理的任务。在这种情况下,一般是将这些任务放在一个循...转载 2018-06-28 14:20:38 · 15649 阅读 · 5 评论 -
【MySQL性能优化】MySQL分库分表与水平分割取模案例(三)
转载自 http://chenhaoxiang.cn/2018/02/05/2316/分表分库当项目比较大的时候,基本上都会进行分表分库的后面就讲讲什么时候需要分库,什么时候需要分表什么时候需要分库垂直分割垂直拆分就是要把表按模块划分到不同数据库表中(当然原则还是不破坏第三范式),这种拆分在大型网站的演变过程中是很常见的。当一个网站还在很小的时候,只有小量的人来开发和维护,各模块和表都在一起,当网...转载 2018-06-27 17:11:25 · 791 阅读 · 0 评论 -
【MySQL性能优化】数据库设计三大范式(二)
转载自http://chenhaoxiang.cn/2018/02/04/2158/数据库设计无非遵循的就是减少冗余量,第二点就是遵循三范式第一范式(1NF)确保每一列的原子性也就是如果每一列都满足是不可再分的最小数据单元,则满足第一范式比如id name sex address1 chx 0 湖南长沙在这里,其实地址这个字段是可以再拆分的,拆分成省份,市区。但是,在有的场景下,也可以不分。需要根...转载 2018-06-27 17:10:46 · 300 阅读 · 0 评论 -
【MySQL性能优化】概述与优化方面(一)
转载自 http://chenhaoxiang.cn/2018/02/04/1758/像sql语句如何进行调优,基本上在中高级程序员面试中都有可能会被问到。所以说,了解,或者学习一下如何进行sql调优是必要的。我会关于该sql调优文章出一个系列的博客。与大家一起学下去首先不具体进行介绍,先大体的概括一下,因为答案基本是死的,但是处理方式是活的MySQL性能优化/概述1.数据库的设计目前只要知道三范...转载 2018-06-27 17:10:02 · 176 阅读 · 0 评论 -
几张图轻松理解String.intern()
转载自 https://blog.csdn.net/soonfly/article/details/70147205在翻《深入理解Java虚拟机》的书时,又看到了2-7的 String.intern()返回引用的测试。 其实要搞明白String.intern(),我总结了下面几条规则: 一、new String都是在堆上创建字符串对象。当调用 intern() 方法时,编译器会将字符串添加到常量池...转载 2018-04-09 17:00:18 · 178 阅读 · 0 评论 -
Java 集合SortedSet&SortedMap讲解
转载自 https://blog.csdn.net/u010126792/article/details/62235628这次对java集合框架学习中的两个特殊的接口进行介绍:SortedSet和SortedMap,这两个接口提供排序操作,实现他们的子类都具有接口中定义的功能。Set和Map本身不具备排序功能,提供了SortedMap和SortedSet接口之后可以在提供排序方案的同时,增加更多的...转载 2018-04-09 11:12:52 · 553 阅读 · 0 评论 -
List、Set、Map的区别
转载自 https://www.cnblogs.com/IvesHe/p/6108933.html (图一)1.面试题:你说说collection里面有什么子类。(其实面试的时候听到这个问题的时候,你要知道,面试...转载 2018-04-09 11:00:38 · 112 阅读 · 0 评论 -
MySQL(五)汇总和分组数据
一、汇总数据工作中经常需要汇总数据而不是将它们全部检索出来(实际数据本身:返回实际数据是对时间和处理资源的浪费),这种类型的检索有以下特点:①确定表中的行数(或者满足某个条件或包含某个特定值的行数)②获得表中行组的和③找出表列(或所有行或某些特定的行)的最大值、最小值和平均值聚集函数(aggregate function):运行在行组上,计算和返回单个值的函数(MySQL还支持一些列的标准偏差聚集...原创 2018-03-22 14:20:21 · 594 阅读 · 0 评论 -
MySQL(四)字段及常用函数
一、字段数据库表中的每一行叫做一个“记录”,每一个记录包含这行中的所有信息,但记录在数据库中并没有专门的记录名,常常用它所在的行数表示这是第几个记录。在数据库中存放在表行列交叉处的数据叫做“值”,它是数据库中最基本的存储单元,它的位置要由这个表中的记录和字段来定义。1、字段(filed):与对象或类关联的变量(大多数时候,与列的意思相同);每个字段由若干按照某种界限划分的相同数据类型的数据项组成。...原创 2018-03-22 14:06:04 · 1347 阅读 · 0 评论 -
MySQL(二)数据的检索和过滤
使用频率最高的SQL语句应该就是select语句了,它的用途就是从一个或多个表中检索信息,使用select检索表数据必须给出至少两条信息:想选择什么,以及从什么地方选择 一、检索数据1、检索单个列select column from table;该SQL语句的检索结果将返回表中的所有行,数据没有过滤(过滤将得出结果集的一个子集),也没有排序(如没有明确排序查询结果,则返回数据的顺序没有特殊意义,只...原创 2018-03-22 14:04:41 · 252 阅读 · 0 评论 -
MySQL(三)用正则表达式搜索
正则表达式是用来匹配文本的特殊的串(字符集合),将一个模式(正则表达式)与一个文本串进行比较;所有种类的程序设计语言、文本编辑器、操作系统等都支持正则表达式,正则表达式用正则表达式语言来建立;MySQL仅支持多数正则表达式实现的一个很小的子集; 一、基本字符匹配select column from table where column regexp ‘1000’ order by column;该...原创 2018-03-22 14:03:55 · 268 阅读 · 0 评论 -
java十年技术栈[总结复习用]
转载自 http://www.cnblogs.com/thingk/p/6813045.html以下摘自http://www.tvtv223.com/so/8/default/8.html#36-数据库的分库分表mycatjava技术栈参考了众多资料,这里就不再详细列举了,可以自行去搜索1 java基础:1.1 算法1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序...转载 2018-03-11 23:04:25 · 514 阅读 · 0 评论 -
java虚拟机性能监控调优及原则
转载自 https://www.cnblogs.com/thingk/p/6840585.html摘抄 http://uule.iteye.com/blog/2114697 一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Tenured(年老代)永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)...转载 2018-03-11 22:59:32 · 264 阅读 · 0 评论