随笔分类 - 总结
摘要:我知道Java枚举会被编译成一个包含私有构造参数和一堆静态方法的类,当去比较两个枚举的时候,总是使用equals()方法,例如: public useEnums(SomeEnum a) { if(a.equals(SomeEnum.SOME_ENUM_VALUE)) { ... } ... }参考
阅读全文
摘要:问题现象 在并发操作的场景下(对业务接口连续请求三次),使用基于redis的分布式锁 RedissonLock解锁时抛出异常。 问题复现代码 public boolean testLock(Integer type) { RLock lock = redissonClient.getLock("te
阅读全文
摘要:问题现象 action请求中request对象为ShiroHttpServletRequest, 可以取到session内容 而在第一个自定义过滤器中request对象中或取不到session内容 原因 session由shiro管理,凡是在shiro过滤器顺序之前的自定义过滤器都取不到sessio
阅读全文
摘要:代码示例 1 public static void main(String[] args) { 2 List<Integer> list = Lists.newArrayList(); 3 List<Integer> listA = Lists.newArrayList(); 4 listA.add
阅读全文
摘要:一、使用场景 1、不需要立即执行、立即得到结果返回。 2、如果执行失败、需要有失败补偿机制。 3、和业务代码解耦,适用于不同的务场景。 4、调用接口的入参、出参 统计,方便查询。 二、执行顺序 1、业务逻辑中,需要调用外部接口时,将参数组装好,往任务表中插入一条任务记录。(主要包括 任务类型、需要执
阅读全文
摘要:1、如何快速了解业务 了解业务背景 了解业务的系统的前世今生,为什么要这么做,意义在哪里,做完后要达到什么预期 先整体再局部 先主流程,再到枝干,细枝末节 角色认知 先分清楚参与系统的角色,职责是什么,要做什么事情,要做这些事情需要经历那些过程(与那些系统有交互)
阅读全文
摘要:1、磁盘改用ssd2、使用中间件进行分库分表3、不能使用注解式事务,使用编程式事务4、优化日志打印和配置5、对日志进行异步写入改造,开启jvm的异步5、使用redis * 限制key的大小 * 配置lru策略 * 使用lua配置 * 进行redis分片6、使用F5硬负载7、关掉AOP、动态代理8、慎
阅读全文
摘要:使用阿里代码规约IDEA插件扫描了工程代码,发现了需要优化的地方,希望大家可以在开发自己的项目时避免此类问题。 【Blocker】 【Critical】 【Major】
阅读全文
摘要:常量类要定义成枚举。可以更全面的看出定义的枚举以及描述信息。 for循环中不能有数据库操作,或者rpc操作。循环库建立数据库连接查询是非常消耗数据库资源的。 for循环中的数据库或者rpc操作应提取到循环外边,使用ids进行in查询 或者使用批量查询接口,减少数据库或者rpc接口的交互。 列表分页写
阅读全文
摘要:分析思路 问题原因 dubbo接口的数据传输需要进行序列化。 解决方法 在服务提供方,返回的DTO implement Serializeable。 报错信息
阅读全文
摘要:流程图关注的是业务逻辑本身,是有一种面向过程的工具;无法为软件内部的交互提供分析支持。 流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序关系。 流程图面向业务逻辑,可以为软件的业务处理流程分析提供帮助。 使用场景 复杂的业务流;多种可能情况可供选择;多种处理结
阅读全文
摘要:大多数java开发的小伙伴都用过maven来对包进行管理。在自己写项目的过程中,对自己的项目也会进行groupdId,artifactId,version的配置。下面我们来对着3个配置进行简单说明。 配置文件中gav的说明 groupId:顾名思义,即组织或公司,一般我们会用公司或者自己的前几级包名
阅读全文
摘要:1.复制过程 2.数据间的同步 上面说的复制过程,其中有一个步骤是“同步数据集”,这个就是现在讲的“数据间的同步”。 redis 同步有 2 个命令:sync 和 psync,前者是 redis 2.8 之前的同步命令,后者是 redis 2.8 为了优化 sync 新设计的命令。我们会重点关注 2
阅读全文
摘要:注解的原理 1、注解 注解英文称 Annotaion,是Java从1.5开始支持加入源码的特殊语法元数据,作为程序的元数据嵌入到程序当中。注解实现有一个重要的接口Annotation接口,利用@interface关键字,将所有使用该关键字的注解类都实现Annotation接口。Annontation
阅读全文
摘要:【aqy、vipkid】 1.自我介绍 介绍工作,介绍项目 2.找一个最有挑战性的项目介绍一下 3.处理过最棘手的问题,自己成长最大的问题。 4.a=a+b,a+=b有什么区别? 在java语言中,a+=b和a=a+b的主要区别是在运算的精度上。 在两个变量的数据类型一样时:a+=b 和a=a+b
阅读全文
摘要:目录 什么是日志 常用日志框架 日志级别详解 日志的记录时机 日志使用规约 logback 配置示例 loh4j2 配置示例 什么是日志 常用日志框架 日志级别详解 日志的记录时机 日志使用规约 logback 配置示例 loh4j2 配置示例 什么是日志? 简单的说,日志就是记录程序的运行轨迹,方
阅读全文
摘要:1、pom.xml配置新版本的jar包,如果引用不到可以先删除本地仓库的jar包,从私服重新下载新版本
阅读全文
摘要:目录 写作背景 什么是链路跟踪 目前常见的链路跟踪技术及其优缺点 链路跟踪技术的实现原理 代码示例 背景 由于最近系统上线后,访问量达,出现线上问题后往往无从下手排查,即使打印了很多日志,依然无法快速准确的定位到出现的问题的原因。为了避免这种尴尬局面,就进行了调研,给开发的系统都加入了链路跟踪的tr
阅读全文