- 博客(12)
- 资源 (12)
- 收藏
- 关注
转载 面试都在问的微服务,一文带你彻底搞懂!
单体式应用程序与微服务相对的另一个概念是传统的「单体式应用程序」( Monolithic application ),单体式应用内部包含了所有需要的服务。而且各个服务功能模块有很强的耦合性,也就是相互依赖彼此,很难拆分和扩容。在座的各位都写过单体程序,给大家举个栗子,刚开始写代码你写helloworld 程序就是单体程序,一个程序包含所有功能,虽然helloworld 功能很简单。单体应用程序的优点开发简洁,功能都在单个程序内部,便于软件设计和开发规划。 容易部署,程序单一不存在分布式集群
2020-06-29 14:58:02 473
转载 【高频 Redis 面试题】Redis 事务是否具备原子性?
一、事务的实现原理一个事务从开始到结束通常会经历以下三个阶段:1、事务开始客户端发送 MULTI 命令,服务器执行 MULTI 命令逻辑。服务器会在客户端状态(redisClient)的 flags 属性打开 REDIS_MULTI 标识,将客户端从非事务状态切换到事务状态。void multiCommand(redisClient *c) { // 不能在事务中嵌套事务 if (c->flags & REDIS_MULTI) { add.
2020-06-28 19:56:36 192
转载 从千万级数据查询来聊一聊索引结构和数据库原理
在日常工作中我们不可避免地会遇到慢SQL问题,比如笔者在之前的公司时会定期收到DBA彪哥发来的Oracle AWR报告,并特别提示我某条sql近阶段执行明显很慢,可能要优化一下等。对于这样的问题通常大家的第一反应就是看看sql是不是写的不合理啊诸如:“避免使用in和not in,否则可能会导致全表扫描”“ 避免在where子句中对字段进行函数操作”等等,还有一种常见的反应就是这个表有没有加索引?绝大部分情况下,加了个索引基本上就搞定了。既然题目是《从千万级数据查询来聊一聊索引结构和数据库原理》,首先就来
2020-06-28 17:15:43 248
转载 五分钟看懂一道中等难度的算法题
今天分享的题目来源于 LeetCode 第 450 号问题:删除二叉搜索树中的节点。虽然它的难度是 中等,但实际上很好理解,请往下看!题目描述给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤: 首先找到需要删除的节点; 如果找到了,删除它。 说明:要求算法时间复杂度为 O(h),h 为树的高度。示例:root.
2020-06-24 15:40:37 542
转载 看完这篇Redis缓存三大问题,保你能和面试官互扯。
日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题。一旦涉及大数据量的需求,如一些商品抢购的情景,或者主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度问题有严重的性能弊端,详细的磁盘读写原理请参考这一片[]。在这一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。为了克
2020-06-24 15:07:01 319
转载 面试官:说一下Zookeeper的ZAB协议?
前言Zab(Zookeeper Atomic Broadcast)是为ZooKeeper协设计的崩溃恢复原子广播协议,它保证zookeeper集群数据的一致性和命令的全局有序性。概念介绍在介绍zab协议之前首先要知道zookeeper相关的几个概念,才能更好的了解zab协议。集群角色Leader:同一时间集群总只允许有一个Leader,提供对客户端的读写功能,负责将数据同步至各个节点; Follower:提供对客户端读功能,写请求则转发给Leader处理,当Leader崩溃失联之后参与L
2020-06-18 14:40:33 378
转载 关于如何破坏单例的几种方式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。是一种创建型设计模式。他的定义为:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式一般体现在类声明中,单例的类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。但是其实,单例并不是完完全全安全的,也是有可能被破坏的。以下,是一次面试现场的还原,之所以会聊到这个话题,是因为面试官问了我很多关于单例模式的问题,我回答的还可以,之
2020-06-18 11:41:35 995 1
转载 面试官真是搞笑!让实现线程安全的单例,又不让使用synchronized!
单例模式,是Java中比较常见的一个设计模式,也是我在面试时经常会问到的一个问题。经过我的初步统计,基本上有60%左右的人可以说出2-4种单例的实现方式,有40%左右的人可以说出5-6种单例的实现方式,只有20%左右的人能够说出7种单例的实现。而只有不到1%的人能够说出7种以上的单例实现。其实,作为面试官,我大多数情况下之所以问单例模式,是因为这个题目可以问到很多知识点。比如线程安全、类加载机制、synchronized的原理、volatile的原理、指令重排与内存屏障、枚举的实现、反射与单
2020-06-11 16:24:15 172
转载 如何避免重复提交?分布式服务的幂等性设计!
来源:https://www.cnblogs.com/QG-whz/p/10372458.html作者:melonstreet为什么需要保证幂等性编程中的“幂等性”是指任意多次执行所产生的影响,与一次执行的影响相同。一个拥有幂等性设计的接口,保证无论一次或多次来调用接口,都能够得到相同的结果。接口的幂等性设计在某些场景下是必需的,例如用户下单的场景。我们知道,服务之间的调用存在三种状态:成功、失败、超时。超时是一种未知的状态:被调服务是否执行成功,这个状态是未知的。上游服务调用下游服务超时.
2020-06-11 15:35:04 298
转载 程序员要搞明白Nginx,这篇应该够了!
来源:https://www.cnblogs.com/wcwnina/p/8728391.html作者:melonstreetNginx的产生没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(UniformResources Identifier)URI或者统一资源定位符(Uniform ResourcesLocator)URL作为沟通依据,通过HTTP协议提供各种网络服务。然而,这些服.
2020-06-10 15:16:47 261
转载 经典面试题:Redis 内存满了怎么办?
来源:https://juejin.im/post/5d674ac2e51d4557ca7fdd70作者:千山qiansanRedis占用内存大小我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。1、通过配置文件配置通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小 //设置Redis最大占用内存大小为100M maxmemo..
2020-06-10 11:53:24 178
转载 面试问我,创建多少个线程合适?我该怎么说
你有一个思想,我有一个思想,我们交换后,一个人就有两个思想If you can NOT explain it simply, you do NOT understand it well enoughimage为什么要使用多线程?防止并发编程出错最好的办法就是不写并发程序image既然多线程编程容易出错,为什么它还经久不衰呢?A:那还用说,肯定在某些方面有特长呗,比如你知道的【它很快,非常快】我也很赞同这个答案,但说的不够具体并发编程适用于什么场景?如果问.
2020-06-09 14:52:24 181
A Byte of Python高清完整版
2018-09-17
Hadoop实战-陆嘉恒(高清完整版)
2018-09-17
git+github+gitserver学习资料
2018-09-17
TortoiseSVN-1.10-x64安装包
2018-08-15
SourceTree2.4.8安装包
2018-08-15
notepad++7.4.2安装包
2018-08-15
heidiSql_9.4版安装包
2018-08-15
gitbash安装包
2018-08-15
python3.6&3.7整合版
2018-08-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人