自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 1200页!历时半年整理出的5个核心笔记:Tomcat+Redis+虚拟机+项目实战

最近跟我的一些读者交流,有一位读者的经历让我记忆深刻: “有一次和大学同学聚会,和几个在BAT的同学聊了聊技术,发现自己在创业公司这几年,完全是吃老本的状态,没有什么机会精进技术,同样是工作了三年,和同学的差距越来越大” 我继续问他,他说真正让他受打击的是这个月的一次面试。 “面的是一个大厂...

2020-04-28 16:27:41 57 0

转载 基于 Spring Cloud 开发的分布式系统,遇到爬虫、接口盗刷怎么办

kk-anti-reptile是,适用于基于spring-boot开发的分布式系统的反爬虫组件。 一、系统要求 基于spring-boot开发(spring-boot1.x, spring-boot2.x均可) 需要使用redis 二、工作流程 kk-anti-reptile使用基于Ser...

2020-06-02 15:31:50 42 0

转载 写那么多年Java,还不知道啥是Java agent 的必须看一下

引言 在本篇文章中,我会通过几个简单的程序来说明 agent 的使用,最后在实战环节我会通过 asm 字节码框架来实现一个小工具,用于在程序运行中采集指定方法的参数和返回值。有关 asm 字节码的内容不是本文的重点,不会过多的阐述,不明白的同学可以自己 google 下。 简介 Java a...

2020-06-01 16:37:45 33 0

转载 JVM:怎么判断对象已经死了?

GC的历史比Java还有久远,我们在思考GC时候需要思考三个问题: 哪些内存需要回收? 什么时候回收? 如何回收? 在Java中程序计数器、虚拟机栈、本地方法栈这三个区域随线程而生,随线程而灭:栈中的栈帧随着方法的调用和退出而有条不紊的进行着入栈和出栈的过程。 每个栈帧分配多少内存在类结...

2020-05-29 19:39:47 13 0

转载 为什么阿里巴巴禁止使用存储过程?

之所以有这个题目,我既不是故意吸引眼球,也不想在本文对存储过程进行教科书般论述。《阿里巴巴Java开发手册》是这样规定的: 再结合我最近项目中遇到的存储过程问题,所以今天我打算来聊一聊这个问题。 这事儿要从去年在武汉出差时一位同事的发问说起,问题是这样的: 我觉得存储过程挺好用的,你为什...

2020-05-27 20:08:36 15 0

转载 干货:使用 Javassist 对字节码操作为 JBoss 实现动态AOP框架

Javassist是一个开源的分析、编辑和创建Java字节码的类库。是由东京工业大学的数学和计算机科学系的 Shigeru Chiba (千叶 滋)所创建的。它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态"AOP"框架...

2020-05-27 16:54:34 30 0

转载 阿里工程师告诉你,怎样用Kafka实现数字孪生的物联网架构

数字孪生(Digital Twin)可以被理解为现实中某些事物(也包括过程或服务)在数字虚拟环境中的表现。在本文中,你将了解到数字孪生在各个行业中所处的优势,以及Apache Kafka、物联网架构和机器学习之间的关系。在实际应用中,Kafka通常被用作中央事件流平台,以那些实时流传感器的数据,构...

2020-05-26 20:38:07 148 0

转载 如何设计一个安全的对外接口?

前言 最近有个项目需要对外提供一个接口,提供公网域名进行访问,而且接口和交易订单有关,所以安全性很重要;这里整理了一下常用的一些安全措施以及具体如何去实现。 安全措施 个人觉得安全措施大体来看主要在两个方面: 一方面就是如何保证数据在传输过程中的安全性; 另一个方面是数据已经到达服务器端...

2020-05-18 16:25:02 139 0

转载 面试官:为什么 Spring Boot 的 jar 可以直接运行?

Spring Boot Loader抽象的一些类 JarLauncher的执行过程 关于自定义的类加载器LaunchedURLClassLoader Spring Boot Loader的作用 SpringBoot提供了一个插件spring-boot-maven-plugin用于把程序打包成...

2020-05-15 21:03:18 94 0

原创 被裁员后:三个月含泪啃完了1111道面试解析,再入职腾讯年薪45万

一个小伙伴最近参加某一线互联网公司的面试,被问到了一些并发相关的问题,看看大家能否答出来: (1)synchronized的CPU原语级别是如何实现的? (2)无锁、偏向锁、轻量级锁、重量级锁有什么差别,升级过程如何? (3)线程间通信,同机器进程间通信,跨机器进程间通信,各有什么方法? ...

