写在前面 想想为什么要做重构? 如果没有能说出来的理由,建议不要轻易重构。 机票系统A的现状 A系统的背景 业务上:从杭州挪到北京,作为重新孵化项目,想要做大做强。行业竞争压力非常大,做不出 ...
写在前面 想想为什么要做重构? 如果没有能说出来的理由,建议不要轻易重构。 机票系统A的现状 A系统的背景 业务上:从杭州挪到北京,作为重新孵化项目,想要做大做强。行业竞争压力非常大,做不出 ...
Kafka的概念和入门 Kafka是一个消息系统。由LinkedIn于2011年设计开发。 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度O(1)的方 ...
Redis Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库、缓存和消息代理。Redis提供数据结构,如strings, hashes, lists, sets, sorted se ...
一、数据库拆分 1. 为什么要做数据库拆分 单机数据库存在的问题? 从容量、性能、可用性和运维成本上难以满足海量数据的场景。 性能方面,数据量超过一定阈值,B+树索引慎独增加导致磁盘访问 ...
一、系统间通信方式 我们可以想到的方式: 基于文件 基于共享内存 基于IPC 基于Socket 基于数据库 基于RPC 各个模式的缺点: 文件:使用不方便, ...
一、从数据说起 我们再做缓存之前需要把数据先分好类 按变化频率: 静态数据:一般不变的,类似于字典表 准静态数据:变化频率很低,部门结构设置,全国行政区划数据 中间状态数据:一些计 ...
分布式事务 为什么需要分布式事务 随着互联网的快速发展,业务越来越复杂,一个完整的业务往往需要调用多个子服务,涉及的数据也越来越多。传统的系统难以支撑,就出现了分布式系统,而分布式系统又带来了数据 ...
一、线程的基本知识 1.1 线程知识 进程和线程的关系和区别 线程: 线程是进程的基本执行单元,进程想要执行任务,必须要有线程。程序启动默认开启一条线程,这个线程被称为主线程。 进 ...
MySQL事务 事务可靠性模型ACID: Atomicity: 原子性,一次事务中的操作要么成功,要么失败 Consistency: 一致性,跨表,跨行,跨事务,数据库始终保持一致状态 ...
从单机到集群 随着数据量增加,读写并发的增加,系统可用性要求的提升,单机MySQL存在着一些问题: 容量有限,难以扩容 读写压力、QPS过大,特别是分析类需求会影响到业务事务 可用性 ...