- 博客(34)
- 资源 (2)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 一个极简、高效的秒杀系统-战术实践篇(内附源码)
文章目录一、前言二、工程骨架2.1 DDD概述2.2 工程结构三、源码解读3.1领域层3.1.1 领域模型a. 活动b. 活动商品c. 库存扣减流水d. 仓储3.1.2 领域服务a. 活动配置b. 库存扣减3.1.3 小结3.2 应用层3.2.1 活动应用服务3.2.2 库存应用服务3.2.3 小结3.3 用户界面层3.4 基础设施层3.4.1 领域服务实现3.4.2 仓储实现四、总结一、前言...
2020-03-22 20:45:30
3394
13
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 一个极简、高效的秒杀系统-战略设计篇
文章目录一、前言二、业务需求2.1 产品需求2.2 业务流程2.2.1 秒杀活动整体业务流程2.2.2 创建秒杀活动2.2.3 查看秒杀活动2.2.4 参与秒杀活动2.2.5 小节三、概要设计3.1 E-R 关系图3.2 产品边界3.3 接口定义3.3.1 配置活动3.3.2 活动列表3.3.3 活动详情3.3.4 活动商品详情3.2.5 扣库存3.3.6 回库存四、详细设计4.1 系统流程4.2...
2020-03-14 19:31:04
7917
5
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 一个极简、易用的灰度分流方案(内附源码)
文章目录一、前言1 什么是灰度发布2 灰度发布解决什么问题3 灰度怎么做二、抽象之路2.1 蛮荒时代:开关在手,灰度我有灰度方案设计2.2 第一次演进:通用灰度配置灰度方案设计2.3 第二次演进:多维度组合灰度灰度方案设计2.4 第三次演进:支持分流灰度方案设计一、前言1 什么是灰度发布这里直接照搬下百度百科的定义:灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其...
2020-02-29 13:03:33
7104
4
原创 Spring Boot整合Dubbo Provider
文章目录一、前言二、Provider 整合2.1 ServiceAnnotationBeanPostProcessor 类层次结构2.2 Provider 整合流程2.3 源码佐证2.3.1 注解驱动2.3.2 Dubbo配置文件加载2.3.3 ServiceAnnotationBeanPostProcessor 包扫描三、Provider 侧服务导出3.1 服务导出四、总结一、前言前一篇《S...
2020-05-04 16:32:22
1055
原创 Spring Boot整合Dubbo Consumer
文章目录一、前言二、Consumer 整合2.1 ReferenceAnnotationBeanPostProcessor 类层次结构2.2 Consumer整合流程2.3 源码分析2.3.1 依赖查找2.3.2 依赖注入三、Consumer 侧服务引入3.1 代理对象生成一、前言Apache Dubbo是一款高性能、轻量级的开源Java RPC框架,实际应用中,比较传统的使用方式是通过xml...
2020-05-03 10:34:37
1156
原创 看图彻底掌握MDC设计理念
文章目录一、MDC是什么1.1 MDC常用API1.2 MDC数据结构二、MDC的SPI机制2.1 LogbackMDCAdapter绑定过程三、MDC源码解析3.1 MDC源码3.2 LogbackMDCAdapter源码3.2.1 Write -> Write 场景分析3.2.2 Write -> Copy map -> Write 场景分析四、MDC的局限性4.1 父子线...
2020-04-25 16:04:32
3523
原创 Jdk线程池ThreadPoolExecutor源码解析
文章目录一、基础模型1.1 线程池任务的抽象 FutureTask1.1.1 FutureTask类层次结构1.1.2 FutureTask源码1.2 线程池的抽象: 从Excutor、ExecutorService到AbstractExecutorService1.2.1 线程池类层次结构1.2.2 线程池接口定义1.2.3 小结二、线程池工作原理2.1 线程池工作机制概述2.2 任务提交、执行...
2020-04-19 19:39:28
405
原创 【了不起的ThreadLocal】一、源码分析
文章目录一、前言二、ThreadLocal数据模型三、内存泄漏3.1 强引用存在内存泄漏?3.2 弱引用不存在内存泄漏?3.3 如何彻底避免内存泄漏?四、源码分析4.1 ThreadLocal源码4.2 ThreadLocalMap源码4.3 小结一、前言在JDK中,有些不起眼的类,往往蕴含着巨大的能量,ThreadLocal就是这样一个类,JDK1.2该类就诞生了,可算做JDK的一个元老了。...
2020-04-07 00:27:32
415
原创 做不好业务中台,你可能是缺了这种设计
文章目录一、前言1 什么是中台2 为什么需要业务中台二、扩展点机制2.1 青铜菜鸟: If一把梭2.2 荣耀黄金: 策略模式消除If2.3 荣耀王者: 扩展点机制三、源码示范3.1 模型a. 3个扩展点数据模型b. 2个注解c. 1个扩展点管理类3.2 运行机制a. 扩展点扫描&注册b. 扩展点执行3.3 小结3.4 Spring注解开发四、总结一、前言1 什么是中台中台这个概念近几...
2020-04-05 22:26:40
4111
4
原创 这就是你要找的分布式锁
文章目录一、缘起二、常见分布式锁实现方案三、Redisson分布式锁实现3.1 加锁&解锁Lua脚本3.1.1 加锁Lua脚本3.1.2 解锁Lua脚本3.2 源码走读3.2.1 加锁流程源码3.2.2 解锁流程源码3.3 加锁&解锁流程串起来3.4 其他料一、缘起提起分布式锁,相信大家或多或少在工作中实践过,甚至按捺不住造轮子的冲动还自己动手写过。楼主的工作中也看到或用到几种...
2020-03-08 13:09:30
1865
1
原创 【俯瞰Spring】三、IoC容器初始化(上)
文章目录一、前言二、IoC容器创建及初始化2.1 第一步: 准备ApplicationContext2.2 第二步: 注册启动类Bean定义2.3 第三步: 初始化Ioc容器三、小结一、前言从本节开始,会花较多篇幅去深入了解Spring IoC容器的初始化流程。整体串联的知识点会很多,包括IoC容器的实现、IoC容器的初始化、Bean定义扫描、Bean的生命周期、Spring的扩展机制Bean...
2020-03-07 20:00:44
219
原创 分布式事务常用套路
文章目录一、理论支撑1.1 CAP理论1.2 BASE理论二、业界方案2.1 二阶段提交(2PC)实现思路缺点2.2 Saga2.3 补偿事务(TCC)实现思路缺点2.4 本地消息表Ebay实现方案去哪儿网的变种方案2.5 事务消息实现方案使用场景2.6 最大努力通知实现方案适用场景小结2.7 方案比较![在这里插入图片描述](https://img-blog.csdnimg.cn/2020030...
2020-03-04 00:34:12
752
原创 【俯瞰Spring】二、Bean的生命周期
文章目录一、前言二、Bean的生命周期三、Bean生命周期剖析3.1 Bean定义生成、注册3.2 实例化3.2.1实例化是什么?3.2.2 扩展点3.3 依赖注入3.4 初始化3.5 销毁四、总结一、前言同人有生老病死一样,在Spring中IoC容器管理的Bean也具备实例化、初始化、销毁一整套完整的生命周期。有了生命周期,Ioc容器就能在生命周期的各个阶段对Bean的功能进行扩展或增强,比...
2020-03-02 23:28:18
270
1
原创 【俯瞰Spring】一、Spring核心工作机制
文章目录一、前言二、Spring核心运行机制2.1 一图看穿Spring2.2 BeanDefiniton 和BeanFacotroyPostProcess2.3 BeanPostProcess三、总结3.1 小结3.2 其它一、前言提起Spring,Java程序员应该不会陌生,或多或少都在企业项目中应用到Spring这个开发框架。Spring的提供Ioc、Aop等功能极大降低了软件开发的复...
2020-02-29 22:00:20
439
1
原创 IDEA实用快捷键
智能提示F2/ Shift+F2 移动到有错误的代码Ctrl+Shift+Enter 自动补全末尾的字符(括号、分号)Ctrl+P 显示参数信息Alt+Q 查看当前方法声明CTRL+Q 显示注释文档重构Shift+F6 重命名(文件、类、方法、变量)Ctrl+Shift+Alt+T 重构Ctrl+Alt+O 格式化 import列表Ctrl+Alt+L 格
2015-12-27 18:48:14
724
1
原创 python定时任务调度——apscheduler模块
一、基本概念APScheduler(Advanced Python Scheduler),基于Quartz的轻量级Python定时任务调度框架1.1 四个主要组件: trigger 、jobstores、 executors 、scheduler executor 任务执行器:执行任务的模块,不同的IO模型选择相适应的executorjobstore 任务存储仓库:持久存储任务trigger
2015-12-20 15:00:58
22708
2
原创 Python 标准库——os、glob模块
一、os 模块1、os 模块常用属性2、os 模块常用方法二、os.path 模块1、os.path 模块常用方法三、glob 模块四、综合应用
2015-12-19 12:21:26
2868
原创 python程序打包为egg——setuptools模块
一、创建包新建文件夹my-package,文件夹下创建如下setup.py(务必为此名字)文件# encoding: utf-8from setuptools import setup, find_packagessetup( name="demo", # egg包名 version="0.0.9", description="get http headers",
2015-12-13 18:54:36
7826
1
原创 Python 标准库——collections(上)
一 、Counter初始化update方法、most_common 方法算术运算二、 defaultdict初始化 三种技巧defaultdict V.S groupby
2015-09-20 12:50:00
527
原创 Python 标准库——itertools
一、chain / chain.from_iterable二、izip / imap / starmap 三、count / cycle / repeat四、ifilter/ islice五、compress / dropwhile / takewhile六、groupby七、produce / permutations / combinations参考:[1] https://docs.pyth
2015-09-19 18:30:56
575
原创 Python2.7 安装numpy报错解决方法
Windows 10下用pip安装numpy包报错: Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat
2015-08-16 10:45:21
3245
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人