2020-05-14 15:01:16 137 0

转载 面试必问:如何检测并避免 Java 中的死锁?

经典但核心Java面试问题之一。 如果你没有参与过多线程并发 Java 应用程序的编码,你可能会失败。 如何避免 Java 线程死锁? 这是Java面试的热门问题之一, 也是多线程的编程中的重口味之一, 主要在招高级程序员时容易被问到, 且有很多后续问题。 尽管问题看起来非常基本, 但大多...

2020-05-13 21:23:31 287 0

转载 因用了Insert into select语句,同事被开除了!

某天 xxx 接到一个需求,需要将表 A 的数据迁移到表 B 中去做一个备份。他本想通过程序先查询查出来然后批量插入,但 xxx 觉得这样有点慢,需要耗费大量的网络 I/O,决定采取别的方法进行实现。 通过在某度的海洋里遨游,他发现了可以使用 insert into select 实现,这样就可...

2020-05-12 16:17:01 64 0

转载 如何优雅地中止线程?

错误的线程中止 - stop 首先来讲解一个错误的方式来中止线程 —stop:中止线程,并且清除监控器锁的信息,但是可能导致线程安全问题,JDK 不建议使用,类似的方法还有 destory,由于 JDK 从未实现该方法,在这里就不介绍了。 接下来通过一段程序来讲解为什么stop会导致线程安全问...

2020-05-11 16:29:57 36 0

转载 很全的Tomcat实战调优方案,提升性能必备

Tomcat的默认配置,性能并不是最优的,我们可以通过优化tomcat以此来提高网站的并发能力。提高Tomcat的性能可以分为两个方向。 服务器资源 服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响,所以说服务器性能牛B,Tomcat也不会太差。当然提高服务器的硬件配置,是需要大量...

2020-05-08 17:16:50 101 0

转载 百度资深架构师详谈:缓存雪崩,缓存穿透,缓存击穿

缓存雪崩 出现过程: 假设有如下一个系统,高峰期请求为5000次/秒,4000次走了缓存,只有1000次落到了数据库上,数据库每秒1000的并发是一个正常的指标,完全可以正常工作,但如果缓存宕机了,或者缓存设置了相同的过期时间,导致缓存在同一时刻同时失效,每秒5000次的请求会全部落到数据库上...

2020-05-07 20:48:24 66 0

转载 Tomcat 是如何管理Session的?

概述 学了ConcurrentHashMap却不知如何应用?用了Tomcat的Session却不知其是如何实现的,Session是怎么被创建和销毁的?往下看你就知道了。 Session结构 不多废话,直接上图 仔细观察上图,我们可以得出以下结论 HttpSession是JavaE...

2020-05-07 18:26:51 39 0

转载 分布式限流学不动了?我教你

一、限流 在高并发系统中,需要使用多种方式来保护系统,例如: 缓存,目的是提升系统访问速度,增大系统处理能力。 降级,当服务器压力剧增的时候,根据实际业务情况,对某些服务或者页面有策略的不处理或者简单处理,从而释放服务器资源,以保证核心业务正常运行,通过牺牲局部利益来保证全局利益。 限流,目的是...

2020-05-06 17:18:48 39 0

转载 阿里大牛手把手教你,如何解决Redis并发竞争key问题!

1.问题描述 并发竞争key这个问题简单讲就是: 同时有多个客户端去set一个key。 示例场景 1 例如有多个请求一起去对某个商品减库存,通常操作流程是: 取出当前库存值 计算新库存值 写入新库存值 假设当前库存值为 20,现在有2个连接都要减 5,结果库存值应该是 10 才对,但存在下...

2020-05-06 16:57:42 35 0

转载 分布式事务方案 - TCC

TCC是支付宝提出的分布式事务解决方案,是 try、confirm、cancel 的缩写。 与2PC二阶段提交机制类似,区别在于层面不同,2PC是在数据库层面解决数据库之间的分布式事务,TCC是在应用层面解决分布式系统中的分布式事务。 工作流程 每个分布式事务的参与者都需要实现3个接口:try、c...

2020-05-04 22:23:58 38 0

转载 初探Tomcat的架构设计

Tomcat 作为 servlet 容器实现,它是基于 Java 语言开发的轻量级应用服务器。因为 Tomcat 作为应用服务器,它有着完全开源,轻量,性能稳定,部署成本低等优点,所以它成为目前Java 开发应用部署的首选,几乎每个Java Web开发者都有使用过,但是,你对 Tomcat 的整体...

