数据库
毛小树
Explore the unknown world!
展开
-
一个简单的业务重试方案[EventBus+Executor+AOP]
对于系统中出现的异常,有的需要告警出来,譬如参数校验不通过,写操作因为幂等的原因失败;有的则需要进行业务重试,譬如 rpc 调用超时。如何设计一个优良的重试机制呢?个人认为应当具备下面几点。侵入性小:实现重试的代码逻辑与现有的业务逻辑应尽可能地分离,所谓不侵入,少耦合,重试逻辑与正常逻辑解耦。动态配置:重试的最大次数、重试的间隔时间、是否采用线程池进行重试、是否异步重试等,可在项目正常运行...原创 2019-11-27 20:55:34 · 881 阅读 · 0 评论 -
Some typical SQL in our daily coding.
数据库的表设计中经常会有使用json存储的大字段,经常会有模糊匹配大字段的需求,在 mapper.xml 文件中如何进行模糊匹配呢。记录一下:<if test="feeType != null and feeType !=''"> and fee_extension like (CONCAT(CONCAT('%"feeType ":', #{feeType, jdbcTy...原创 2019-11-26 20:20:01 · 179 阅读 · 0 评论 -
数据库相关面试笔记
一、数据库主键和外键作用 主键作用:能保证设置主键的列非空且唯一.另外,在定义主键时,如果这列之前没有索引,系统会为其创建唯一性索引 。 外键作用:能保证设置外键的列取值必须匹配父表中已有的值.通过外键可以与同一张表的列建立引用关系,也可以与不同表的列建立引用关系。外键可以有重复值,也可以为空值。二.索引的优点和缺点是什么? 索引的优点如下: 1.通过创建唯一性索引,可以保证数据库表...原创 2018-05-25 11:41:57 · 372 阅读 · 0 评论 -
Daily-Notes-June
20190603函数式编程 一切皆是表达式。命令式编程 是 告诉程序怎么做函数式编程 是 告诉程序做什么防止又臭又长的代码:Optional.of(user).map(User::getAddress).map(Address::getCountry).map(Country::getIsoCode).orElse(null);https://segmentfault.com/a/1...原创 2019-06-03 18:43:01 · 208 阅读 · 0 评论