序列化框架对比

## 背景 最近接到一个需求,涉及到大流量的数据传输,那么就不可避免序列化,正巧我也有想法对最近主流的序列化框架做一次对比。 参数对比的序列化的框架如下,将对 `序列化数据字节大小`、`序列化\反序列化平均耗时`、`序列化\反序列化吞 ...

使用 Prometheus + Grafana 搭建监控系统

## 前言 系统监控是中大型企业中必不可少的组件,在线上服务器遇到负载问题时通过监控便能够查看系统状态快照,还能够通过监控系统开发其他效能组件,进一步提高系统的可用性。 ## 监控应用程序 通常情况下,要想获得应用的负载情况就需要改 ...

Spring 自定义配置加载

Spring 工程中一般以 xml (spring-framework) 和 yml (spring-boot) 做为配置文件,配置除了框架提供的也支持增加其他配置,它们是以同样的形式注册到 Spring 中的。 ## 1. xml 配 ...

Java 注解处理器

## 工作流程 注解处理器是一种应用于编译期间的模块,在编译完源文件后,编译器会解析类信息,转换成抽象语法树,接着执行注册的注解处理器,解析语法树是否发生了变化并重新生成源文件,接着调用下一个注解处理器。 > 编译器具体处理过程可查看 ...

synchronized 原理总结

## 介绍 在 Java 中 `synchronized` 是用于并发环境下使用临界区的原语。 它是通过获取对象头的 Mark Word 来实现互斥功能的,当使用方式不同时所操作的对象也不同。 * 声明在方法内时,锁对象由开发者所指 ...

发布 jar 包至 maven 官方中央仓库

当项目准备发布至 maven 中央仓库时,基本上按照官方指南操作就行了。 > https://central.sonatype.org/pages/ossrh-guide.html ## 创建发布需求 在创建问题时需要注意,如果 ` ...

JMX 简介

JMX 的全称为 Java Management Extensions,是一种监控、管理正在运行的 Java 应用程序的机制,并且支持开发人员自定义 MBean 监视器。 ## 常用 MXBean 通过查询 `java.lang.ma ...

跨代引用

在 JVM 虚拟机的内存管理中,有可能存在老年代对象引用新生代的情况,在 `Major GC` 时,为了标记这些引用的新生代对象,需要通过扫描老年代来间接标记。 然而,正常扫描全部老年代来获取的做法效率太低下了,由此便产生了称为 `Ca ...

Java安全机制

Java 安全机制是针对程序在操作本地资源时的权限限制,避免在执行有害代码时 (例如网络上下载的 jar 包)导致不可预估的损失。 这里简单介绍下使用方法。 ## 配置安全策略 1. 创建以 `.policy` 结尾的文件 2. ...

领域驱动设计学习

## 简介 一个应用系统常常包含许多模块,有基础组件、业务逻辑、数据操作、外部依赖、服务提供等等。但软件系统发展到一定程度时,其复杂性也随之增长,给后期的开发和维护带来难度。 而领域驱动设计则是针对 `复杂性` 的一个解决手段,使架构能 ...