- 博客(17)
- 收藏
- 关注
原创 Dao层代码生成利器_MybatisGenrator实战
使用MBG,可以在使用Mybatis时,省去大量编写dao层pojo,mapper xml, mapper接口代码的时间,而且生成的代码是可靠的,也可以省去大量编写单元测试的时间。
2025-02-12 12:27:57
275
原创 分库分表技术方案选型
本文探讨了世面上常见的分库分表技术方案,包括Mycat、ShardingSphereJDBC、阿里tddl、OceanBase、PolarDB的基本原理,以及各方案实际应用中的优劣势。
2025-01-31 23:18:29
936
原创 mysql核心原理第3篇__InnoDB事务原理
本文阐述了事务的定义以及特性,事务的隔离级别,mysql实现事务的原理,mysql锁机制等内容。
2025-01-16 18:54:49
656
原创 mysql核心原理第2篇_索引原理及性能优化
在 MySQL 中,索引是一种用于提高数据库查询效率的数据结构。通过创建索引,可以加快数据的检索速度,但也会增加写操作的开销和存储空间的使用。本文阐述了mysql索引的原理以及使用优化技巧。
2025-01-16 15:29:55
543
原创 mysql核心原理第1篇__InnoDB架构
在执行数据删除更新时,可能会影响索引树中不相邻的二级索引,每次都操作磁盘都会造成大量磁盘IO,因此会先将变更数据存储在Change Buffer中,在未来数据读取时,再将数据合并恢复到Buffer Pool中,再将合并后的数据刷新到磁盘中。主要完成核心服务功能,如SQL解析,SQL分析和优化,确定表查询顺序,是否利用索引,如果是select会完成缓存的查询,部分内置函数的执行,最后生成调用引擎层的执行操作指令。不同的存储引擎具有不同的存储结构,索引,可以根据自己的需要来选取合适的存储引擎。
2025-01-12 10:20:11
1081
原创 事务、分布式事务原理及实现
事务是由一系列对数据库中数据进行访问与更新的操作所组成的一个程序执行逻辑序列。这些操作要么全都执行,要么全都不执行,是一个不可分割的工作单元。比如我们进行银行转账1万元,要进行两个原子动作:动作一:先从客户A账号扣除1万元;动作二:然后在客户B账号上增加1万元。这两个动作一定要一起完成,不管服务器发生停电,断网还是其它故障。ACID特性。
2025-01-02 15:31:54
977
原创 Java依赖冲突原理、解决方案
我在阿里妈妈联盟团队期间,由于负责业务的特殊性,系统有庞大的对外依赖,依赖集团六七十个团队服务及N多工具组件,通过此文和大家分享一下我们积累的一些复杂依赖有效治理的经验,除了简单技术技巧的总结外,也会探讨一些关于这方面架构的思考,希望此文能系统彻底的解决java依赖冲突对大家的困扰。第四章中有讲到,如果一个应用中要同时运行两个不兼容版本的jar包,是无法通过Maven调整依赖关系解决的。
2024-12-30 15:10:08
1034
原创 Mac安装配置Java,Git,Maven环境大全
M1芯片ARM版Homebrew最终会被安装在/opt/homebrew路径下,而之前Intel芯片的Mac则会被安装到/usr/local/Homebrew路径下。因为maven安装会依赖很多组件,比如openidk,直接安装很有可能因为下载超时失败,因此在安装好jdk,git后仅需安装maven即可,不要按装额外的依赖组件。我本机是/opt/homebrew/Cellar/maven/3.9.9/libexec/conf。默认安装在 /opt/homebrew/Cellar/maven/ 目录。
2024-12-28 21:28:37
2292
原创 Hbase核心原理及优劣分析
这部分数据在HBase的region server启动时,需要加载到内存中。因为hbase更新元数据是通过新增高版数据记录,不删除老版本实现的,时间长了经过多次数据平衡分配,meta中会有大量历史版本数据,元数据管理器负责清理这些元数据。Hbase数据物理上是按照RowKey(行键)的字典顺序存储的,并且查询数据时只能根据 RowKey进行检索,所以 RowKey 的设计十分重要。查找出对应Hfile,将Hfile中按列存储的多个读取出来,合并拼接成Row(行) 返回的。
2024-12-28 17:14:20
907
原创 秒杀&交易库存系统设计要点
AliSQL解决热点记录更新问题的方法是通过排队,以解决死锁检测和行锁争抢的问题。创建秒杀活动时,提前生成秒杀目标对象流水记录,比如编号1-10000流水,并将这10000条流水记录放到内存队列中,例如Redis Stream队列 或者 List中。该方案和库存模型一样比较简单,但考虑到秒杀&抢红包非常高的并发,以及秒杀一般是大量人抢少量物品的特性,可以有更优化定制的方案。秒杀库存场景到存储层面,都会涉及到大并发访问更新库存,造成大量请求集中更新一个物理实体上的库存量,形成热点性能瓶颈。
2024-12-24 17:51:23
711
原创 RocketMQ/MetaQ原理及与Kafka的对比
RocketMQ是一个分布式消息中间件,阿里内部使用的版本叫MetaQ。主要用于分布式系统的解耦、异步处理、削峰填谷。数据同步,比如mysql binlog同步,cache主从同步。电商交易订单下发,广告归因计费,商品,会员变更消息下发,金融理财等。IM实时消息,如来往、钉钉消息总线。RocketMQ在设计上比Kafka要复杂一些,也提供了更多丰富的功能,像消息tag过滤,延迟队列,顺序队列。以及出错时使用的重试队列,死信队列等等。
2024-12-21 20:31:16
696
原创 BloomFilter(布隆过滤器)的应用
当查询一个元素是否存在于布隆过滤器中时,也会通过多个哈希函数生成多个哈希值,然后检查这些哈希值对应的位数组位置是否都为1。布隆过滤器在互联网有着广泛的应用,特别是在需要快速判断元素是否存在而又不占用大量存储空间的情况下。布隆过滤器(Bloom Filter)是一种空间效率很高的概率型数据结构,主要用于判断一个元素是否在一个集合中。当插入一个元素时,会通过多个哈希函数生成多个哈希值,并将这些哈希值对应的位数组位置设置为1。相较于将过滤元素直接存储在Redis,本地内存中,布隆过滤器占用的内存空间会小非常多。
2024-12-20 22:36:04
1094
原创 Redis原理及应用总结
本文系统阐述了redis支持的各种数据类型,实现原理,以及应用场景。redis线程模型的演变及原因,持久化,高可用架构,BigKey问题等
2024-12-20 22:31:27
713
原创 Hologress服务分析一体化数仓简介
为了解决市面上传统lambda流批两条链路开发维护复杂度高、kappa架构要流处理系统能够高效地处理海量的历史数据和实时数据带来的高成本硬伤。以及计算引擎需要配合kafka、redis、mysql、hbase等工具进行数据迁移,存储计算结果供应用端查询带来的复杂性。阿里提出的新一代架构---服务分析一体化架构。
2024-12-19 11:20:20
1997
原创 大数据引擎分类总结
目前世面上大数据处理引擎有非常多,让人眼花缭乱,为方便在学习使用中,进行合理的技术选型,业界从不同的角度对大数据引擎进行分类。
2024-12-19 11:10:50
951
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人