自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL查询慢,除了索引,还有什么原因?

有些查询会查询很多不需要的数据,查询之后,程序中并未使用,这样不但会给MySQL服务器带来额外的负担,还会增加网络开销,也会消耗应用服务器的CPU和内存资源,简而言之,吃多少拿多少。MySQL在查询时,它是由很多子任务组成的,每个子任务都会消耗一定的时间,如果要想优化查询,实际上要优化其子任务,可以消除一些子任务、减少子任务的执行次数、让子任务执行的更快。不必要的额外操作、不必要的重复操作、某些操作执行的太慢都是查询慢的原因,优化查询的目的就是减少和消除这些操作所花费的时间。

2022-10-14 10:07:47 1008 1

原创 读懂多线程,全靠这500多页Java并发多线程源码笔记

并发编程一直作为大厂考察一名 Java 开发工程师的核心指标,Java 并发通常作为互联网中高并应用设计中的基础模块,**掌握和理解并发的底层原理无论在工作中或面试中都大有裨益。**日常开发工作中,很多人在一些业务编码的时候不会接触到高并发,即便用了很多框架也做了线程与线程之间的隔离和划分或在底层屏蔽了并发的实现,但当要开发一些基础的底层组件时,并发编程一定是核心的难点。

2022-10-13 14:20:24 467

原创 全网都在说一个错误的结论

