技术爱好者&领域设计践行者
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
五种数据结构简介 Redis是使用C编写的,内部实现了一个struct结构体redisObject对象,通过结构体来模仿面向对象编程的“多态”,动态支持不同类型的value。
Mysql概述 数据库是一个易于访问和修改的信息集合。它允许使用事务来确保数据的安全性和一致性,并能快速处理百万条以上的数据。数据库一般可以用如下图形来理解: 数据库功能模块图 数据库是由多种互相交互的组件构成的。
公司DBA一直埋怨atlas的难用,希望从客户端层出一个读写分离的方案。开源市场上在客户端做读写分离的开源软件基本上没有。业务方利用Spring自带的路由数据源能实现部分读写分离的功能,但是功能不够完善。
一、 MQ背景&选型 消息队列作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性。主要具有以下优势: 削峰填谷(主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题) 系统解耦(解决不同重要程度、不同能力级别系统之间...
ThreadLocal ThreadLocal是线程本地变量,每个线程往这个ThreadLocal中读写是线程隔离,互相之间不会影响的。它提供了一种将可变数据通过每个线程有自己的独立副本从而实现线程封闭的机制。
DRC简介 DRC(Data Replication Center)是我在阿里听过的一个概念,它的业务域是支持异构数据库实时同步,数据记录变更订阅服务。为跨域实时同步、实时增量分发、异地双活、分库分表等场景提供产品级的解决方案。
Mysql binlog是二进制日志文件,用于记录mysql的数据更新或者潜在更新(比如DELETE语句执行删除而实际并没有符合条件的数据),在mysql主从复制中就是依靠的binlog。
运行时栈帧结构 栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态链接和方法返回地址等信息。
类加载的过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。
这篇文章主要内容来自"深入java虚拟机",刚毕业那会太急功近利,这块离业务代码太远就没细看。这次花点时间整理一下,加深对字节码的认识。 类文件结构 “一次编写,到处运行”表达的是“与平台无关”。
数据库智能云平台(Hati,名字越大,责任越大)可以说是我们团队和DBA团队的定情之作。通过Hati项目,我们团队获得了DBA团队的信任,开启了更多合作之旅。
这篇文章是基于我开发读写分离中间件和数据库智能运维平台时的经验总结而成。网上对数据库连接系统分析的文章非常少,甚至几乎没有。这篇文章很多内容都参杂了我个人的见解,不一定全,但是每一个知识点都是我验证过的。
本文主要基于“深入java虚拟机”这本书总结JVM的内存管理机制,并总结了常见的线上问题分析思路。文章最后面是我对线上故障思考的ppt总结。 Java内存区域 虚拟机运行时数据区如下图所示: 15291199000153.jpg 方法区:方法区又称为永生代(Permanent Generation)是线程共享的内存区域。
这边文章的主要内容是基于“java并发编程艺术”这本书,中间加入了一些自己的理解。这篇文章包括并发编程涉及到的几乎所有基础知识。主要是帮助长期从事业务逻辑开发的java程序员梳理一下java并发开发基础。