logo头像
ICQL

designpattern_设计原则

相关源码https://gitee.com/icql/icql-java/tree/master/designpatternhttps://github.com/icql/icql-java/tree/master/designpat...

designpattern_创建型

创建型设计模式概述主要解决对象的创建问题 单例模式定义:一个类只允许创建一个实例使用场景:处理资源访问冲突;数据在系统种只应该保存一份(如配置信息)实现方式:主要考虑以下3个方面:构造函数private,创建对象线程安全,是否延...

designpattern_结构型

结构型设计模式概述主要总结了一些类或对象组合在一起的经典结构 代理模式在不改变原始类(或叫被代理类)代码的情况下,通过引入代理类来给原始类附加功能,对客户端不透明 应用场景: 业务系统的非功能性需求开发:如打印日志,记录耗时,...

designpattern_行为型

行为型设计模式概述用来描述一些常用行为的设计模式 观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅模式 观察者模式和生产消费者模型的区别:...

distributed_分布式理论

分布式分布式:建立在网络之上的软件系统 1)特点 分布性并发性:分布式系统中的多个节点,同时访问一个共享资源。如数据库、分布式存储无序性:进程之间的消息通信,会出现顺序不一致问题 2)问题 网络通信:网络通信本身不可靠网络分区(脑裂...

distributed_分布式锁

分布式锁分布式环境下,控制对共享资源的同步访问 解决方案一:redis本质上,利用redis的命令单线程有序性,对redis中的共享资源进行操作 1)SETNXredis SET 命令 SET:可以实现下面几个的命令SETNX...

distributed_分布式事务

分布式事务分布式环境下,一组任务,要么全部成功,要么全部失败 解决方案一:2pc1)定义2PC(2 prepare commit)两阶段提交协议,是将整个事务流程分为两个阶段 (1)准备阶段(prepare phase)(2)...

microservice_幂等

幂等性一段逻辑被执行一次和多次产生的效果是相同的,表示具有幂等性 HTTP的幂等性常见HTTP请求动词的: GET,幂等POST,非幂等PUT,幂等DELETE,幂等 DB数据库的幂等性 select,幂等insert...

microservice_分库分表

海量数据存储业界公认MySQL单表容量在1KW量级是最佳状态,因为这时它的BTREE索引树高在3~5之间,对于海量数据为了保证性能则需要将数据存放在多个地方 1)分区表mysql分区表,屏蔽了sharding细节,但是受单机的限制,连...

microservice_缓存

缓存问题1)缓存穿透短时间内大批量请求不存在的key,缓存没有命中,大量请求落在了数据库上导致异常 解决方案: (1)提前校验入参,避免无效数据查库(2)查到不存在的数据时,往缓存写一份为空的数据,失效时间设置短一点实际读库时,可以...

microservice_限流

计数器算法限流key,限流单位时间,限流数 实现思路: string结构key=限流key,value=请求计数,expired=限流单位时间 每次请求进来判断value值(1)超过限流数:限流(2)未超过限流数:正常,value+...

microservice_接口设计规范

https://zhishiku.casstime.com/pages/viewpage.action?pageId=31888074 restfulrestful最明显的特征,对于同一个资源的一组不同的操作,资源是以名词为核心来组织...

architecture_DDD基础

DDD简介领域驱动设计(Domain Driven Design,DDD)Eric Evans 编著的《领域驱动设计》 软件架构 1)单机架构:面向过程的设计方法,围绕DB设计和开发 2)集中式三层架构面向过程+面向对象的设计方...

architecture_DDD分层架构

DDD分层架构 用户接口层应用层领域层基础层 DDD分层架构的演进1)微服务间的架构演进 2)微服务内的架构演进 常见架构对比1)整洁架构2)六边形架构3)DDD分层架构

inaction_tmp.md

异步接口http://www.ruanyifeng.com/blog/2018/12/async-api-design.html 抽奖 秒杀 搜索关键字分析https://segmentfault.com/a/119000002335...