随笔分类 -  实战总结

摘要:背景 最近公司内部在做某自研数据存储的下线工作,这里我们暂且化名其为DistributeSQL,由于DistributeSQL不再进行服务支持,需要迁移项目中使用到该存储到其他数据存储中。 本篇来聊聊这次在数据存储迁移过程中的方案设计思路、实现的大致细节以及对技术组件选型、技术能力储备重要性的理解。 阅读全文
posted @ 2023-01-07 23:30 大摩羯先生 阅读(117) 评论(0) 推荐(0) 编辑
摘要:OMS系统实战 1. 前言2. 架构设计2.1 业务架构2.2 系统架构 3. 功能演进3.1 单据业务演进3.2 库存管理演进 4. 一般功能设计4.1 关联数据映射4.2 状态数据隔离4.3 分布式事务业务化4.4 幂等改造4.5 防重键扩展4.6 动态库存挑战 5. 典型问题5.1 状态机跳跃 阅读全文
posted @ 2022-07-04 00:25 大摩羯先生 阅读(342) 评论(0) 推荐(0) 编辑
摘要:分布式事务实战方案汇总 1. 最终一致性1.1 本地事务表 + 轮询补偿交互流程场景:重构业务新老系统双写库同步项目背景分布式事务设计方案场景Q&A 场景:第三方认证核验项目背景分布式事务设计方案场景Q&A 1.2 本地事务表 + 事务消息交互流程场景:分库分表路由字段绑定项目背景分布式事务设计方案 阅读全文
posted @ 2021-03-02 11:38 大摩羯先生 阅读(28) 评论(0) 推荐(0) 编辑
摘要:1、JSF启动报错,排查jsf使用到的jar包,如netty-all、javassist等 2、金融网关序列化对Long、String会转换,所以字段端名称不可使用此类关键词 3、金融网关序列化对Long会有精度丢失,使用String替代,front层做转换 4、金融网关方法名称全局唯一性,使用带有 阅读全文
posted @ 2021-02-23 12:37 大摩羯先生 阅读(22) 评论(0) 推荐(0) 编辑
摘要:数据落库自动加解密 注解逻辑切面 注解 /** * @author: guanjian * @date: 2020/07/18 8:09 * @description: 数据保护注解(方法注解) */ @Documented @Retention(RetentionPolicy.RUNTIME) @ 阅读全文
posted @ 2021-02-22 14:33 大摩羯先生 阅读(30) 评论(0) 推荐(0) 编辑
摘要:[调优]缓存处理逻辑优化 缓存问题缓存过滤代码实现缓存移除 缓存问题 优化解决三个问题: 缓存逻辑抽离业务逻辑,以缓存切面形式进行拦截和过滤缓存穿透、缓存击穿缓存与数据库的数据一致性 缓存过滤 ① 通过spel进行缓存key动态解析② 缓存穿透保护。 缓存无数据则第一时间设置empty,防止流量击穿 阅读全文
posted @ 2021-02-22 14:27 大摩羯先生 阅读(30) 评论(0) 推荐(0) 编辑
摘要:public class ModRoutingTest { public static void main(String[] args) { //a渠道调用量 int a = 0; //b渠道调用量 int b = 0; //切量比 a:all int rate = 5; //样本数 int sam 阅读全文
posted @ 2021-02-22 14:20 大摩羯先生 阅读(8) 评论(0) 推荐(0) 编辑
摘要:0、项目示例 基础服务拆分方法请求生命周期触发UMP监控、日志打印、异常获取等用户信息变更触发生效、失效、变更逻辑变化 1、事件结构 │ XXXAspect.java │ IAspectHandler.java │ ├─annotation │ XXXAspect.java │ ├─event │ 阅读全文
posted @ 2021-02-22 14:18 大摩羯先生 阅读(34) 评论(0) 推荐(0) 编辑
摘要:Future超时阻塞与线程池拒绝策略 一、拒绝策略DiscardOldestPolicy二、拒绝策略DiscardPolicy 一、拒绝策略DiscardOldestPolicy /** * @author: guanjian * @date: 2020/06/30 14:39 * @descrip 阅读全文
posted @ 2021-02-22 13:37 大摩羯先生 阅读(78) 评论(0) 推荐(0) 编辑
摘要:1. 本地消息事务表 + MQ回调线程补偿 ①prepare 准备阶段。本地客户端向DB、MQ发送prepare请求② ack 准备确认阶段。DB、MQ作为事务参与者返回本地客户端ack确认③commit/rollback 提交/回滚阶段。 根据事务参与者在准备确认阶段返回结果进行事务提交或回滚,此 阅读全文
posted @ 2021-01-25 15:00 大摩羯先生 阅读(32) 评论(0) 推荐(0) 编辑
摘要:优化前 //返回对象 Object result = null; //分布式锁 String cacheLock = CacheUtil.genLockKey(cacheKey); if (lock.lock(cacheLock, 5000, TimeUnit.MILLISECONDS)) { tr 阅读全文
posted @ 2021-01-04 19:14 大摩羯先生 阅读(19) 评论(0) 推荐(0) 编辑
摘要:1、问题背景 业务方反馈数据更新存在缓存不一致问题,于是开始排查。 2、日志记录 09:39:56:281 [查询线程T-1]没有缓存,获取缓存锁 09:39:56:286 [查询线程T-1]查询到脏数据 09:39:56:287 [更新线程T-2]数据库事务已提交,缓存移除 09:39:56:28 阅读全文
posted @ 2020-12-21 20:13 大摩羯先生 阅读(17) 评论(0) 推荐(0) 编辑
摘要:Activiti工作流与业务整合实战 1. 业务背景2.技术调研JBPM vs Activiti选型对比Activiti工作流特点 3.流程设计4.架构设计5.项目实战5.1 maven配置5.2 持久化改造分库分表字段及索引长度适配 5.3 部署bpmn更新问题5.4 Activiti核心服务5. 阅读全文
posted @ 2020-12-07 14:33 大摩羯先生 阅读(297) 评论(0) 推荐(0) 编辑
摘要:1. 事务同步器 TransactionSynchronization是Spring提供的事务接口,它定义了一次事务操作的各种可能存在的方法,我们可以通过声明抽象类、匿名类等方式进行注册事务方法在各阶段实现业务逻辑。 /** * created by guanjian on 2020/12/4 9: 阅读全文
posted @ 2020-12-04 09:47 大摩羯先生 阅读(28) 评论(0) 推荐(0) 编辑
摘要:1、注解Annotation /** * created by guanjian on 2020/11/30 19:58 */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @in 阅读全文
posted @ 2020-12-02 14:38 大摩羯先生 阅读(26) 评论(0) 推荐(0) 编辑
摘要:1、单链表实现 public class LinkedList { private final Integer[] week; public LinkedList() { week = new Integer[]{1, 2, 3, 4, 5, 6, 7};//一周中的7天 } public stat 阅读全文
posted @ 2020-10-29 16:53 大摩羯先生 阅读(32) 评论(0) 推荐(0) 编辑
摘要:1、原理 通过RPC框架提供的RpcContext进行traceId传递,RpcContext是大多数RPC框架提供的一个ThreadLocal内部实现,供使用方进行传参要在rpc调用前进行设置才可以,否则下游provider拿不到,因为调用后即销毁 保证传值key唯一性,防止无意中被覆盖这里使用了 阅读全文
posted @ 2020-10-29 16:46 大摩羯先生 阅读(110) 评论(0) 推荐(0) 编辑
摘要:配置中心 配置成json格式便于扩展,可以针对不同日志类型进行等级控制 [{ "name":"root", "level":"debug" },{ "name":"com.jdd", "level":"info" }] 代码实现 /** * @description: 日志配置 */ @Compon 阅读全文
posted @ 2020-10-29 16:27 大摩羯先生 阅读(24) 评论(0) 推荐(0) 编辑
摘要:服务性能优化总结 一、数据库连接池耗时优化1.1 问题排查1.1.1 线上dbcp配置情况1.1.2 dbcp配置项含义1.1.3 dbcp现有配置分析1.1.4 线上数据库情况分析 1.2 原因分析1.3 解决过程1.3.1 数据库连接数规划1.3.2 连接池参数调优日常调用评估大促调用评估压测调 阅读全文
posted @ 2020-10-29 09:04 大摩羯先生 阅读(74) 评论(0) 推荐(0) 编辑
摘要:业务背景 在业务量初期,数据量很小,大多数开发人员都选择了采用单库单表进行研发方案设计和构建。单库单表的好处是开发快,业务模型构建与库表映射简单,便于理解和沟通。随着业务增长,伴随单库单表而来的是查询瓶颈问题,首先在单表突破百万甚至千万,在已有索引的前提下查询优化空间并不多,而且数据变更往往要小心翼 阅读全文
posted @ 2020-10-12 18:32 大摩羯先生 阅读(40) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示