- 博客(7)
- 资源 (2)
- 收藏
- 关注
原创 代码风格讨论,同一行代码进行多个方法调用
最近接手个项目,里面的代码风格实在是看着难受,一行代码中出现5,6层的嵌套调用,举例如下:现在有方法A()、B()、C()、D()、E()、F();出现了一行代码这样调用 var example = A(B(C(D(E(F())))));个人没觉得这样的代码性能比写6行高,但是代码的可读性差了不止1个数量级,太令人头疼了,于是网上搜了下面一段话,发现确实有人和我的看法一致,有感而发,吐槽一下 I am curious whether packing mul...
2022-03-12 09:05:48 666
原创 MySql连接超时引起的生产故障
吃饭期间,忽然收到线上告警,排查原因发现是数据库连接超时。于是联系DBA,一番排查下来数据库的Master节点的宿主机出现了故障。主从切换后,告警还没回复,业务不可用,继续看链路跟踪日志。找链路中耗时最长的那个节点,发现错误log入下:org.springframework.dao.RecoverableDataAccessException: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.Commun
2022-03-11 17:52:28 1673
原创 生产环境的Oracle数据库到Mysql数据库千万级数据迁移实战
1、源数据库Oracle11g,目标数据库Mysql5.7,迁移表约6张,其中1张表要拆成MyyinL应的3张表。2、最大表的数据量大约2000万+,拆成MySql表后,对应为2000万*3张表。3、一开始方案是,将Oracle数据库导出到excel中,然后再读取excel写入MySQL数据库,使用java程序导出导入数据,导入时耗时非常长,评价统计耗时为100万条数据插入耗时1小时左右(100万*3张表)。4、后续采用MySQL的Load Data local infile命令导入数据,导入速
2020-08-14 00:03:12 1555
原创 微服务拆分原则
在设计微服务的时候,我们一般会遵循以下4个原则:1)AKF拆分原则2)前后端分离原则3)无状态服务4)restful的通信风格AKF拆分原则对于一个规模迅速增长的系统而言,容量和性能问题当然是首当其冲的。但是随着系统规模的增长,除了面对性能与容量的问题外,还需要面对功能与模块数量上的增长带来的系统复杂性问题以及业务的变化带来的提供差异化服务问题。许多系统,在架构设计时并未充分考虑到这些问题,导致系统的重构成为常态,从而影响业务交付能力,还浪费人力财力!对此,《可扩展的艺术》一书提
2020-07-07 23:40:51 5631 1
原创 @slf4j日志格式配置
使用@Slf4j注解配置日志: 步骤: 在pom.xml中添加lombok; 使用@Slf4j注解; 默认可以使用log.error()、log.info()、log.debug()等输出; 在yml中配置日志输出: 配置属性: logging.config:日志配置文件的位置。例如:classpath:logback.xml。 logging.exception-conversion-word:当日志出现异常时会用到这个转换词。 logging.file:配
2020-05-27 22:03:21 8989
原创 面试问题
1、公平锁和非公平锁是如何实现的?2、永久代何时回收内存?full GC 时一起回收3、concurrenthashmap计算size?4、 线程池中基础 线程数量满了后,线程池如何处理?5、tcp 中nodelay如何使用公平锁FairSync公平锁的实现机理在于每次有线程来抢占锁的时候,都会检查一遍有没有等待队列,如果有, 当前线程会执行如下步骤:if (!...
2018-12-11 21:17:53 81
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人