坑爹!Quartz 重复调度问题,你遇到过么?
作者:Lavender来源:https://segmentfault.com/a/11900000154922601.引子公司前期改用quartz做任务调度,一日的调度量均在两百万次以上。随着调度量的增加,突然开始出现job重复调度的情况,且没有规律可循。网上也没有说得较为清楚的解决办法,于是我们开
DDD 领域驱动设计落地实践:六步拆解 DDD
引言相信通过前面几篇文章的介绍,大家对于DDD的相关理论以及实践的套路有了一定的理解,但是理解DDD理论和实践手段是一回事,能不能把这些理论知识实际应用到我们实际工作中又是另外一回事,因此本文通过实际的业务分析把之前文章中涉及的理论和手段全部带着大家走一遍,我想通过这种方式,让大家实际的感受下DDD
记一次异步处理导致Jetty Request对象泄漏
最近排查一个bug,发现了一系列有意思的东西,对「自定义线程池」、「Jetty线程模型」都有了一些新的认识。本文预计阅读时间10分钟,包括:问题表现常见原因筛查根因与源码分析最佳实践一些小TIPS1、问题表现预发环境偶发请求失败异常,服务端显示错误信息为:RequiredStringparamete
湖+仓≠湖仓,什么才是真正的湖仓一体?
文/高博前段时间Databricks和Snowflake因TPC-DS测试结果在湖仓战场正面开撕,让很多业内吃瓜群众大呼过瘾,我们暂且不论两企业究竟孰强孰弱。众所周知,Databricks自始至终都主打数据湖这张牌,而Snowflake则是靠云数仓库起家,有意思的是两大玩家殊途同归,决赛场最终聚焦在
拜托!不要用“ ! = null " 做判空了
为了避免空指针调用,我们经常会看到这样的语句...if(someobject!=null){someobject.doCalc();}...最终,项目中会存在大量判空代码,多么丑
一些常用的Git 知识点整理
Git基本概念repositoryconfiginitclonefetchpullcommitpushbranch
有了 for 循环,为什么还要 while(1)?
来源:网络有读者问题了类似这样的问题:while(1)和for(;;)它们不都是无限循环吗,作用应该一样啊,它们到底有什么区别?要回答这个问题,其实你各自编写一段while(1)和for(;;)的代码,编译对比一下代码大小和汇编文件,你就大概知道了。while(1)和for(;;)语法表达这里先说一
CTO 说了,用错 @Autowired 和 @Resource 的人可以领盒饭了
介绍今天使用Idea写代码的时候,看到之前的项目中显示有warning的提示,去看了下,是如下代码?@AutowireprivateJdbcTemplatejdbcTemplate;提示的警告信息Fieldin
为什么阿里规定需要在事务注解 @Transactional 中指定 rollbackFor?这...
java阿里巴巴规范提示:方法【edit】需要在Transactional注解指定rollbackFor或者在方法中显示的roll
说一下synchronized与Lock的区别与使用
引言:昨天在学习别人分享的面试经验时,看到Lock的使用。想起自己在上次面试也遇到了synchronized与Lock的区别与使用。于是,我整理了两
女朋友乱用Git,差点把我代码删了。。。
想必大家平时都用Git管理代码,通过女朋友误删代码这事,我发现大家平时都或多或少有因为Git用得不熟耽误时间的,比如说:1.怎么又报detachedHEAD了?2.push不上去了,提示nonfast-forwards,什么鬼?3.我想把正在开发的这个项目开源到GitHub上去,怎们做可以同时pus
有了这篇 Shell 脚本实践指南,同事对我“刮目相看”!
前言由于工作需要,最近重新开始拾掇shell脚本。虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看。而且当我在看其他人写的脚本的时候,总觉得难以阅读。毕竟shell脚本这个东西不算是正经的编程语言,他更像是一个工具,用来杂糅不同的程序供我们调用。因此很多人在写的时
记一次简单的 JVM 调优经历
背景最近对负责的项目进行了一次性能优化,其中包括对JVM参数的调整,算是进行了一次简单的JVM调优,JVM参数调整之后,服务的整体性能有5%左右的提升,还算不错。先介绍一下项目的基本情况:项目是一个高QPS压力的web服务,单机QPS一
面试官:写if 时不带 else,你的代码会更好!
来自:medium.com/swlh/5-ways-to-replace-if-else-statements-857c0ff19357设计更好的软件,替换If-Else的5种方法。入门到高级示例让我直接说这句话:If-Else通常是一个糟糕的选择。它导致设计复杂,代码可读性差,并且可能导致重构困难
工作中常见的 Git 异常处理方案
一份值得收藏的Git异常处理清单前言Git作为一种分布式版本控制系统已经成为现在开发的宠儿,不仅应用在前端、后端、客户端等开发场景中,也成为各行业互联网企业分工协作的必备技能之一。大家在使用过程中总会碰到这样那样的问题,本文主要针对以下经常发生的几种异常情况提供一些解决方案:本地工作区文件恢复远程分
烂大街的缓存穿透、缓存击穿和缓存雪崩,你真的懂了?
前言对于从事后端开发的同学来说,缓存已经变成的项目中必不可少的技术之一。没错,缓存能给我们系统显著的提升性能。但如果你使用不好,或者缺乏相关经验,它也会带来很多意想不到的问题。今天我们一起聊聊如果在项目中引入了缓存,可能会给我们带来的下面这三大问题。看看你中招了没?1.缓存穿透问题大部分情况下,加缓
亿级流量架构实战之秒杀设计
前面已经写了很多亿级流量的文章,中间讲了各种处理思路,这儿将这些思路与业务综合起来,情形一就是秒杀,提到秒杀,很多人都会觉得这是一件技术要求很高的事情,因为这涉及到超大访问量(可能瞬间千万倍的用户访问商品)、维护数据一致性(不能超卖),前者对性能有极高的要求,而后者又正好拉低了性能,本文谈谈秒杀的设
面试官:如何中断已发出去的请求?
面试官:请求已经发出去了,如何取消掉这个已经发出去的请求?面试者:(脑海里立马产生一个疑惑:已经发出去的请求还能取消掉?)这个......这个......还真不知道。面试完,马上找度娘.....推荐阅读:axios解析之cancelToken取消请求原理[2]Abor
为什么不建议 for 循环里 String ++?
引言都说StringBuilder在处理字符串拼接上效率要强于String,但有时候我们的理解可能会存在一定的偏差。最近我在测试数据导入效率的时候就发现我以前对StringBuilder的部分理解是错误的。后来我通过实践测
NestJS、TypeORM 和 PostgreSQL 项目开发和数据库迁移完整示例(译)
当Node.jsServer项目越来越大时,将数据和数据库整理规范是很难的,所以从一开始就有一个好的开发和项目设置,对你的开发项目的成功至关重要。在这篇文章中,向你展示是如何设置大部分Nest.js项目的,我们将在一个简单的Node.jsAPI上工作,并使用PostgreSQL数据库作为数据存储,并