前文我将 product_no 字段设置为了索引,这种二级索引只有一个字段。如果将多个字段组合成一个索引,那么这种二级索引就被称为联合索引。联合索引 ``(product_no, name)` 的 B+Tree 示意图如下:可以看到,联合索引的非叶子节点用两个字段的值作为 B+Tree 的索引值。**联合索引的 B+Tree 是先按 product_no 进行排序,然后再 product_no 相同的情况再按 name 字段排序。**记住这句话,很重要!

2022-10-13 10:04:29 3011 4

原创 Kafka消费者客户端心跳请求

在Consumer客户端启动的时候,就会构建心跳监测线程并启动,例如:kafka-coordinator-heartbeat-thread | consumer0虽然这个时候启动了, 但是run方法里面有个逻辑标志为enabled=false,实际上这个时候并不会发出心跳监测的。它会根据整个消费组的状态变化而变化。

2022-10-11 14:30:42 1668

原创 在阿里云5年后被裁员,历经100场面试,我终于拿到了4个offer

薪资情况的话阿里6,不到3,有点股票。基本offer涨50%左右,基金公司差不多double,统计了一下,一个月面了接近100场,每场1个多小时,每天把项目一遍又一遍的说,口干舌燥行情确实差,成功率30%不到面试流程长,每家4轮起步,最长的面了7轮,甚至有几个面到ceo面Hc少,企业考虑性价比了。

2022-10-10 13:55:30 1211

原创 地图作业平台低代码实战(搭建能力提升)

这篇文章主要介绍了我们通过自定义插件,设置器,组件标准化等一些方式,降低了作业平台内组件间联动,数据处理的难度,实现了让非研发同学可以独立搭建我们小粒度车间的目标。除此之外,我们还在可视化方面开发了for循环组件,if/else 等逻辑组件,意图用可视化组件的方式实现一些基本的模板语法,结合我们开发的车间模板,使得用户只需在页面内完成少量定制逻辑可以实现车间开发。未来我们计划在低代码平台中加入逻辑编排能力,最终实现逻辑代码的图形化表达,进一步支持更为复杂的车间搭建。

2022-10-10 11:03:16 429

原创 两份阿里架构师编写的950页分布式实战笔记,助我躺进阿里

第1章如何设计一款永不重复的高性能分布式发号器第2章可灵活扩展的消息队列框架的设计与实现第3章轻量级的数据库分库分表架构与框架第4章缓存的本质和缓存使用的实践第5章大数据利器之Elasticsearch第6章全面揭秘分布式定时任务第7章RPC服务的发展历程和对比分析第8章Dubbo实战及源码分析第9章高性能网络中间件。

2022-10-09 15:12:11 242

原创 TCP 滑动窗口是个什么东西?这篇讲清楚

在这篇中,我们认真全面地探讨了TCP滑动窗口的原理,从基本定义到源码分析应有尽有。一般而言,准备面试的话不需要到源码那一步的。TCP滑动窗口主要有以下作用:1. TCP在滑动窗口的基础上提供流量控制,防止较快主机致使较慢主机的缓冲区溢出,主要是根据网络情况。

2022-10-09 09:56:42 2261

原创 吃透了阿里P8的RabbitMQ笔记,斩获了2个30K offer

如果截图不是很清晰还请见谅啦,小编已经尽量做到最清晰了!!由于篇幅原因,有需要RabbitMQ核心笔记完整文档的可以【直接点击此处】即可获取!!!

2022-10-08 13:24:12 148

原创 秋招最差面试体验给到华为

分享一位秋招面试华为,结果遇到奇葩主管(计算机产品部门)的同学的求职经历,估计有很多同学在面试的时候也经历过类似的情况。PS:并不是所有的华为主管都是如此!下面是正文。

2022-10-08 10:14:52 295

原创 美团工作7年,精华全在这份学习笔记里了,已成功帮助多位朋友拿到5个大厂Offer

大致内容包括了: Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等大厂面试题等、等技术栈!由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

2022-10-07 14:27:03 605

原创 为什么有HTTP协议,还要有websocket协议

TCP协议本身是全双工的,但我们最常用的HTTP1.1,虽然是基于TCP的协议,但它是半双工的,对于大部分需要服务器主动推送数据到客户端的场景,都不太友好,因此我们需要使用支持全双工的websocket协议。在HTTP1.1里。只要客户端不问,服务端就不答。基于这样的特点,对于登录页面这样的简单场景,可以使用定时轮询或者长轮询的方式实现服务器推送(comet)的效果。对于客户端和服务端之间需要频繁交互的复杂场景,比如网页游戏,都可以考虑使用websocket协议。

2022-10-07 09:54:45 188

原创 面试官:你工作中做过 JVM 调优吗?怎么做的?

输出信息是Timestamp是距离jvm启动的时间,S0、S1、E是新生代的两个Survivor和Eden,O是老年代区,M是Metaspace,CCS使用压缩比例,YGC和YGCT分别是新生代gc的次数和时间,FGC和FGCT分别是老年代gc的次数和时间,GCT是gc的总时间。通过jstack工具输出现在的线程栈,再通过grep命令结合上一步拿到的线程16进制的id定位到这个线程的运行情况,其中jstack后面的7268是第(1)步定位到的进程号,grep后面的是(2)、(3)步定位到的线程号。

2022-10-06 17:03:15 255

原创 最全Spring+Boot+MVC+CloudAlibaba学习手册,你想学的全都有

Spring框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶。Spring更是,很多研发人员把spring看作心目中最好的Java项目,没有之一。**可以毫不夸张的说,Spring重新定义了Java,**所以这是重点也是难点,工作中必须会,面试时肯定考,不过很多人在面试的时候在简历上写着熟悉Spring,但也不过只是会用SSM,在这个基础上做crud罢了,对于Spring全家桶里面其他技术点真的有所掌握吗?Spring官网提供的所有技术模块。

2022-10-06 13:10:10 189

原创 闭关三月,谷歌架构师手写微服务学习笔记,从基础到进阶直接封神

这份学习笔记从微服务的发展由来开始讲解,同时也讲到了微服务的应用落地实践,再到微服务的发展、进阶过程,最后到微服务下一代的发展过程,每个章节总结的都非常详细、非常到位。

2022-09-29 13:49:06 1923

原创 消息队列这么多,用哪个哟?

本次,给大家分享了消息队列是什么、解决什么问题、每种队列的特性,以及怎么结合场景和特性做分析。面试时可以针对每个场景的不同因地制宜选取队列,这样不仅可以展现知识的全面性还可以体现出自己分析问题的能力。而在实际的工作中,我们需要考虑的则更多,比如团队的技术栈、经济成本等情况进行综合分析。只有熟悉每个消息队列的优劣,才能好中取优,选出适合的方案。

2022-09-29 10:06:26 2277

原创 资深腾讯架构师耗时2个月整理的Redis全套学习笔记,涵盖所有核心知识点

Redis 是一个开源、基于内存、使用 C 语言编写的 key-value 数据库,并提供了多种语言的 API。它的数据结构十分丰富,基础数据类型包括:string(字符串)、list(列表,双向链表)、hash(散列,键值对集合)、set(集合,不重复)和 sorted set(有序集合)。主要可以用于数据库、缓存、分布式锁、消息队列等…今天给大家整理了一篇Redis全套笔记,一共十二个章节,

2022-09-28 14:52:45 775

原创 Redis夺命十二问,差点没抗住

要注意,Redis 对 RDB 的执行频率非常重要,因为这会影响快照数据的完整性以及 Redis 的稳定性,所以在 Redis 4.0 后,增加了 AOF 和 RDB 混合的数据持久化机制:把数据以 RDB 的方式写入文件,再将后续的操作命令以 AOF 的格式存入文件,既保证了 Redis 重启速度,又降低数据丢失风险。小二:Redis 数据是存储在内存中的,为了保证 Redis 数据不丢失,那就要把数据从内存存储到磁盘上,以便在服务器重启后还能够从磁盘中恢复原有数据,这就是 Redis 的数据持久化。

2022-09-28 13:18:29 2938

原创 【极力推荐】SpringBoot+SpringCloud全彩指南(终极版)

作为国内一线互联网大厂,其中更是阿里微服务最具代表性的技术之一,很多人只知道。

2022-09-27 10:48:45 368

原创 什么是Kafka消费组协调器

协调器是用于协调多个消费者之间能够正确地工作的一个角色, 比如计算,又或者消费者的加入组与离开组的处理逻辑, 有一点类似Kafka种的控制器的角色。

2022-09-27 09:53:26 1083

原创 百亿级数据 分库分表 后面怎么分页查询?

全局查询法:这种方案最简单,但是随着页码的增加,性能越来越低禁止跳页查询法:这种方案是在业务上更改,不能跳页查询,由于只返回一页数据,性能较高二次查询法:数据精确,在数据分布均衡的情况下适用,查询的数据较少,不会随着翻页增加数据的返回量,性能较高。

2022-09-26 14:39:46 7821 5

原创 知乎疯转上万次的Spring Security手册及源码笔记

Spring是非常流行和成功的Java应用开发框架,SpringSecurity正是Spring家族中的成员。SpringSecurity基于Spring框架,提供了一套Web应用安全性的完整解决方案。正如你可能知道的关于安全方面的两个主要区域是“认证”和“授权”(或者访问控制),一般来说,Web应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分,这两点也是SpringSecurity重要核心功能。

2022-09-26 09:42:25 465

原创 8位阿里P8合著“Dubbo微服务进阶笔记”一经面世,Github上标星93K+

第1章:微服务架构概述(作者秦金卫)本章从软件架构的发展历程讲起,分别对单体架构、SOA架构和微服务架构的演进过程做了深入浅出的讲解,同时深入介绍了微服务架构的特点,希望以宏观的视角为读者打开微服务的大门。第2章:微服务领域驱动设计(作者张逸)。本章介绍了领域驱动设计是什么,常见的领域架构有哪些,如何将领域驱动应用到微服务中,以及如何使用领域驱动进行合理的服务划分等,帮助读者在正式学习微服务前修炼“内功”。第3章: Apache Dubbo框架的原理与实现(作者程超)。

2022-09-25 13:26:27 531

原创 21个MySQL表设计的经验准则

如果没有特殊的理由, 一般都建议将字段定义为NOT NULL。为什么呢?首先,NOT NULL可以防止出现空指针问题。其次,NULL值存储也需要额外的空间的,它也会导致比较运算更为复杂,使优化器难以优化SQL。NULL值有可能会导致索引失效如果将字段默认设置成一个空字符串或常量值并没有什么不同,且都不会影响到应用逻辑, 那就可以将这个字段设置为NOT NULL。

2022-09-25 10:21:29 1909 1

原创 阿里封神之作,500页高并发手册(基础+实战)通俗易懂

高并发是指在同一个时间点,有很多用户同时的访问URL地址,比如:淘宝的双11,双12,就会产生高并发,如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击,再屌丝点的说法就像玩撸啊撸被ADC暴击了一样,那伤害你懂得(如果你看懂了,这个说法说明是正在奔向人生巅峰的屌丝。几乎每个JAVA后端开发程序员,都会在面试时碰到高并发的问题。也是每个程序员必备技能。回答好了这个问题,才能说对JVM、Mysql、Redis等的理解到了一个新的高度。

2022-09-23 20:16:26 267

原创 学完这份“顶级”SpringCloudAlibaba笔记,微服务竟如此简单

系统架构演变微服务架构介绍SpringCloudAlibaba介绍。

2022-09-23 17:00:02 338

原创 不得不服,阿里P8手写“kafka笔记”,啃完面试直通阿里

kafka不仅仅是个消息中间件,同时它是个流平台,这个平台上可以发布和订阅数据流(kafka的流,有一个单独的包stream的处理),并把它们保存起来,进行处理,这个就是kafka作者的设计理念。不装了大神了,上面说的这些都是这位大牛的手写kafka笔记里的,看完之后万分膜拜,所以今天小编也想分享出来给大伙瞧瞧,话不多说,上目录(内容有点多,先来看下,大概了解一下)。注意:如果需要这份下载完整的手写笔记可【查看文末】

2022-09-23 14:25:14 542

原创 深入OAuth2核心源码,阿里P8的Spring Security手册惊呆我了

本文档包含Spring Security Java配置、Spring Security安全防护和源码导读。详细讲解OAuth2实战,并剖析OAuth2核心源码。

2022-09-22 14:48:14 212

原创 腾讯云Java后端15连问(6年经验):分布式+锁+MySQL+JVM+TCP

5.ReentrantLock和 Synchronized 的区别?Synchronized 的原理?B+树和B-树的主要区别?NIO 和多路复用的区别?ReentrantLock的实现原理?14.RocketMQ 如何保证消息的准确性和安全性?4.Future 实现阻塞等待获取结果的原理?工作流程是怎么样的?以上就是腾讯云的面试问题,大家都能答出来几道?7.乐观锁和悲观锁, 让你来写你怎么实现?1.聊聊项目,好的设计,好的代码。12.数据库分库分表的缺点是啥?15.算法题:三个数求和。

2022-09-22 11:29:07 1587

原创 阿里中间件四面:高并发+框架+MQ +MyCat+锁机制+分布式

2.接着上面的问题,延伸到了中间件,kafka、redis、rocketmq、mycat等设计思路和适用场景等。11.分布式锁的方案,redis和zookeeper哪个个好,如果是集群部署,高并发情况下哪个性能更好。聊人生谈理想,HR很ncie,主要交流为什么选择来阿里,未来的打算等,交流挺愉快。6.Java内存分代模型,GC算法,JVM常见的启动参数;4.比较重要的数据结构,如链表,队列,栈的基本理解及大致实现。1.高并发情况下,系统是如何支撑大量的请求的?1.参与的项目,选一个,技术难度在哪里?

2022-09-20 14:08:54 212

原创 这几种常见的 JVM 调优场景,你知道吗?

以上三种严格地说还算不上jvm的调优,只是用了jvm工具把代码中存在的问题找了出来。我们进行jvm的主要目的是尽量减少停顿时间,提高系统的吞吐量。但是如果我们没有对系统进行分析就盲目去设置其中的参数,可能会得到更坏的结果,jvm发展到今天,各种默认的参数可能是实验室的人经过多次的测试来做平衡的,适用大多数的应用场景。如果你认为你的jvm确实有调优的必要,也务必要取样分析,最后还得慢慢多次调节,才有可能得到更优的效果。

2022-09-20 10:55:12 131

原创 看完阿里内部的分布式实战全彩笔记,直接吊打敢提问分布式的面试官

随着互联网的不断发展,互联网企业的业务在飞速变化,推动着系统架构也在不断地发生变化。总体来说,系统架构大致经历了的演变。如今微服务技术越来越成熟,很多企业都采用微服务架构来支撑内部及对外的业务,尤其是在高并发大流量的电商业务场景下,微服务更是企业首选的架构模式。微服务的普及也带来了新的问题。原本单一的应用架构只需要连接一台数据库实例即可完成所有业务操作,业务方法的逻辑在一个事务中即可完成,涉及的所有数据库操作要么全部提交,要么全部不提交,很容易实现数据的一致性。

2022-09-17 16:41:27 88

原创 耗时三个月,多家大厂面试官联合编写这份Java面试手册,看过的都拿到offer了

悄无声息,下半年已经过去快三个月了。一年一度的秋招也来临了,不论过去还是现在Java依旧还是属于高薪行业,但伴随着互联网的寒冬到来,对于Java程序员的技术考核要求也越来越严格,一线大厂纷纷开始裁员,让无数IT从业者人心惶惶,越是这种时候,我们越不能躺平,你不卷等于被淘汰!小编就给大家找到这样一份面试文档,本文档参考了当前主流互联网企业对Java开发人员的技术要求,分析并总结面试中常见的面试考点以提升Java开发人员的技术实力。

2022-09-17 10:57:59 129

原创 零侵入性:一个注解,优雅的实现循环重试功能

在实际工作中,重处理是一个非常常见的场景,比如:•发送消息失败。•调用远程服务失败。•争抢锁失败。这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。

2022-09-16 13:25:49 81

原创 阿里P8推荐的架构师学习路线惨遭泄漏,一夜转发超10W

现在Java内卷严重,由于正常面试无法快速地筛选出人才,就好比一个富豪需要招一个司机,结果来了1000人来应聘,要想快速招聘到合适的人选,那么面试官该怎么办?他只能去问一些比较高端的问题,比如不是本科的淘汰,30岁以上的淘汰,不知道齿轮传动原理的淘汰等等。但是有没有人真正的静下心来去思考,是哪个阶段的内卷严重?你觉得阿里P7内卷吗?不要总是杞人忧天,技术人就是以技术为主,把技术提上来一切都不用担心;如果想要摆脱内卷的束缚,那么这份P8修炼手册你或许该好好地阅读一下,完整PDF版已经整理好,

2022-09-15 15:12:57 125

原创 4 行代码写 3 个NPE异常,服了

公司刚入职了一名中级Java开发,经过一个星期的适应学习,各方面表现还不错,于是分配了一个小的迭代给新人做。需求很简单,把从第三方拉取的数据匹配到自身公司后台设置的渠道后,聚合到一个列表中,批量入库。然而就在匹配的逻辑中,上线后报了个NPE,这是作为一名中级开发不应犯的简单错误,新人被我狠狠的训了,记生产事故一次。在这里l拉不拉米要推荐一款IDEA的插件:SonarLint能动态的帮您检查代码漏洞,像NPE这种代码风险都会给于相应的提示。SonarLint还有一个大名鼎鼎的服务端叫。

2022-09-15 10:21:37 190

原创 (五面蚂蚁金服+四面京东)面经分享:基础+索引+网络+架构设计+分布式+调优

每一次面试都感觉是煎熬,虽然之前看过很多阿里的面经,都说阿里面试官会抓住某一点一直问下去,直到问到你不会为止,但是当第一次亲身体会的时候,还是感觉很煎熬。不过最终的结果还是好的,至少收到了心仪的offer,能在这个疫情期间,大环境不好的情况下找到工作。【文末有福利记得查看】京东一面JVM 内存分哪几个区,每个区的作用是什么?JVM有哪些回收算法,对应的收集器有哪些?GC 的两种判定方法?CMS 收集器与 G1 收集器的特点。hashmap源码问题。

2022-09-14 14:22:37 137

原创 MySQL 崩溃恢复过程分析

MySQL 崩溃也是一次关闭过程,只是比正常关闭着急了一些。正常关闭时,MySQL 会做一系列收尾工作,例如:清理 undo 日志、合并 change buffer 缓冲区等操作。具体会进行哪些收尾工作,取决于系统变量 innodb_fast_shutdown 的配置。崩溃直接就是戛然而止,撂挑子不干了,还没来得及进行的那些收尾工作怎么办?那就只能等待下次启动的时候再干了,这就是本文要介绍的崩溃恢复过程。

2022-09-14 13:41:36 2140

原创 简单几步,实现 Redis 查询 “附近的人”

在实际运用中,当所需存储的对象数量过多时,可通过设置多key(如一个省一个key)的方式对对象集合变相做sharding,避免单集合数量过多。当我们根据输入半径和中心点位置计算出的能够覆盖目标区域的最高等级的九宫格(网格)时,就已经对九宫格外的元素进行了筛除。通过源码分析可以看出Redis内部使用有序集合(zset)保存位置对象,有序集合中每个元素都是一个带位置的对象,元素的score值为其经纬度对应的52位的geohash值。(后续会有详细说明)其中“给定的位置对象”即为用户本人,搜索的对象为其他用户。

2022-09-14 10:05:15 117

原创 外包两年跳进外企和大厂,简历污点不是外包经历,是技术太差

有了这样的群体印象,除非你幸运地赶上了时代红利,或者自身能力超群,否则在找工作时,很难竞争过那些从大厂出来的正式员工。一位网友分享了自己和身边外包员工的经历:他之前是软通的,外包两年,跳槽出来接到过外企、央企和上市公司的offer,选择了外企,在外企两年后,又接到字节的offer,不过拒绝了。有人说,外包情况差异很大,有的项目好,有的项目差,但整体来说,表现好个人能力还是有机会接触不错的项目。网友说,外包因为起点低,学习能力差,韧性低,所以能往上的没几个,不能怪这个岗位,是人本身不行。

2022-09-13 14:18:00 1438 1

空空如也

空空如也

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

TA关注的人

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