自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用了并发工具类库,线程安全就高枕无忧了吗?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在代码审核讨论的时候,我们有时会听到有关线程安全和并发工具的一些片面的观点和结论,比如“把 HashMap 改为 ConcurrentHashMap,就可以解决并发问题了呀”“要不我们试试无锁的 CopyOnWriteArrayList 吧,性能更好”。事实上,这些说法都不太准确。的确,为了方便开发者进行多线程编程,现代编程语言会提供各种并发工具类。但如果我们没有充分了解它们的使用场景、解决的问题,以及最佳实践的话,盲目使用就..

2020-08-27 21:10:28 411

原创 对面新来的阿里架构师:如何利用Kafka分析一个软件的实现?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在一个系统中,模型和接口是相对稳定的部分。但是,同样的模型和接口,如果采用不同的实现,稳定性、可扩展性和性能等诸多方面相差极大。而且,只有了解实现,你才有改动代码的基础。但是,不得不说,“看实现”是一个很大的挑战,因为有无数的细节在那里等着你。所以,在很多团队里,一个新人甚至会用长达几个月的时间去熟悉代码中的这些细节。面对这种情况,我们该怎么办呢?首先,你要记住一件事,你不太可能记住真实项目的所有细节,甚至到你离开项目的那..

2020-08-24 20:52:54 288

原创 如何使用性能分析工具定位SQL执行慢的原因?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在前面的文章中就讲过了查询优化器,知道在查询优化器中会经历逻辑查询优化和物理查询优化。需要注意的是,查询优化器只能在已经确定的情况下(SQL 语句、索引设计、缓冲池大小、查询优化器参数等)决定最优的查询执行计划。但实际上 SQL 执行起来可能还是很慢,那么到底从哪里定位 SQL 查询慢的问题呢?是索引设计的问题?服务器参数配置的问题?还是需要增加缓存的问题呢?今天我们就从性能分析来入手,定位导致 SQL 执行慢的原因。今天的..

2020-08-19 20:36:16 366

原创 阿里架构师细说分布式之集中式结构,愿下次面试不再有分布式

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等云这个话题对我们来说已经非常熟悉了。可以说,云在我们的生活中无处不在,比如我们平时看的视频通常就是放在云上的。当我们要播放一段视频时,请求会先转发到云上,从云上下载数据到本地,然后播放。在这里,你肯定会疑惑,云上资源那么丰富吗,可以存放这么多东西吗?云上的资源确实丰富,因为它可以尽可能地把更多的服务器组织起来,作为一个统一的资源,为多个用户提供服务。这里的重点是,把多个服务器管理起来,作为一个统一的资源提供服务。而如何组织,就是.

2020-08-14 17:47:46 338

原创 详解Linux系统安全:多人共用服务器,如何防止别人干“坏事”?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等本文就讨论一下 Linux 系统和应用安全。我们知道,在开发一个应用的过程中,需要涉及代码、操作系统、网络和数据库等多个方面。所以,只是了解代码安全肯定是不够的,我们还需要了解常见的基础环境和工具中的安全机制,学会通过正确地配置这些安全机制,来提升安全保障。谈到 Linux,我相信你每天都在使用 Linux 进行各种开发和运维操作。但是,大多数情况下,公司不会给每一个员工分配专有的 Linux 服务器,而是多个开发和运维共用一台.

2020-08-11 17:57:58 724

原创 阿里架构师剖析:Redis常用数据类型对应的数据结构

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等本文就带大家一块儿看下,经典数据库 Redis 中的常用数据类型,底层都是用哪种数据结构实现的?Redis数据库介绍Redis 是一种键值(Key-Value)数据库。相对于关系型数据库(比如 MySQL),Redis也被叫作非关系型数据库。像 MySQL 这样的关系型数据库,表的结构比较复杂,会包含很多字段,可以通过 SQL 语句,来实现非常复杂的查询需求。而 Redis 中只包含“键”和“值”两部分,只能通过“键”来查询.

2020-08-06 17:19:54 254

