摘要: 本文将结合我的工作实战经历,总结和提炼一种从单体架构到分布式微服务都适用的一种文件上传和校验的通用解决方案,形成一个完整的方法论。本文主要解决手段包括多线程、设计模式、分而治之、MapReduce等,虽然文中使用的编程语言为Java,但解决问题和优化思路是互通的,适合有一定开发经验的开发者阅读,希望对大家有帮助。 阅读全文
posted @ 2024-03-18 08:37 James_Shangguan 阅读(395) 评论(0) 推荐(1) 编辑
摘要: 作为一个即将年满30岁的程序员,如果用一句话总结我自己的2023年,这句话应该是什么?这个问题还真把我难住了。这一年是百感交集啊。纠结良久,我打算这样来总结我的2023:平凡而满意的生活,累而不得的工作,再次起航的写作生涯,当然还有焦虑而迷茫的未来。篇中更多是是我的怨念总结,各位看官别见笑啊! 阅读全文
posted @ 2024-03-04 07:42 James_Shangguan 阅读(2716) 评论(17) 推荐(12) 编辑
摘要: 记得之前准备春晚项目的时候,团队成员在一起过架构,老板最常问的问题是“这个组件挂了怎么办?有什么影响?”,我当时还在心里默默嘀咕:这咋都这么容易挂呢?其他组件不做高可用的吗?最近看到**FMEA**,我恍然大悟:哦,这原来不就是 FMEA 吗!? 阅读全文
posted @ 2024-01-29 08:53 James_Shangguan 阅读(424) 评论(2) 推荐(3) 编辑
摘要: 本文将记录和分析日志中的ConcurrentModificationException关键字报警,还有一些我的思考,希望对大家有帮助。 阅读全文
posted @ 2023-12-11 08:08 James_Shangguan 阅读(154) 评论(0) 推荐(2) 编辑
摘要: 6张图表 + 1个案例 带你入门tcpdump的使用和原理 本文通过6张图表 + 1个实战案例,带你轻松入门tcpdump的使用和原理,希望对大家有用! 阅读全文
posted @ 2023-06-24 22:20 James_Shangguan 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 我的2022——有点卷、没学习、还羊了 夜幕下的北京,迎来全新的一年,屏幕前的我,又到了该做年终总结的时候了。2022这一年,工作有点卷、没学习、还羊了…… 阅读全文
posted @ 2023-02-10 23:13 James_Shangguan 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 花1分钟配置远程DEBUG,开发效率翻倍,妹子直呼绝绝子 当把一个工程部署到远程服务器后有可能出现意想不到错误,日志打印过多或者过少都影响问题排查的效率,这个时候可以通过远程调试的方式快速定位bug,提升工作效率。本文主要讲解如何使用Idea开发工具进行远程调试,希望对你有帮助。 阅读全文
posted @ 2023-02-09 09:23 James_Shangguan 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 如果让你看一篇文章,就可以精通HashMap,成为硬刚面试官的高手,你学还是不学? 阅读全文
posted @ 2022-06-26 12:24 James_Shangguan 阅读(562) 评论(0) 推荐(1) 编辑
摘要: 时间是一只藏在黑暗中温柔的手,在我一出神一恍惚之间,物走星移。又到了新年,又到了属于年终总结的时间。 翻开2021年初立下的Flag,是否都已经实现? 终身学习之路 2021年度在极客时间学习120个小时,获得5个证书:《从0开始学架构》、《深入浅出计算机组成原理》、《系统性能调优必知必会》、《手把 阅读全文
posted @ 2022-02-08 16:36 James_Shangguan 阅读(213) 评论(0) 推荐(1) 编辑
摘要: 本文将从数据存储和搜索的角度简单分析Elasticsearch的搜索运行机制,主要涉及搜索API、搜索机制、存在问题和解决方案。 阅读全文
posted @ 2021-12-28 23:18 James_Shangguan 阅读(1131) 评论(0) 推荐(0) 编辑
摘要: 本文探讨Elasticsearch的数据请求、路由和写入过程的原理,主要涉及ES的分布式存储架构、节点和副本的写入过程、近实时搜索的原因、持久化机制等。 阅读全文
posted @ 2021-12-16 08:33 James_Shangguan 阅读(5742) 评论(0) 推荐(2) 编辑
摘要: Mapping是Elasticsearch中数据建模的基础,本文从Mapping简介、Dynamic Mapping、自定义Mapping和Mapping常用参数说明4个部分介绍Elasticsearch如何设置Mapping。 3.1 Mapping简介 3.1.1 什么是Mapping Mapp 阅读全文
posted @ 2021-10-29 09:03 James_Shangguan 阅读(1413) 评论(0) 推荐(1) 编辑
摘要: 本文从基本概念、基本CRUD操作、倒排索引原理、分词等部分来初识Elasticsearch。 阅读全文
posted @ 2021-08-19 23:16 James_Shangguan 阅读(2306) 评论(0) 推荐(3) 编辑
摘要: 磨刀不误砍柴工,要学习Elasticsearch,首先要搭建起来一套学习环境,本文为手把手教你在MacOS上面搭建Elasticsearch学习环境。 阅读全文
posted @ 2021-03-07 20:58 James_Shangguan 阅读(963) 评论(0) 推荐(2) 编辑
摘要: 2021,终于来了!还记得2020年的愿望是什么?活着就好。哈哈,毕竟除了生死,都是小事。虽为小事,但也重要。这一年,我顺利毕业,离开了陪伴多年的校园,成功进入职场,开启了人生中一段崭新的旅程。 阅读全文
posted @ 2021-01-09 23:54 James_Shangguan 阅读(510) 评论(0) 推荐(0) 编辑
摘要: 说起ID,特性就是唯一,在人的世界里,ID就是身份证,是每个人的唯一的身份标识。在复杂的分布式系统中,往往也需要对大量的数据和消息进行唯一标识,这个标识就是分布式ID,那你知道有哪些常用的分布式ID解决方案吗? 阅读全文
posted @ 2020-12-06 21:58 James_Shangguan 阅读(1102) 评论(0) 推荐(2) 编辑
摘要: 本文从是什么、为什么、怎么做的三个步骤,分析简单工厂模式、工厂方法模式和抽象工厂模式,通过框架源码学习如何优雅地使用工厂模式。 阅读全文
posted @ 2020-11-28 22:47 James_Shangguan 阅读(600) 评论(0) 推荐(1) 编辑
摘要: 责任链模式(Chain of Responsibility Pattern)在《Head First设计模式》一书中被称为“剩下的模式”,其实使用也是蛮多的。最近在学习Netty的过程中用到了责任链模式,在此反过头来重温一下责任链模式。本文教你如何优雅地使用责任链模式。 阅读全文
posted @ 2020-07-25 19:16 James_Shangguan 阅读(1003) 评论(0) 推荐(0) 编辑
摘要: 一、为什么需要面向切面编程? 面向对象编程(OOP)的好处是显而易见的,缺点也同样明显。当需要为多个不具有继承关系的对象添加一个公共的方法的时候,例如日志记录、性能监控等,如果采用面向对象编程的方法,需要在每个对象里面都添加相同的方法,这样就产生了较大的重复工作量和大量的重复代码,不利于维护。面向切 阅读全文
posted @ 2020-07-22 22:55 James_Shangguan 阅读(14765) 评论(0) 推荐(4) 编辑
摘要: XXL-JOB是一个分布式任务调度平台,作为当下流行的分布式解决方案,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。它的有两个核心模块,一个模块叫做调度中心,另外一个模块叫做执行器,它把任务调度和任务执行分成两个部分。本文从准备工作、搭建“调度中心”、搭建“执行器”三个步骤进行快速搭建。 阅读全文
posted @ 2020-07-12 21:24 James_Shangguan 阅读(1867) 评论(0) 推荐(1) 编辑