05 2020 档案
摘要:转自: 如何选择分布式事务解决方案? 导读 分布式事务中涉及的参与者分布在异步网络中,参与者通过网络通信来达到分布式一致性,网络通信不可避免出现失败、超时的情况,因此分布式事务的实现比本地事务面临更多的困难。本文归纳总结五种分布式事务解决方案,并剖析其特点。较长,同学们可收藏后再看。 概述 事务是一
阅读全文
摘要:1:自动装箱、拆箱 例子: Integer a = 10; //this is autoboxing //上面的操作其实就是下面这个,编译器会帮你自动转,不用手动 Integer b = Integer.valueOf(10); //under the hood 看下Integer中valueOf(
阅读全文
摘要:出处: 互联网项目中mysql应该选什么事务隔离级别 1:一般互联网项目中mysql的事务隔离级别设置成 Read Commited 读已提交 Oracle,SqlServer 的默认事务隔离级别是读已提交(Read Commited); Mysql 的默认事务隔离级别是可重复读(Repeatabl
阅读全文
摘要:出处:https://mp.weixin.qq.com/s/P8s3kuceBNovUP5adXpFCQ 线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力。同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验。 过去半年时间里,我们
阅读全文
摘要:出处: 什么是Base64? 一、什么是Base64? 百度百科中对Base64有一个很好的解释:“Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法”。 什么是“可打印字符”呢?为什么要用它来传输8Bit字节码呢?在回答
阅读全文
摘要:58沈剑 架构师之路: 业界难题-“跨库分页”的四种方案
阅读全文
摘要:出处:Java 类加载还会死锁?这是什么情况? 一、前言 先贴一份测试代码,大家可以先猜测一下,执行结果会是怎样的: import java.util.concurrent.TimeUnit; public class TestClassLoading { public static class A
阅读全文
摘要:题目: import java.lang.ref.WeakReference; import java.util.WeakHashMap; public class Test1 { public static void main(String[] args) { String val = test(
阅读全文
摘要:代码实例: 问题:为什么testRunntimeException()方法没有出现编译错误提示,而testCheckedException()方法却出现unhandle exception? 分析: Excepiton分两类:checked exception、runtime exception;直
阅读全文
摘要:出处: https://www.cnblogs.com/dennyzhangdd/p/11585971.html 一、引子 对于互联网公司,线上CPU飙升的问题很常见(例如某个活动开始,流量突然飙升时),按照本文的步骤排查,基本1分钟即可搞定!特此整理排查方法一篇,供大家参考讨论提高。 二、问题复现
阅读全文
摘要:出处: 秒杀架构模型设计 前言:秒杀系统相信很多人见过,比如京东或者淘宝的秒杀,小米手机的秒杀,那么秒杀系统的后台是如何实现的呢?我们如何设计一个秒杀系统呢?对于秒杀系统应该考虑哪些问题?如何设计出健壮的秒杀系统?本期我们就来探讨一下这个问题: 一:秒杀系统应该考虑的问题 二:秒杀系统的设计和技术方
阅读全文
摘要:出处:RPC 超时设置 上面这张监控图,对于服务端的研发同学来说再熟悉不过了。在日常的系统维护中,『服务超时』应该属于监控报警最多的一类问题。 尤其在微服务架构下,一次请求可能要经过一条很长的链路,跨多个服务调用后才能返回结果。当服务超时发生时,研发同学往往要抽丝剥茧般去分析自身系统的性能以及依赖服
阅读全文
摘要:出处: 利用阿里开源工具进行排查线上CPU居高问题 前言 在我们开发过程中,无法避免的会出现所谓的垃圾代码,导致服务器的CPU一直处于100%。但我们应用已经上线,导致服务器CPU居高,但又不知道哪边出现的问题,我们应该怎么去找出哪边的代码出现问题呢?今天老顾就介绍几种工具去快速定位。 演示代码 我
阅读全文
摘要:引言 我们知道,一般在java程序中,new的对象是分配在堆空间中的,但是实际的情况是,大部分的new对象会进入堆空间中,而并非是全部的对象,还有另外两个地方可以存储new的对象,我们称之为栈上分配以及TLAB 栈上分配 为什么需要栈上分配? 在我们的应用程序中,其实有很多的对象的作用域都不会逃逸出
阅读全文
摘要:出处:分享大厂分布式唯一ID设计方案 一、前言 二、分布式ID的几种生成方案 2.1、UUID 2.2、MySQL主键自增 2.3、MySQL多实例主键自增 2.4、雪花snowflake算法 2.5、Redis生成方案 2.6、小结 三、一线大厂是如何设计的呢? 3.1、改造数据库主键自增 3.2
阅读全文
摘要:出处:JVM 栈帧之操作数栈与局部变量表 目录 前置知识 引子 基于寄存器的设计模式 基于栈的设计模式 一个简单的例子 如何查看局部变量表? 实例方法中的局部变量表 结论 前置知识 阅读本文需要对以下知识有所了解: * 栈 * 汇编 * Java 基础 * 逆波兰表达式(有学过的同学阅读本文毫无障碍
阅读全文
摘要:出处: redis主从复制常见的一些坑 读写分离的问题 1.数据复制的延迟 读写分离时,master会异步的将数据复制到slave,如果这是slave发生阻塞,则会延迟master数据的写命令,造成数据不一致的情况 解决方法:可以对slave的偏移量值进行监控,如果发现某台slave的偏移量有问题,
阅读全文
摘要:出处: 什么是 redis 的雪崩、穿透和击穿? 关于Redis雪崩,穿透,击穿的问题,第一次接触名字有点陌生,听上去还比较相似,难以理解,过去做的很多项目中也都是用过Redis,但是第一次听到这几个关于Redis的坑还是一脸懵逼,直到这些坑真正显灵的时候才彻底意识到搞明白。 第一次线上遇到 Red
阅读全文
摘要:出处: HandlerMethodArgumentResolver用于统一获取当前登录用户 目录 一、最原始直接 二、AOP 三、拦截器+方法参数解析器 3.1 自定义权限拦截器 3.2 自定义参数注解 3.3 自定义方法参数解析器 3.4 配置MVC 环境:SpringBoot 2.0.4.REL
阅读全文