
实战总结
文章平均质量分 66
大摩羯先生
掘金签约作者 | Golang/Java开发者|热衷技术写作,分享服务端技术,一线实战经验
展开
-
实战干货|自研数据存储迁移MySQL实战
本篇聊聊公司自研数据存储迁移到MySQL过程中的技术选型、技术方案设计。围绕数据层进行的实时、离线数据链路进行迁移同步,不再完全依靠应用层的繁重设计,减轻心智负担。最后简单对项目做了反思和建议。原创 2023-01-07 23:30:28 · 791 阅读 · 0 评论 -
Activiti工作流与业务整合实战
Activiti工作流与业务整合进行实践,技术调研对比JBPM与Activiti工作流的特性,结合实际业务和技术背景对Activiti进行改造和融合,通过Aop切面抽离工作流业务,通过Spel进行形参实参绑定及复杂数据结构传参,通过合理的流程设计、架构设计实现Activiti与业务逻辑整合原创 2020-12-07 14:33:34 · 7154 阅读 · 8 评论 -
分享OMS系统实战的三两事
这是一篇关于供应链业务相关的OMS系统实战技术文章,整理自近半年的开发实践,由于业务背景的差异化、具体落地的独特性以及个人业务知识的局限性,这里不做普适性供应链业务领域的深入讨论,仅论述自身业务场景中技术方案的实现过程,部分内容略有一些特殊性和局限性。....................................原创 2022-07-04 00:25:48 · 3562 阅读 · 4 评论 -
分布式事务实战方案汇总
分布式事务实战方案汇总原创 2021-03-02 11:38:57 · 3462 阅读 · 8 评论 -
避坑记录汇总
1、JSF启动报错,排查jsf使用到的jar包,如netty-all、javassist等2、金融网关序列化对Long、String会转换,所以字段端名称不可使用此类关键词3、金融网关序列化对Long会有精度丢失,使用String替代,front层做转换4、金融网关方法名称全局唯一性,使用带有项目业务属性的名称规避命名重复5、启动tomcat异常,注意关注启动日志,一般会有jar冲突,特别是log4j126、核心服务尽量提供release包,确保引用方jar包稳定性,更新快照jar要充分考虑给调用原创 2021-02-23 12:37:44 · 174 阅读 · 1 评论 -
数据落库自动加解密实现
数据落库自动加解密实现原创 2021-02-22 14:33:32 · 289 阅读 · 0 评论 -
[调优]缓存处理逻辑优化
缓存处理逻辑优化、缓存击穿、缓存过滤、缓存移除原创 2021-02-22 14:27:07 · 170 阅读 · 0 评论 -
[算法]流量加权负载控制
流量加权负载控制原创 2021-02-22 14:20:35 · 231 阅读 · 0 评论 -
[设计模式]基于事件驱动机制解耦
基于事件驱动机制解耦、设计模式原创 2021-02-22 14:18:10 · 226 阅读 · 0 评论 -
[调优]Future超时阻塞与线程池拒绝策略
Future超时阻塞与线程池拒绝策略原创 2021-02-22 13:37:22 · 698 阅读 · 0 评论 -
数据库与消息队列分布式事务设计
数据库与消息队列分布式事务设计原创 2021-01-25 15:00:36 · 357 阅读 · 0 评论 -
Redis竞争锁失败异步获取兜底优化
Redis,竞争锁,失败异步获取兜底优化原创 2021-01-04 19:14:50 · 352 阅读 · 0 评论 -
缓存更新脏读问题总结
分布式缓存更新的脏读问题总结原创 2020-12-21 20:13:13 · 529 阅读 · 0 评论 -
Spring事务精细化运用
Spring事务管理,TransactionSynchronization的精细化使用,例举了实战中数据库事务与MQ绑定原创 2020-12-04 09:47:18 · 263 阅读 · 0 评论 -
Spel + AOP动态赋值
Spel提供了强大的各种结构化参数解析能力为动态传参赋值提供了友好支持,Aop提供了切面编程的便利,两者结合使得大量共同的业务逻辑可以抽象成切面,使得代码维护更便利原创 2020-12-02 14:38:40 · 832 阅读 · 1 评论 -
【实战总结】日期排序
1、单链表实现public class LinkedList { private final Integer[] week; public LinkedList() { week = new Integer[]{1, 2, 3, 4, 5, 6, 7};//一周中的7天 } public static Integer[] orderByWeekDayWithLinkedList(Integer[] week, int day) {原创 2020-10-29 16:53:38 · 544 阅读 · 0 评论 -
【实战总结】RPC分布式链路追踪
1、原理通过RPC框架提供的RpcContext进行traceId传递,RpcContext是大多数RPC框架提供的一个ThreadLocal内部实现,供使用方进行传参要在rpc调用前进行设置才可以,否则下游provider拿不到,因为调用后即销毁 保证传值key唯一性,防止无意中被覆盖这里使用了session而不是原始的attachment,是处于某个方法调用声明周期中间调用多个provider,防止调用一次失效(待验证复杂链路追踪)2、实现全局切面/** * @description原创 2020-10-29 16:46:01 · 1451 阅读 · 1 评论 -
【实战总结】动态修改日志级别
配置中心配置成json格式便于扩展,可以针对不同日志类型进行等级控制[{ "name":"root", "level":"debug"},{ "name":"com.jdd", "level":"info"}]代码实现/** * @description: 日志配置 */@Component("logConfig")public class LogConfig { private final static Logger LOGGER = Lo原创 2020-10-29 16:27:51 · 635 阅读 · 0 评论 -
服务性能优化总结
从dbcp数据库连接池参数调优、网络情况优化、logback日志优化、缓存连接等方面对服务接口耗时进行评估分析,给出实战中的解决方案原创 2020-10-29 09:04:21 · 977 阅读 · 2 评论 -
复杂逻辑业务层治理探究
探究复杂业务逻辑治理,通过责任链设计模式、ThreadLocal本地线程变量作为原始素材进行设计,抽象Context、Processor、Executor、Handler等领域模型进行复杂逻辑治理和探究原创 2020-09-28 21:45:54 · 1537 阅读 · 1 评论 -
MySQL分库分表下实现异构业务关系绑定
业务背景在业务量初期,数据量很小,大多数开发人员都选择了采用单库单表进行研发方案设计和构建。单库单表的好处是开发快,业务模型构建与库表映射简单,便于理解和沟通。随着业务增长,伴随单库单表而来的是查询瓶颈问题,首先在单表突破百万甚至千万,在已有索引的前提下查询优化空间并不多,而且数据变更往往要小心翼翼,一旦有大事务会直接拖慢整个数据库的查询性能,连锁雪崩效应带来的后果不堪设想,往往我们会对单库单表进行垂直和水平拆分以达到优化查询的目的。问题描述在水平拆分的过程中,通常都是以一个字段作为切分键对数据进行拆原创 2020-10-12 18:32:54 · 521 阅读 · 0 评论 -
分布式多级缓存设计方案
设计背景概念先简单解释下什么是分布式多级缓存,所谓分布式简单理解就是异地跨机房服务应用部署;所谓多级缓存,这里狭义语义指定的是应用服务级别的缓存,通常泛指Redis、Memcached等;所谓多级缓存,这里是将JVM级的驻留缓存和外部依赖的缓存服务相比而言的。Redis、Memcached等都提供了性能优越的缓存服务,在高并发场景下作为提高吞吐量、优化服务性能的利器立下了汗马功劳。场景一般情况下,缓存我们只使用Redis作为唯一缓存就可以满足大多数业务场景。这里我们不考虑一般的业务场景,现在试图将服原创 2020-09-29 15:11:15 · 1340 阅读 · 0 评论 -
从0到1构建大促运营活动
一年一度的618、双11,是各大电商平台投入资源最多、用户参与最广泛、流量最爆棚、系统最经受考验的时候,作为程序员的一份子,有幸能在工作中接触到这种流量的洗礼,能在一年中最考验系统健壮性的时刻来接收检验,真是让人斗志满满。每逢大促,琳琅满目各式各样的大促运营活动比比皆是,吸引用户眼球的是各类商品补贴、红包、优惠券、免单,活动玩法有签到、完成任务、游戏对战、组团等,获取收益的方式有抽奖、兑换等,最终这些活动的目的就是拉新促活,为平台带来流量,增加平台活跃度,提高用户参与度,激发下单意愿,提高成交转换率。原创 2020-06-24 17:53:12 · 1067 阅读 · 0 评论 -
【实战总结】线程池异常处理策略
简单谈谈线程池在使用过程中出现异常的一些处理策略,合理使用线程池,必须能够识别主线程与线程池直接的关系、充分了解线程池机制,发挥优点,了解盲区,合理利用不留坑。先demo几个例子,有时间展开论述下使用场景和异常处理。/** * created by guanjian on 2020/6/18 15:30 */public class ThreadPoolExecutorTest extends BaseTest { @Resource private ThreadPool原创 2020-06-23 13:16:02 · 723 阅读 · 0 评论 -
【实战总结】决策结果快速匹配
目录1、决策树二叉寻果策略匹配1.1策略匹配示意图1.2方案总结2、决策表映射寻果策略匹配1.1策略匹配示意图1.2方案总结1.3实战1、决策树二叉寻果策略匹配1.1策略匹配示意图1.2方案总结※ 时间复杂度分析平均时间复杂度O(log2N),根据实际业务场景判断配置,极大可能是不平衡树,规则越多则判定路径越长,寻果越慢,反之越快,极端情况退化成单向链表O(N)※ 适用场景适合多级条件判断,前后有顺序依赖判定场景2、决策表映射...原创 2020-06-23 13:07:21 · 587 阅读 · 0 评论 -
【实战总结】分布式任务交替协作
【实战总结】分布式任务交替协作原创 2020-06-23 13:00:18 · 381 阅读 · 0 评论 -
【实战总结】分库路由字段与业务字段绑定落库
问题背景我们一般分库分表的路由字段是用户的账户ID(userId),有些业务场景外部不以此做业务,而是以业务请求ID等进行业务交互所以我们内部系统通过userId来串联业务关系,但是与外部交互要使用到bizId等这些代表业务唯一性的字段,这两个字段不同路由可能会打到不同的库是没办法做数据库事务处理的出现这些场景时的一个需要解决的问题是,按照userId路由字段落库了,但是外部服务交互只有bizId没有userId,导致无法通过bizId反查userId路由到内部的业务数据。常见的解决方.原创 2020-06-20 21:57:35 · 777 阅读 · 0 评论 -
【实战总结】使用Redis做模糊匹配查询
最近在做一个模糊地址查询的需求,剖析需求本质无非就是提供接口入参原创 2020-03-05 09:42:02 · 9934 阅读 · 0 评论 -
【实战总结】根据地图经纬度及范围查询坐标点信息
使用地图经纬度及范围查询坐标点信息的场景,在现实开发中还是有很多机会遇到的,比如地图导航类应用计算两点之间的距离及范围、大众点评美团等点餐按照买家和商家的坐标点进行计算距离,等等。最近在项目中的一个需求和以上问题类似,需要按照用户的地图坐标经纬度查询一定范围内的商户信息。静下心来思考下,把问题拆解分析下就是,已知一个坐标点,按照距离求设定范围的所有坐标点集合。1、知识准备计算两点之间的...原创 2020-03-04 14:15:37 · 4747 阅读 · 0 评论