摘要:摘要 当前web后端开发,都是使用多层工程结构,需要在VO,BO,DTO,DO等各种数据结构中相互转换。这些转换代码都是些比较简单的字段映射,类型转换,重复性工作比较高,可以使用一些工具解放我们的双手 技术方案 实现类转换的方案很多,不同方案有优缺点,需要开发者自行取舍 | 方案 | 优点 | 缺点 阅读全文
posted @ 2020-08-02 12:38 stoneFang 阅读(33) 评论(0) 推荐(0) 编辑
摘要:摘要 经历了一个特殊的2020上半年,疫情出乎意料的持续了半年之久,还是没有看到结束的趋势。虽然外部环境很恶劣,还是做出了个人的重大选择,换工作。期间纠结了很久,毕竟工作就是生活,换工作就是对未来的期待,对过去的总结,对自己的人生的深度思考。这里回顾下当时的个人思考,供后续复盘参考。 当前的状况 2 阅读全文
posted @ 2020-06-25 11:47 stoneFang 阅读(445) 评论(1) 推荐(4) 编辑
摘要:摘要 本文旨在详细分析SpringMVC工作原理以及作为开发者如何基于SpringMVC做扩展。因为SpringMVC分析的文章比较多,所以本文重点讲解如何利用SpringMVC的扩展点实现我们的需求。 什么是Spring MVC SpringMVC的作用是什么呢?需要解决什么问题呢? 下图是一个客 阅读全文
posted @ 2020-05-31 11:28 stoneFang 阅读(208) 评论(0) 推荐(0) 编辑
摘要:概念说明 通常一个消息队列需要掌握的知识点有Topic(主体)、Producer(生产者)、Consumer(消费者)、Queue(队列)、Delivery Semantics(消息传递范式) 蛋疼的是不同的消息队列关于这些名词叫法不一样,含义也不是很精确。所以阿里起了一个项目OpenMessagi 阅读全文
posted @ 2020-05-29 08:00 stoneFang 阅读(68) 评论(0) 推荐(0) 编辑
摘要:摘要 通常处理线上问题的三板斧是重启-回滚-扩容,能够快速有效的解决问题,但是根据我多年的线上经验,这三个操作略微有些简单粗暴,解决问题的概率也非常随机,并不总是有效。这边总结下通常我处理应用中遇到的故障的解决方案。 原则 处理故障的时候必须遵循的一些原则 提早发现问题,避免故障扩散 故障的出现链路 阅读全文
posted @ 2020-05-27 22:30 stoneFang 阅读(200) 评论(0) 推荐(1) 编辑
摘要:摘要 在上一篇中我们介绍了 "数据迁移的套路" ,但是没有介绍具体的方案,这篇着重介绍下具体的数据迁移方案 一. 设计目标 设计一个数据迁移的方案,需要实现以下目标 1. 迁移速度 qps 需要达到1k,这样能保证1亿的数据能够在1~2天内跑完 2. 迁移qps可控 迁移有可能对线上服务有影响,需要 阅读全文
posted @ 2020-05-17 21:41 stoneFang 阅读(66) 评论(0) 推荐(0) 编辑
摘要:数据迁移的类型 随着业务的发展,存储也会经常性的需要迁移。以下场景是我们开发过程中经常遇到的 1. 业务、团队在快速扩张,需要适当时机进行微服务的拆分,需要独立的数据库,将数据从源数据库迁移到新的数据库 2. 单表的记录数比较大,需要进行分库分表。需要将老表的数据迁移到新的分表中。 3. 存储选型不 阅读全文
posted @ 2020-05-04 12:01 stoneFang 阅读(355) 评论(0) 推荐(0) 编辑
摘要:摘要 排序引起的慢查询,通常不是那么容易发现,经常和数据分布有关系。往往在业务刚开始时并没有什么问题,但是随着业务的发展,数据分布呈现一种特定的规律,导致了慢查询,或者并不是什么慢查询,但是随着并发请求数增加,数据库的IOPS使用率变高,进一步导致cpu/内存使用率飙高。造成线上故障。 问题 因为排 阅读全文
posted @ 2020-03-16 21:27 stoneFang 阅读(134) 评论(0) 推荐(0) 编辑
摘要:摘要 最近遇到一个慢sql,在排查过程中发现和分库分表后的索引设置有关系,总结了下问题。 问题 在进行应用健康度盘点时,发现有个慢sql 如下 表结构, 按照userid进行的分表 。 CREATE TABLE ( char(30) NOT NULL COMMENT , int(10) unsign 阅读全文
posted @ 2020-03-15 19:32 stoneFang 阅读(449) 评论(0) 推荐(0) 编辑
摘要:摘要 坊间传闻java web开发人员写了那么多代码,但是其实一半代码都在处理NPE。总是在加班,却大部分时间都在处理包冲突,类加载不了的bug。这些问题总是让新老程序员都很抓狂,有很多的工具可以辅助我们解决这些问题(maven helper插件,arthas等)但是有没有一些原则可以遵循,在源头上 阅读全文
posted @ 2020-02-15 13:40 stoneFang 阅读(134) 评论(0) 推荐(0) 编辑