2020-04-30 20:34:06 53 0

转载 想自己动手实现一个 RPC 框架?不妨参考这个思路试试(动态代理与RPC)

前言 随着最近关注 cim 项目的人越发增多,导致提的问题以及 Bug 也在增加,在修复问题的过程中难免代码洁癖又上来了。 看着一两年前写的东西总是怀疑这真的是出自自己手里嘛?有些地方实在忍不住了便开始了漫漫重构之路。 前后对比 在开始之前先简单介绍一下 cim 这个项目,下面是它的架构图: ...

2020-04-29 20:36:22 72 0

原创 23种设计模式知识要点总结~

23种设计模式知识要点总结 1.单例模式(Singleton Pattern) 定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 通用代码:(是线程安全的) public class Singleton { private static final Singleton s...

2020-04-27 14:38:55 51 0

原创 【6月复盘经验】我靠这份面经加上我的实力斩获阿里,美团,京东等6家公司Java研发岗offer

欢迎关注公众号:慕容千语的架构笔记 可以说掌握这个pdf上的知识,面试问的基础知识无处左右,由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容! 下文中截图来源于一位粉丝收集的pdf版的面经,把所以知识点的答案整理了下来,耗费他将近至少1个月时间,在...

2019-06-26 18:04:01 65 0

原创 Java中的ThreadLocal详解

一、ThreadLocal简介 多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问共享变量的时候需要进行额外的同步措施才能保证线程安全性。ThreadLocal是除了加锁这种同步方式之外的一种保证一种规避多线程访问出现线程不...

2019-06-14 21:28:07 113 0

原创 【并发编程】一文带你读懂深入理解Java内存模型(面试必备)

并发编程这一块内容,是高级资深工程师必备知识点,25K起如果不懂并发编程,那基本到顶。但是并发编程内容庞杂,如何系统学习?本专题将会系统讲解并发编程的所有知识点,包括但不限于: 线程通信机制,深入JMM内存模型原理,深入synchronized原理,深入volatile原理,DCL,详解AQS,...

2019-06-14 21:25:58 176 0

原创 一线大厂十年架构师总结整理出的微服务详解「PDF」

微服务 服务注册发现 服务注册就是维护一个登记簿,它管理系统内所有的服务地址。当新的服务启动后,它会向登记 簿交待自己的地址信息。服务的依赖方直接向登记簿要Service Provider地址就行了。当下用于服 务注册的工具非常多ZooKeeper,Consul,Etcd, 还有Netflix...

2019-06-14 21:21:45 221 0

原创 分布式场景下如何保证消息队列实现最终一致性

考虑一个分布式场景中一个常见的场景:服务A执行某个数据库操作成功后,会发送一条消息到消息队列,现在希望只有数据库操作执行成功才发送这条消息。下面是一些常见的作法: 1. 先执行数据库操作,再发送消息 public void purchaseOrder() { orderDao.sav...

2019-06-14 21:19:36 195 0

原创 阿里Java岗一面被问到对Spring的理解,懵了?这些你又了解多少

还在机械地打代码?我们很多开发者在开发 Spring 的程序的时候,很多的情况下,都是被动的接受了前辈们为我们做好的 Spring 特性案例。这样以来,确实在很大的程度上减少了我们开发的成本,但是也同时丧失了一个极好的学习机会,从而限制我们开发员的横向扩展能力。只知道如何使用,却不知道做了什么,那...

2019-06-13 15:57:57 298 2

原创 阿里高级架构师分享Java那些你未知的领域——kafka篇章「PDF」

Kafka Kafka 概念 Kafka 是一种高吞吐量、分布式、基于发布/订阅的消息系统,最初由 LinkedIn 公司开发,使用 Scala 语言编写,目前是Apache 的开源项目。【耐心读完,文末有读者福利!!!】 1. broker:Kafka 服务器,负责消息存储和转发 2. ...

2019-06-12 16:59:34 137 1

原创 一份完整的阿里云 Redis 开发规范,值得收藏!

  本文主要介绍在使用阿里云Redis的开发规范,从下面几个方面进行说明。 键值设计 命令使用 客户端使用 相关工具 通过本文的介绍可以减少使用Redis过程带来的问题。 一、键值设计 1、key名设计 可读性和可管理性 以业务名(或数据库名)为前...

2019-06-11 21:56:00 74 0

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