设计模式(十五):策略模式(Strategy Pattern)实际应用

要在实际项目中应用策略模式,最好先仔细了解策略模式的定义和相关概念,可参考 设计模式(九):策略模式(Strategy Pattern)

策略模式(Strategy Pattern):定义一系列算法(算法家族),并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。

使用了策略模式,在系统设计层面是满足 里氏替换原则开放封闭原则 的,每个算法可以相互替换,在不修改已有算法的情况下易于扩展。

阅读更多

数据结构与算法(五):FIFO, LRU, LFU 缓存淘汰算法

服务器内存有限,不可能持续地往内存中存入数据,就需要对内存中的数据进行淘汰处理,通过制定淘汰策略(算法)以保证内存持续可用,使内存中的数据价值最大化。

应用层的缓存淘汰算法基本都是借用操作系统的内存管理算法,以称为内存页置换算法。

阅读更多

Sharding-JDBC系列(七):Sharding-JDBC 分库分表实践

此系列文章都是基于 Sharding-JDBC 4.x版本, 在写此文章时,正式发布的是 4.1.0版本,点此 4.x 官方文档

一个应用如果业务高速增长,产生大量的数据,单数据库的性能可能难以满足业务快速增长的需求,此时就可以考虑采用分库来分担单个数据库的压力,提高系统的性能。

本篇基于 Spring Boot + Mybatis + Mybatis-Plus 集成 Sharding-JDBC 实现分库分表示例。

阅读更多

Sharding-JDBC系列(六):Sharding-JDBC 单库分表实践

数据分片的实践主要有根据业务来分库,对大数量表进行分表,根据实际需要可以分库分表,也可以只分表不分库

分库除了在拆分业务时各自使用独立的库,现在很多中小型的 SASS 系统,在租户数据隔离这块也有采用分库分表的方式实现。

此系列文章都是基于 Sharding-JDBC 4.x版本, 在写此文章时,正式发布的是 4.1.0版本,点此 4.x 官方文档

阅读更多

Sharding-JDBC系列(五):Sharding-JDBC读写分离概念与实践

Sharding-JDBC的读写分离:透明化读写分离所带来的影响,让使用方尽量像使用一个数据库一样使用主从数据库集群,是 ShardingSphere 读写分离模块的主要设计目标。

本篇描述 Sharding-JDBC 读写分离的相关概念,一主多从,写主读从,强制读主等。基于 Spring Boot 集成 Sharding-JDBC 实现读写分离实践。

此系列文章都是基于 Sharding-JDBC 4.x版本, 在写此文章时,正式发布的是 4.1.0版本,点此 4.x 官方文档

阅读更多