加载中
从Apollo看长轮询

前言 如果让我设计一个配置中心,最先想到的两个核心功能:一个是如何将配置存储下来,另一个是怎么能够实时的获取到最新的配置;最简单的方式我们可以直接利用现有的一些中间件:Zookeeper、Red...

Innodb间隙锁实战

锁概念 InnoDB存储引擎包含了三种行锁的算法,分别如下所示: Record Lock:行锁,针对的是单行记录; Gap Lock:间隙锁,锁定的是一个范围,但是不包含记录本身; Next-Key Lock:其实就是行...

一次被木马攻击的记录

描述 最近一个老同学跟我说他部署在阿里云上的系统,在tomcat的目录下出现了一个index.jsp文件,内容大致如下: 我一看发现这不就是一个木马后门文件吗,只需要通过参数ejiaogl传入一个经过b...

Redis实现分布式锁十连问

前言 分布式锁就是在多个进程之间达到互斥的目的,常见的方案包括:基于DB的唯一索引、Zookeeper的临时有序节点、Redis的SETNX来实现;Redis因为其高性能被广泛使用,本文通过一问一答的方式...

字节码增强概述

前言 字节码我们都知道是java文件经过编译之后的class文件,每一个字节码文件都要由10部分按照固定的顺序组成;增强其实就是对字节码文件进行改造生成一个新的文件,已达到我们的目的,比如动...

ASM在FastJson中的应用

前言 上文ASM入门篇中除了对ASM的使用做了介绍,同时也提到ASM被使用的一些场景,其中有一项就是ASM被用来代替Java反射;FastJson作为序列化工具,就使用了ASM来代替反射的使用,提高整体的性...

ASM入门篇

ASM简介 ASM是一个通用的Java字节码操作和分析框架,它可以用来修改现有的类或直接以二进制形式动态生成类。ASM提供了一些常见的字节码转换和分析算法,从中可以构建定制的复杂转换和代码分析...

对高可用系统的一点理解

什么是高可用 简单来讲就是我们系统如何提高对外的服务时间,想要系统达到100%可用基本是不太可能的,也内有一个专门的衡量标准SLA(全称:Service Level Agreement),也就是有几个9的高可用性...

超时与重试浅析

前言 超时可以说是除了空指针我们最熟悉的异常了,从系统的接入层,到服务层,再到数据库层等等都能看到超时的身影;超时很多情况下同时伴随着重试,因为某些情况下比如网络抖动问题等,重试...

ShardingSphere-JDBC分片改写引擎

前言 上文ShardingSphere-JDBC分片路由引擎中介绍了分片流程中的路由引擎,最终获取了路由结果;本文要介绍的改写引擎需要使用路由结果来对SQL进行改写,改写成可以被正确的分库分表能够执行...

一次GSON时间问题的排查

问题描述 近期有一个老项目在测试环境中频繁出现了GSON反序列化时间问题,错误堆栈如下所示: Exception in thread "main" com.google.gson.JsonSyntaxException: 2021-05-14 14:59:37 at c...

ShardingSphere-JDBC分片路由引擎

前言 上文ShardingSphere-JDBC分片解析引擎中介绍了分片流程中的解析引擎,重点介绍了解析引擎的核心组件ANTLR;本文继续介绍分片流程中的路由引擎,路由引擎可以说是整个分片流程的核心模块...

ShardingSphere-JDBC分片解析引擎

前言 上文ShardingSphere-JDBC入门实战中对ShardingSphere-JDBC如何使用做了简单介绍,接下来打算从源码层面对数据分片做更加详细的介绍,整个数据分片会经过一个复杂的流程包括:解析、路由...

ShardingSphere-JDBC入门实战

前言 Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成;接下来的几...

Jackson-databind引发的漏洞问题分析

前言 最近公司内部提供了一份应用高危漏洞的清单,其中提到了fastjson和jackson,因为之前对fastjson因为多态问题引发的反序列化问题有过了解,所以打算也做一个简单的分析。 漏洞简述 2020...

分布式事务浅析

前言 分布式事务拆开来其实就是分布式、事务两个概念,分布式简单讲就是不同进程间的系统进行通信;事务狭义上我们经常把它看作是数据库的事务,事务具有ACID特性即:原子性(Atomicity)、一...

负载均衡浅析

前言 负载均衡这个概念在我们工作中经常被提及到,因为纵观我们系统的整个链路层,每层都会用到负载均衡,从接入层,服务层,到最后的数据层,当然还有MQ,分布式缓存等等都会存在一些负载均...

如何自定义协议

前言 何为自定义协议,其实是相对标准协议来说的,这里主要针对的是应用层协议;常见的标准的应用层协议如http、ftp、smtp等,如果我们在网络通信的过程中不去使用这些标准协议,那就需要自定...

对序列化中反射的一点思考

前言 序列化大家都不陌生,说白了就是把当前类对象的状态保存为二进制,然后被用来持久化或者网络传输;常用的RPC框架在数据传输前都会进行序列化操作,主流的RPC框架包含了多种序列化方式比...

如何动态改变日志级别

前言 关于日志级别,大部分项目可能都设置为info级别,当然也可能有一些追求性能或者说包含很多敏感信息的项目直接将级别设置为warn或者error;这时候如果项目中出现一些未知异常,需要用到很...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部