240 发简信
IP属地:山西
  • checkHaveEmptyList() 方法中获取 subSql 是直接获取左括号之后的全部,我在实际应用中有使用函数的情况,比如 rank(),这时这个空括号被匹配了,所以考虑 subSql 去除括号后的其他内容。for 循环后的部分代码:
    String subSql = sql.substring(index);
    int rightBracketIndex = subSql.indexOf(')');
    subSql = subSql.substring(0, rightBracketIndex + 1);

  • @闲人007 超过一定的size就不往delayQueue队列里面丢数据了,走额外的补偿,本质上原因是因为消费能力不够导致的。另外一种方案就是可以试一下通过kafka消息队列做消息分发,通过kafka消息队列来控制消费频率。

    DelayQueue之持久化方案

    上一篇文章中提到了我们在项目中运用DelayQueue解决了一些需要延迟执行的任务,但是最近我们在生产环境上遇到了一个问题。重启服务器后,那些未执行的延迟任务就消失不见了。于...

  • KafkaTopicEnum这个就是枚举的,自己定义的,相当于把所有可能存在的KafkaTopic都用枚举来维护了

    如何动态加载@KafkaListener的topics

    问题来源 我司最近刚重构完,终于有时间去偿还欠下的技术债了。 最先准备改造的就是将一些原本应该异步执行而因重构时间紧而被迫同步执行的方法,通过消息队列异步化。 在原来的老项目...

  • 120
    互联网AbTest系统设计思考

    ABTest系统背景 互联网与传统软件行业的开发最大区别就是快速迭代,新增一个业务或者新增一个基于老业务的算法更新也许只是某个工程师一天的结果。在这种代码高速发布过程中, 必...

  • Redis分布式锁(三):锁超时后导致多个线程获得锁的解决方案

    使用现状 Redis分布锁的基础内容,我们已经在基于AOP和Redis实现的简易版分布式锁这篇文章中讲过了,也在文章中示范了正常的加锁和解锁方法。 分布式锁在之前的项目中一直...

  • Spring的TransactionEventListener

    1. 问题背景: 在之前的项目中,有遇到这样一个使用场景:在一个TransactionA中,我们先向数据库中插入了一条数据EntityA,之后起了一个线程池,而在线程池中我们...

  • 如何动态加载@KafkaListener的topics

    问题来源 我司最近刚重构完,终于有时间去偿还欠下的技术债了。 最先准备改造的就是将一些原本应该异步执行而因重构时间紧而被迫同步执行的方法,通过消息队列异步化。 在原来的老项目...

个人介绍
文章版权归逍遥jc所有,转载请注明来源,谢谢合作