原创 从CRUD到阿里年薪60W+的架构师,他是如何面对职业倦怠?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等成长的途中,我们总会面临很多的困扰与惶惑,这些困扰和彷徨很多都关乎选择,只有了解并认清这类困惑,我们才可能做出最合适的选择。职业生涯的路上,每个人都会碰到职业倦怠期,我也不例外。曾经好几次,我都陷入其中。如今从中摆脱出来后,我就想尝试搞清楚这样一种状态的根源,思考一种方法来缩短它持续的时间,或者说增加它出现的时间间隔。那职业倦怠到底是怎样的一种感受呢?倦怠感1974 年,美国临床心理学家弗罗伊登贝格尔(Herbert J..

2020-08-03 17:32:41 239

原创 阿里架构师浅析设计模式应用:编程框架中的设计模式

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在绝大多数情况下,我们开发应用程序的时候,并不是从头开发的。比如,我们用 Java 开发一个 Web 应用,并不需要自己写代码监听 HTTP 80 端口;不需要处理网络传输的二进制 HTTP 数据包;不需要亲自为每个用户请求分配一个处理线程,而是直接编写一个 Servlet,得到一个HttpRequest 对象进行处理就可以了。我们甚至不需要从这个 HttpRequest 对象中获取请求参数,通过 Controller 就可以直接.

2020-07-30 20:30:38 168

原创 阿里架构师剖析程序运行原理,程序是如何运行又是如何崩溃的?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等软件的核心载体是程序代码,软件开发的主要工作产出也是代码,但是代码被存储在磁盘上本身没有任何价值,软件要想实现价值,代码就必须运行起来。那么代码是如何运行的?在运行中可能会出现什么问题呢?一、程序是如何运行起来的软件被开发出来,是文本格式的代码,这些代码通常不能直接运行,需要使用编译器编译成操作系统或者虚拟机可以运行的代码,即可执行代码,它们都被存储在文件系统中。不管是文本格式的代码还是可执行的代码,都被称为程序,程序是静态的.

2020-07-27 21:18:15 331

原创 程序员也可以“砍”需求吗?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等我们前面讲的任务分解,主要是在讲开发任务的分解。今天我们换个角度,看看需求的分解。是的,需求也要分解。有一次,我和一个做开发的同事聊天,他给我讲了他近期的烦恼。同事:我们现在就是需求太多,开发的人太少,再这么干下去,哪天觉得自己抗不住了,我就拍拍屁股走人。我:你没尝试着砍砍需求?同事:怎么没尝试?产品的人都不同意。这批功能他们都说是关键功能。我:你有没有尝试把需求拆开了再砍呢?同事:还可以这样?同事很惊讶,我一点.

2020-07-24 20:56:25 258

原创 漫谈粗放与精益:编程的两种思路与方式

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等几年前,我给团队负责的整个系统写过一些公共库,有一次同事发现这个库里存在一个Bug,并告诉了我出错的现象。然后我便去修复这个 Bug,最终只修改了一行代码,但发现一上午就这么过去了。一上午只修复了一个 Bug,而且只改了一行代码,到底发生了什么?时间都去哪里了?以前觉得自己写代码很快,怎么后来越来越慢了?我认真地思考了这个问题,开始认识到我的编程方式和习惯在那几年已经慢慢发生了变化,形成了明显的两个阶段的转变。这两个阶段是:.

2020-07-23 21:15:51 236

原创 在被leader说了无数次后,终于潜下心来整理了一下JVM的类加载器

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等前言之前去面试的时候面试官问了我关于关于JVM性能调优的问题,由于自己之前公司的项目里自己没有接触到JVM性能调优的相关问题(感觉这些都是公司架构师考虑的问题),所有面试官问的时候自己一脸懵逼,所有最后的结果当然是凉凉。。,于是,为了查漏补缺,就去学习了一下JVM的相关知识,希望能帮助到大家。正文在学习任何一项新的知识之前,我都会先列出一份学习大纲,然后按照这个学习大纲一步一步的来学习了解,所以学习JVM这个新的技术,我也分.

2020-07-22 20:29:40 135

原创 在面试了阿里、腾讯众多大厂之后,我终明白了为什么需要消息队列

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等消息队列是最古老的中间件之一,从系统之间有通信需求开始,就自然产生了消息队列。但是给消息队列下一个准确的定义却不太容易。我们知道,消息队列的主要功能就是收发消息,但是它的作用不仅仅只是解决应用之间的通信问题这么简单。我们举个例子说明一下消息队列的作用。话说小袁是一家巧克力作坊的老板,生产出美味的巧克力需要三道工序:首先将可可豆磨成可可粉,然后将可可粉加热并加入糖变成巧克力浆,最后将巧克力浆灌入模具,撒上坚果碎,冷却后就是成品巧克.

2020-07-21 20:39:36 365

原创 为什么现在BAT面试必问分布式?阿里大牛带你实战剖析分布式锁

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等为什么要使用分布锁?首先,我先带你认识一下什么是锁。在单机多线程环境中,我们经常遇到多个线程访问同一个共享资源(这里需要注意的是:在很多地方,这种资源会称为临界资源,但在今天这篇文章中,我们统一称之为共享资源)的情况。为了维护数据的一致性,我们需要某种机制来保证只有满足某个条件的线程才能访问资源,不满足条件的线程只能等待,在下一轮竞争中重新满足条件时才能访问资源。这个机制指的是,为了实现分布式互斥,在某个地方做个标记,这个标.

2020-07-20 21:01:20 145

原创 先打好基础,阿里架构师一文带你深入理解JVM内存回收机制

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、垃圾回收发生的区域堆是java创建对象的区域(String对象在常量池中),也是垃圾回收最多的地方。但是除了堆空间还有方法区存在需要回收的垃圾回收方法区废弃的常量在常量池中存在一个字面量A,如果系统中没有一个地方引用`A``,这时候发生垃圾回收,如果有必要这个字面量就会被清理出常量池。注意是如果有必要。比如上一篇文章中引用的例子,就没有回收字符串。无用的类当满足以下条件时,这个类就可以被回收,而不是一定会回收。.

2020-07-16 21:00:42 174

原创 为什么查询数据不多,却慢的离谱,在我请教了隔壁新来的阿里大佬后

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等这篇文章主要记录,造成查询数量不大的情况下,造成查询缓慢的原因,以及相应的解决方法。环境说明:MySQL 版本 5.7.27隔离级别:RR锁等待造成查询速度很慢MDL 锁如开启如下事务:Session A 持有表 t MDL 写锁。Session B 需要 MDL 读锁。这时读写锁互斥,Session B 被阻塞。flush 阻塞flush 操作一般来说很快就能执行完,当通过查询进程状态后,看到被 flus.

2020-07-15 20:59:24 233

原创 为什么Spring技术很强大?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等Java 程序员几乎都了解 Spring。它的 IoC(依赖反转)和 AOP(面向切面编程)功能非常强大、易用。而它背后的字节码生成技术(在运行时,根据需要修改和生成 Java 字节码的技术)就是就是一项重要的支撑技术。Java 字节码能够在 JVM(Java 虚拟机)上解释执行,或即时编译执行。其实,除了Java,JVM 上的 Groovy、Kotlin、Closure、Scala 等很多语言,也都需要生成字节码。另外,pla.

2020-07-14 21:23:16 296

原创 阿里架构师分享丨Java架构设计的重点知识和学习路径(建议收藏)

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等学习架构呢,要掌握的东西有很多,你是不是开始担心自己一辈子都学不完呢?其实,我们也不需要一下子铺开学习所有的架构技能,重要的是把控好学习的节奏,在适当的时间学习适当的内容,我们可以结合实际工作,一步步地成长。所以今天这一讲,我想给你提供一些架构学习的重点方向和路径建议。架构原则汇总在技术架构篇,我针对系统的高可用、高性能、可伸缩和低成本,给你介绍了很多的架构设计原则,不同的原则对应着不同的目标,这里我把这些架构原则和目标汇总成.

2020-07-13 21:53:18 356

原创 Facebook架构师的代码审查之道:学习Facebook真正发挥代码审查的提效作用

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等我见到很多国内公司也在尝试使用代码审查,但是效果很不好,往往流于形式,最常听到的一个负面反馈就是“代码审查浪费时间”。代码审查的成功推行的确不是一件容易的事。今天,我们就一起尝试来解决这个问题。我会从三个方面给出一些建议:第一,在团队内引入代码审查的步骤和方法;第二,成功推进代码审查的关键操作;第三,持续做好代码审查的重要原则。今天的文章较长,我们现在就进入第一个部分,引入代码审查的步骤和方法从我的经验来看,要成.

2020-07-11 21:33:22 356

原创 阿里架构师详解缓存架构:如何减少不必要的计算?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等互联网应用的主要挑战就是在高并发情况下,大量的用户请求到达应用系统服务器,造成了巨大的计算压力。互联网应用的核心解决思路就是采用分布式架构,提供更多的服务器,从而提供更多的计算资源,以应对高并发带来的计算压力及资源消耗。那么有没有办法减少到达服务器的并发请求压力呢?或者请求到达服务器后,有没有办法减少不必要的计算,降低服务器的计算资源消耗,尽快返回计算结果给用户呢?有,解决的核心就是缓存。所谓缓存,就是将需要多次读取的数据暂.

2020-07-09 21:38:53 185

原创 Java程序员想要成功面试?请先要弄懂面试过程

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等面试看能力,上场之前能够了解全局,熟悉细节,才能更有针对性地做足准备,做到心中有数。如果你已经参加过很多次面试了,请想一想,你真的清楚整个招聘过程吗?在你知道的那些环节背后,有什么人在主导,目的是什么,要注意什么,该做什么,不该做什么,以及有什么风险,这些问题你清不清楚呢?今天,我从这些年的经验出发,从一个招聘职位出现,到招聘结束,给你讲讲整个过程都发生了什么、要注意什么。希望你透过面试官的视角,增加认知、充分准备、减少失误,为.

2020-07-08 21:17:19 515

原创 阿里架构师一文详解微内核架构,原来微内核这么简单

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等微内核架构(Microkernel Architecture),也被称为插件化架构(Plug-inArchitecture),是一种面向功能进行拆分的可扩展性架构,通常用于实现基于产品(原文为 product-based,指存在多个版本、需要下载安装才能使用,与 web-based 相对应)的应用。例如 Eclipse 这类 IDE 软件、UNIX 这类操作系统、淘宝 App 这类客户端软件等,也有一些企业将自己的业务系统设计成..

2020-07-07 20:42:45 1903

原创 Kafka Streams与其他流处理平台的差异在哪里?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等近些年来,开源流处理领域涌现出了很多优秀框架。光是在 Apache 基金会孵化的项目,关于流处理的大数据框架就有十几个之多,比如早期的 Apache Samza、ApacheStorm,以及这两年火爆的 Spark 以及 Flink 等。应该说,每个框架都有自己独特的地方,也都有自己的缺陷。面对这众多的流处理框架,我们应该如何选择呢?在本文汇总,我就来梳理几个主流的流处理平台,并重点分析一下 KafkaStreams 与其他流..

2020-07-06 20:28:34 1209

原创 Linux文件系统是怎么工作的?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等磁盘为系统提供了最基本的持久化存储。文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构。那么,磁盘和文件系统是怎么工作的呢?又有哪些指标可以衡量它们的性能呢?索引节点和目录项文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。你要记住最重要的一点,在 Linux 中一切皆文件。不仅普通的文件和目录,就连块设备、套接字、管道等,也都要通过统一的文件系统来管理。为了方便管..

2020-07-05 21:33:37 373

原创 还搞不清楚JVM是怎么处理异常的?这水平,跳槽都没人要

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等文章目录异常的基本概念Java虚拟机是如何捕获异常的?Java 7的Supressed异常以及语法糖总结与实践众所周知,异常处理的两大组成要素是抛出异常和捕获异常。这两大要素共同实现程序控制流的非正常转移。抛出异常可分为显式和隐式两种。显式抛异常的主体是应用程序,它指的是在程序中使用“throw”关键字,手动将异常实例抛出。隐式抛异常的主体则是 Java 虚拟机,它指的是 Java 虚拟机在执行过程中,碰到无法继续执行的异常.

2020-07-02 21:07:25 823

原创 你一定不能错过的Kafka控制器

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等控制器组件(Controller),是 Apache Kafka 的核心组件。它的主要作用是在 ApacheZooKeeper 的帮助下管理和协调整个 Kafka 集群。集群中任意一台 Broker 都能充当控制器的角色,但是,在运行过程中,只能有一个 Broker 成为控制器,行使其管理和协调的职责。换句话说,每个正常运转的 Kafka 集群,在任意时刻都有且只有一个控制器。官网上有个名为 activeController 的 .

2020-07-01 21:03:10 228

原创 阿里架构师亲授:Kafka和RocketMQ的消息复制实现的差异点在哪?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等众所周知,消息队列在收发两端,主要是依靠业务代码,配合请求确认的机制,来保证消息不会丢失的。而在服务端,一般采用持久化和复制的方式来保证不丢消息。把消息复制到多个节点上,不仅可以解决丢消息的问题,还可以保证消息服务的高可用。即使某一个节点宕机了,还可以继续使用其他节点来收发消息。所以大部分生产系统,都会把消息队列配置成集群模式,并开启消息复制,来保证系统的高可用和数据可靠性。今天就和大家聊一下,消息复制需要解决的一些问题,以及.

2020-06-30 21:25:05 352 2

原创 面试官:讲一下什么是负载均衡,什么是轮询策略、随机策略、哈希策略

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等什么是负载均衡?先举个例子吧。以超市收银为例,假设现在只有一个窗口、一个收银员:一般情况下,收银员平均 2 分钟服务一位顾客,10 分钟可以服务 5 位顾客;到周末高峰期时,收银员加快收银,平均 1 分钟服务一位顾客,10 分钟最多服务 10 位顾客,也就是说一个顾客最多等待 10 分钟;逢年过节,顾客数量激增,一下增加到 30 位顾客,如果仍然只有一个窗口和一个收银员,那么所有顾客就只能排队等候了,一个顾客最多需要等待.

2020-06-29 21:20:36 2885

原创 十年前的阿里大牛困惑:我们为什么感觉不到淘宝应用升级时的停机?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等十几年前,我参加阿里巴巴面试的时候,觉得阿里巴巴这样的网站 Web 应用开发简直小菜,因为我之前是做类似 Tomcat 这样的 Web 容器开发的,所以面试的时候信心满满。确实,面试官前面的问题都是关于数据结构、操作系统、设计模式的,也就是我们这个专栏模块一和模块二的内容。我感觉自己回答得还不错,所以更加信心满满。这时候,面试官忽然提了一个问题:我们的 Web 程序每个星期都会发布一个新版本,但是程序要求 7*24 小时可..

2020-06-27 21:36:00 417

原创 Java程序员面试必备的网络编程基本网络概念

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等网络首先熟悉一下, 什么是网络,网络是几乎可以实时相互发送和接收数据的计算机和其他设备的集合。网络通常用线缆连接,数据为转换为电磁波,通过线缆移动。不过,无线网络会通过无线电波传输数据,许多长距离的传输现在会用通过玻璃纤维发送可见光的光纤电缆来完成。网络中的每台机器为一个节点(node)。大多数节点是计算机,但是打印机、路由器、网桥、网关、ATM机也都是节点。每个网络节点都有地址 (address),这是用于唯一标识节点的一个.

2020-06-24 20:51:13 345

原创 面试官:String是值传递还是引用传递

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等把一个String类型的参数传入方法,并在方法内改变了引用的值。 然后在方法外使用这个值,发现这个String还是之前的值,并没有改变。这里要向大家介绍一下,大家都知道java在传参时分为值 传递 和 引用传递 。参数为基本类型时是值传递, 参数为封装类型时是引用传递。例如:基本类型参数public class Test { public static void main(String[] args) { ..

2020-06-23 21:21:36 159

原创 为什么互联网大厂都愿意用Mybatis?MyBatis缓存特性你了解吗?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、缓存简介一般我们在系统中使用缓存技术是为了提升数据查询的效率。当我们从数据库中查询到一批数据后将其放入到混存中(简单理解就是一块内存区域),下次再查询相同数据的时候就直接从缓存中获取数据就行了。这样少了一步和数据库的交互,可以提升查询的效率。但是一个硬币都具有两面性,缓存在带来性能提升的同时也“悄悄”引入了很多问题,比如缓存同步、缓存失效、缓存雪崩等等。当然这些问题不是本文讨论的重点。本文主要讨论MyBatis缓存这个..

2020-06-22 20:31:30 262

原创 如何做好容器化管理?腾讯架构师一篇文章带你吃透 Docker 原理

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、容器的实现原理从本质上,容器其实就是一种沙盒技术。就好像把应用隔离在一个盒子内,使其运行。因为有了盒子边界的存在,应用于应用之间不会相互干扰。并且像集装箱一样,拿来就走,随处运行。其实这就是 PaaS 的理想状态。实现容器的核心,就是要生成限制应用运行时的边界。我们知道,编译后的可执行代码加上数据,叫做程序。而把程序运行起来后,就变成了进程,也就是所谓的应用。如果能在应用启动时,给其加上一个边界,这样不就能实现期待的沙盒..

2020-06-21 20:54:25 367

原创 如何将Redis内存使用量降低一半?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在本文中,我将尝试解释如何将数据占用的存储空间减少50%以上。我们的2.5GB Redis ElastiCache几乎快满了,如果以某种方式达到其极限,我们的系统将开始出现故障。Redis可能会成为瓶颈。基础设定:使用最新版本的Spring Boot,有两个主要依赖项- Spring Boot Web和Spring Data Reactive Redis,Spring Data Reactive Redis将用于连接和使用R.

2020-06-18 16:31:30 318

原创 纯干货丨18个软件开发常见问题及解决策略,你有遇到吗?

本文转载自:纯干货丨18个软件开发常见问题及解决策略,你有遇到吗?No.1每次看这些架构的思想方法的时候,总是和实际的应用没能很好的结合起来,原因是不是架构设计的实践不够?或者是对各种实现的分析和思考太少?我觉得不仅要有架构实践,还要有不同场景的实践。举个例子来说,你平时做企业应用架构,没什么流量,没多少数据,复杂的地方都在业务逻辑,这时候你去看那些讲大数据、讲高并发的文章,很难带入到场景去。还有就是一些架构,不自己搭一遍是很难了解其中的优缺点的,这也是另一个原因。可以考虑有机会自己尝试,把看

2020-06-17 16:26:32 3943

原创 Java技术面试到底要准备哪些面试题?别找了,这个GitHub完美的帮你解决

GitHub地址下午在逛GitHub的时候看到的,觉得里面的内容挺不错的(还在更新中)就随手分享出来对正在面试的朋友应该挺有帮助的,地址就在上面,我只是个搬运工一、校招真题题解二、计算机网络三、HTTP四、操作系统五、Linux六、算法七、剑指 Offer 题解八、Leetcode 题解九、设计模式十、面向对象思想十一、数据库系统原理十二、SQL十三、MySQL十四、Redis十五、Java 虚拟机十六、Java 并发十七、Java 容器

2020-06-16 21:18:32 170

原创 深入理解消息队列:如何实现高性能的异步网络传输?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等异步与同步模型最大的区别是,同步模型会阻塞线程等待资源,而异步模型不会阻塞线程,它是等资源准备好后,再通知业务代码来完成后续的资源处理逻辑。这种异步设计的方法,可以很好地解决 IO 等待的问题。我们开发的绝大多数业务系统,它都是 IO 密集型系统。跟 IO 密集型系统相对的另一种系统叫计算密集型系统。通过这两种系统的名字,估计你也能大概猜出来 IO 密集型系统是什么意思。IO 密集型系统大部分时间都在执行 IO 操作,这个 IO.

2020-06-15 20:45:07 460

原创 如何学习源码?阿里架构师教你一招攻破源码难关

最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub对于很多开源软件来说,如果我们把它作为我们业务系统的重要组成部分之一,真正地用于生产,仅仅知道如何使用是远远不够的,你必须掌握它的实现原理和很多细节,这样才能找到最佳的使用姿势,当你的系统出现问题时,你才有可能基于它的实现原理,再根据一些现象来排查问题原因。掌握这些开源软件的最佳方式就是去学习它的源代码。很多同学跟我说:“我也很想去看一些开源软件的代码,也尝试去看过,但是面对上千个源码文件,几十万行代码,完全.

2020-06-13 21:46:52 257

原创 如何设计一个基础服务?看完这篇文章别再说不会、不懂、不知道

最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub我们知道,落地一个微服务其实并不困难,但要实现一个能够高度复用的共享服务并不容易,在落地过程中,经常会有一系列的问题困扰着我们。我们事先对服务的边界没有进行很好的划分,结果在落地的过程中,大家反复争论具体功能的归属。由于对业务的了解不够深入,我们要么设计不足,导致同一个服务有很多版本;要么服务过度设计,实现了一堆永远用不上的功能。对于落地一个共享服务来说,服务边界的划分和功能的抽象设计是核心。服务边界

2020-06-12 21:23:42 431

原创 这可能是把MyBatis缓存特性讲的最清楚的一篇文章了

最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub一、缓存简介一般我们在系统中使用缓存技术是为了提升数据查询的效率。当我们从数据库中查询到一批数据后将其放入到混存中(简单理解就是一块内存区域),下次再查询相同数据的时候就直接从缓存中获取数据就行了。这样少了一步和数据库的交互,可以提升查询的效率。但是一个硬币都具有两面性,缓存在带来性能提升的同时也“悄悄”引入了很多问题,比如缓存同步、缓存失效、缓存雪崩等等。当然这些问题不是本文讨论的重点。本文主要讨论My

2020-06-11 20:56:12 118

大厂Java面试真题——并发面试专题

大厂Java面试真题分为Java、算法、操作系统、网络、面向对象、数据库、Java、系统设计、工具,本资料属于Java并发面试专题

2020-06-18

空空如也

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

TA关注的人

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