慕枫技术笔记_社区达人页

个人头像照片
慕枫技术笔记

InfoQ签约作者、CSDN博客专家、专注于架构设计、微服务以及云原生技术分享

暂无精选文章
暂无更多信息

2022年01月

  • 01.05 15:11:20
    发表了文章 2022-01-05 15:11:20

    RocketMQ高手之路系列:开篇

    本篇是RocketMQ源码阅读的开篇,主要对RocketMQ的架构以及相关目录结构进行介绍,为RocketMQ的源码阅读做一些前期准备工作。 源码下载 源码结构介绍 RocketMQ架构
  • 01.05 15:08:59
    发表了文章 2022-01-05 15:08:59

    Java并发编程系列之三:Java内存模型

    在我们日常项目开发工作中,对于并发场景中经常出现的神奇的Bug大都是由于并发编程中的三个核心问题的不深入理解导致的,即如何进行高效的线程任务分配,如何有效的进行线程之间的相互协作以及如何保证在同一时刻只有一个线程进行共享变量的访问。那我们该如何解决并发编程这三座大山呢,这就需要我们对于Java的内存模型有着深入的理解。本文主要从以下几个方面来阐述Java的内存模型,希望对于学习并发编程的童鞋有所裨益。
  • 01.05 15:05:29
    发表了文章 2022-01-05 15:05:29

    LeetCode解题之五:整数转罗马数字

    LeetCode解题之五:整数转罗马数字
  • 01.05 15:02:46
    发表了文章 2022-01-05 15:02:46

    Netty源码分析系列之一:NIO 基础介绍

    本文是Netty源码分析系列文章的第一篇,主要介绍NIO的基础知识。因为Netty本身就是对NIO进行了封装。 NIO概述 NIO三大组件 总结
  • 01.05 15:01:15
    发表了文章 2022-01-05 15:01:15

    Tomcat源码学习系列之二:IDEA导入Tomcat源码

    在学习Tomcat源码之前,我们首先需要将Tomcat在IDEA中进行导入后,进行代码调试。 Idea导入 Tomcat源码步骤 总结
  • 01.05 14:58:30
    发表了文章 2022-01-05 14:58:30

    Tomcat源码学习系列之一:Tomcat架构分析

    本篇为Tomcat源码学习的开篇,主要通过阅读Tomcat的源码来了解其真正的运行流程以及原理,同时学习其中的架构设计等等。本文主要说明Tomcat的架构。 Tomcat架构 一次HTTP请求在tomcat中的流程 总结
  • 01.05 14:55:12
    发表了文章 2022-01-05 14:55:12

    JDK源码分析系列之三:ArrayList源码分析

    Java中的List集合属于一种线性的数据结构,它继承了Collection接口。常见的List集合实现有ArrayList以及LinkedList,本文将从源码分析以及使用场景等方面对ArrayList进行具体的阐述。 源码分析 使用场景 总结
  • 01.05 14:42:23
    发表了文章 2022-01-05 14:42:23

    Spring原理学习系列之四:Spring AOP原理(从源码层面分析)-------下部

    在上一篇文章中,我们通过跟踪源码调用,一步一步找到了Spring框架中处理AOP的源头,明确了框架中AOP调用的整个过程。本篇文章将侧重探讨其中使用到的代理模式,它是23种java设计模式种的一种比较常用的结构型设计模式,在很多框架中经常可以看到它的身影,同时在我们自己的实际编码中在一些场景下我们也可以使用这种设计模式来组织实现自己的代码,将代码逻辑与实际业务进行解耦。
  • 01.05 14:38:14
    发表了文章 2022-01-05 14:38:14

    SpringBoot源码分析系列之三:拦截器的优雅实现

    所谓拦截器即为可以拦截HTTP请求的并做一些前置或者后置的通用处理手段,是一种AOP的处理方式,它不依赖于servlet容器,而依赖于web框架SpringMVC。主要用于拦截controller的请求接口。 基于URL实现拦截器 基于注解实现拦截器
  • 01.05 14:36:40
    发表了文章 2022-01-05 14:36:40

    算法系列之算法学习书籍以及资料推荐

    算法系列之算法学习书籍以及资料推荐
  • 01.05 14:34:41
    发表了文章 2022-01-05 14:34:41

    开发踩坑记录之四:Tomcat内存溢出问题分析

    系统平台运行一段时间后,平台出现无法访问的问题,重启对应的服务后平台恢复正常。查看日志发现在凌晨两点零四分之后没有对应的日志输出,直到重启服务后才有日志的正常输出。同时发现在Tomcat的目录下存在hprof文件,即java进程的内存镜像文件。初步猜测Tomcat发生了内存溢出导致服务出现假死现象,即在任务管理器中虽然为运行状态,但是实际已不能正常对外提供服务。   对于hprof文件的分析需要借助于内存分析工具Eclipse Memory Analyzer,通过它寻找到平台发生内存泄露的根源,再根据发生内存泄露的地方以及相关的日志信息定位什么样的业务场景下导致该异常情况的发生。
  • 01.05 14:32:20
    发表了文章 2022-01-05 14:32:20

    SpringCloud学习系列之一:基础概念介绍

    本系列博文主要为SpringCloud学习的博文系列。 到底什么是微服务 SpringCloud组件介绍
  • 01.05 14:32:12
    发表了文章 2022-01-05 14:32:12

    Spring原理学习系列之三:Spring AOP原理(从源码层面分析)-------上部

    本文是Spring原理分析的第三篇博文,主要阐述Spring AOP相关概念,同时从源码层面分析AOP实现原理。对于AOP原理的理解有利于加深对Spring框架的深入理解。同时我也希望可以探究Spring框架在处理AOP的解决思路,学习框架的时候,有时候需要站在设计者的角度上去考虑,如果自己是设计者遇到同样需要解决的问题自己会怎么去处理,然后再对照实际框架中的处理方式,这样可以发现自己考虑不足之处。 本文侧重于找到Spring框架处理AOP的起点,至于涉及到的动态代理相关的问题将在下一篇文中着重介绍。
  • 01.05 14:19:04
    发表了文章 2022-01-05 14:19:04

    LeetCode解题之四:最长公共前缀

    LeetCode解题之四:最长公共前缀
  • 01.05 14:17:39
    发表了文章 2022-01-05 14:17:39

    Redis系列之二:Redis基础知识

    正所谓万丈高楼平地起,学习一项技术都需要从其基础知识开始。上一篇介绍了Redis在Linux环境下的安装步骤,本文主要介绍了Redis的基础知识,包括数据结构以及常用命令等。废话不多说,我们直接开始吧。 Redis基础数据结构 Redis常用命令
  • 01.05 12:11:09
    发表了文章 2022-01-05 12:11:09

    Idea使用系列之二:Idea常用快捷键汇总

    本文主要汇总Idea的常用快捷键,掌握这些常用快捷键可以提高实际工作中的开发效率。
  • 01.05 12:06:08
    发表了文章 2022-01-05 12:06:08

    算法系列之栈和队列(二):用栈实现一个队列,要求可以实现队列的基本操作

    需要实现一个类,使用两个栈实现队列的基本操作,包括add、poll、peek。
  • 01.05 12:05:23
    发表了文章 2022-01-05 12:05:23

    算法系列之栈和队列(一):设计一个栈,可以获取栈中最大值以及最小值

    从本篇开始,会持续写一点关于笔试算法题目的博客,主要是一些笔试题中关于算法的部分,这些题目来自于网络以及书籍中。博文会进行题目的分析以及编码实现。之所以是想写这些,因为觉得算法是程序的灵魂,日常工作中大都是一些业务代码的实现,较少会涉及到算法部分。
  • 01.05 12:04:12
    发表了文章 2022-01-05 12:04:12

    Redis系列之一:Linux环境下Redis安装(图文解说)

    本文主要介绍了在Linux环境下安装 Redis的步骤,通过文字加上图片的形式记录安装的过程。希望有需要的同学可以参考文中的安装步骤。
  • 01.05 12:01:06
    发表了文章 2022-01-05 12:01:06

    Java并发编程程系列之二:多线程实现的三种方式

    多线程处理是Java中处理并发任务非常重要的手段。本文主要介绍了多线程实现的几种方式以及每种实现方式优缺点,以供大家在实际开发中可以根据实际的应用场景进行自由选择。 继承Thread 实现Runnable接口 实现Callable接口
  • 01.05 11:59:26
    发表了文章 2022-01-05 11:59:26

    开发踩坑记录之三:PostgreSQL数据库表唯一性约束失效

    在设计数据库表过程中,我们通常会对数据库表进行唯一性约束,以防止事务不一致导致的相同数据的重复插入问题。但是在实际开发中发现,即使设置了数据库表的唯一性约束,仍然出现了相同数据重复插入的问题。
  • 01.05 11:57:45
    发表了文章 2022-01-05 11:57:45

    JDK源码分析系列之二:ConcurrentHashMap原理解析

    我们都知道HashMap是线程不安全的,所以在一些高并发的应用场景下会使用ConcurrentHashMap来进行代替。ConcurrentHashMap是线程安全的,这个大家都知道,但是它线程安全的原理需要进行源码分析才能知晓其中的实际原理。本文将从以下几个方面进行阐述。 ConcurrentHashMap源码解析 ConcurrentHashMap如何保证线程安全
  • 01.05 11:53:49
    发表了文章 2022-01-05 11:53:49

    LeetCode解题之三:无重复字符的最长子串

    LeetCode解题之三:无重复字符的最长子串
  • 01.05 11:53:16
    发表了文章 2022-01-05 11:53:16

    JDK源码分析系列之一:HashMap原理解析(上)

    本文主要借助jdk1.8中HashMap的源码,对HashMap的原理进行了详细的阐述。同时探讨HashMap线程不安全的原因。在Java面试的时候,我们也会经常遇到和HashMap相关的问题,所以对于HashMap的深入理解无论在应对面试还是在实际开发中都非常有必要。 说明:本文讨论的是JDK1.8中HashMap的源码实现。 HashMap类结构 HashMap源码分析 HashMap线程不安全性
  • 01.05 11:50:10
    发表了文章 2022-01-05 11:50:10

    Spring原理学习系列之一:注解原理解析

    对于Spring注解大家肯定都不陌生,在日常开发工作中也会经常使用到注解。有时候提问小伙伴,注解的原理是什么,大部分都回答是利用了反射机制。但是继续深入提问,在Spring中是如何解析这些自带注解以及注解到底在什么时候起作用等问题时,很多人都会犯嘀咕。同样我在实际使用的过程中,也会有相同的困惑。所以一直想探究下注解实际的工作原理以及设计思想。用此文记录下自己对于注解原理的理解,也为有同样疑问的小伙伴提供些不同的理解角度。 原理解析 使用实例
  • 01.05 11:47:31
    发表了文章 2022-01-05 11:47:31

    LeetCode解题之二:Add Two Numbers

    LeetCode解题之二:Add Two Numbers
  • 01.05 11:46:57
    发表了文章 2022-01-05 11:46:57

    开发踩坑记录之二:谨慎使用Spring中的@Scheduled注解

    在一些业务场景中需要执行定时操作来完成一些周期性的任务,比如每隔一周删除一周前的某些历史数据以及定时进行某项检测任务等等。在日常开发中比较简单的实现方式就是使用Spring的@Scheduled(具体使用方法不再赘述)注解。但是在修改服务器时间时会导致定时任务不执行情况的发生,解决的办法是当修改服务器时间后,将服务进行重启就可以避免此现象的发生。本文将主要探讨服务器时间修改导致@Scheduled注解失效的原因,同时找到在修改服务器时间后不重启服务的情况下,定时任务仍然正常执行的方法。 @Scheduled失效原因分析 解析流程图 使用新的方法
  • 01.05 11:43:32
    发表了文章 2022-01-05 11:43:32

    LeetCode解题之一:Two Sum

    LeetCode解题之一:Two Sum
  • 01.05 11:39:10
    发表了文章 2022-01-05 11:39:10

    开发踩坑记录之一:未引入依赖jar包导致服务启动失败

    后面遇到同样需要手动新引入jar包的情况,需要先查看该jar包的自身jar包依赖情况,将其所有依赖的jar包进行增加才可以防止上述问题的产生
  • 01.05 11:38:21
    发表了文章 2022-01-05 11:38:21

    SpringBoot源码分析系列之一:配置自动化

    大家都知道SpringBoot简化了Spring开发工作,让开发者不用再去面对繁琐的配置,可以使我们可以迅速上手进行开发,将重点放在业务逻辑的实现上。但也正因为这样,使得开发者容易忽略对于其背后原理的理解。我们可能知道怎么用,但是实际上并不知道SpringBoot如何实现自动配置以及如何通过内置tomcat进行启动等等的原理。为了探究SpringBoot背后的技术原理,特地将学习的过程记录下来形成一个文章系列,另外希望对这方面有相同困惑的同学有所裨益。 自动配置介绍 Kafka自动配置源码分析 总结
  • 01.05 11:34:42
    发表了文章 2022-01-05 11:34:42

    Idea使用系列之一:Idea设置类注释模板和方法注释模板

    现在Idea越来越流行了,自己慢慢开始从Eclipse转向Idea开发。刚开始使用Idea,肯定会遇到各种各样的设置问题,所以在博客上专门有个文章系列进行记录,希望给转Idea开发的同学一点帮助。 设置类模板 设置方法模板
  • 01.05 11:31:19
    发表了文章 2022-01-05 11:31:19

    SpringBoot整合TICK(Telegraf+InfluxDB+Chronograf +Kapacitor)监控系列之一:InfluxDB

    TICK各个模块说明如下所示: T(Telegraf):服务监控数据采集,包括服务器CPU、内存、IO、进程状态、服务状态等等; I(InfluxDB):时序型数据库,存储Telegraf采集的监控数据,每条数据都会有time序列; C(Chronograf):时间序列数据可视化展示; K(Kapacitor):可以按照预先编写好的规则,实时地订阅influxDB数据或者批量查询数据,并进行告警。
  • 01.05 11:27:11
    发表了文章 2022-01-05 11:27:11

    SpringBoot参数校验机制之一:基本验证概念

    在实际项目开发中,我们会对Controller层接收到的参数进行基本的校验,本文主要介绍SpringBoot项目中使用注解对输入参数进行初步规则校验的方法。本文将从以下几个方面进行阐述。 Rest请求方式 校验框架 常用的参数校验注解 代码示例
  • 01.05 11:20:12
    发表了文章 2022-01-05 11:20:12

    Java工程中读取resources目录下properties文件的几种方法

    本文主要介绍了几种读取工程resources目录下properties文件的方法以及注意事项,实际开发中可以根据自己的需要选择合适的方式。
  • 01.05 11:17:07
    发表了文章 2022-01-05 11:17:07

    PowerMock在Java开发自测中的应用

    Java开发中的单元测试,不仅可以检测代码逻辑的正确性,同样也可以通过边界测试用例考验代码健壮性,它是开发过程中重要的质量保证手段。单元测试用例以及持续集成测试用例不断增加和迭代会驱动代码不断完善。本文以PowerMock工具作为主要的讨论对象,通过开发过程中遇到的不同的问题场景,阐述对应问题场景下PowerMock在单元测试发挥的作用。 所谓Mock对象实际是将类似于数据库操作、调用远程接口等不影响原有代码逻辑但是依赖于外部对象的对象行为进行模拟。在单元测试过程中将Mock出来的对象代替程序实际运行中的对象调用,使其并不真正去执行对象调用,只返回需要的数据即可。通过这样的方式来验证主程序中的
  • 01.05 11:13:17
    发表了文章 2022-01-05 11:13:17

    Java并发编程系列之一:Java线程池ThreadPoolExecutor分析

    通过Java线程池的使用,实现线程的复用,降低了线程创建和销毁所带来的系统的开销。同时避免了线程上下文切换带来的系统开销。使用线程池需要注意以下几点: (1)创建线程池时,最好设置里面工作线程的名称,这样在出问题时可以方便在日志中进行问题的排查;

2021年12月

  • 12.22 08:27:46
    发表了文章 2021-12-22 08:27:46

    DDD 领域驱动设计落地实践系列:微服务拆分之道

    在前面的两篇文章中,笔者给大家介绍了 DDD 核心思想、重要概念以及如何进行 DDD 进行微服务实践的大致过程,后续的文章中将逐渐深入 DDD 的实践细节,包括领域模型与代码模型的映射以及具体的微服务设计实例等。当下微服务盛行,微服务架构解决了单点系统的可用性问题、突破单节点服务的性能瓶颈同时提升了整个系统的稳定性。因此各大公司纷纷转向微服务架构,但是在实际的微服务拆分过程中也会遇到不少的问题。而 DDD 中的领域模型构建以及边界上下文的划分天然的和微服务划分有着异曲同工之妙,因此结合 DD 领域驱动设计来进行微服务拆分是一种比较好的微服务拆分方案。那么今天就和大家聊聊怎么进行微服务拆分。
  • 12.21 07:42:35
    发表了文章 2021-12-21 07:42:35

    DDD领域驱动设计落地实践系列:战略设计和战术设计

    通过前面的文章介绍,相信大家对于什么是DDD有了初步的了解,知道它是一种微服务的架构设计方法论,为我们解决如何建立领域模型,如何实现微服务划分等提供了方向和指导。但是对于如何具体落地使用DDD,可能大家还是一脸懵B的状态,因此从本文开始以及后面的文章将对如何进行DDD落地进行详细的阐述。在这其中还是会涉及到DDD中的一些重要概念,原本想着在一篇文章中介绍所有的概念,但是我觉得,概念总是在它该出现的时候出现才会让大家印象深刻,否则这些概念只是死板的概念,我们不清楚他为什么出现以及可以解决什么问题。
  • 12.16 21:42:30
    发表了文章 2021-12-16 21:42:30

    DDD领域驱动设计落地实践系列:初识DDD

    笔者在经历的很多项目中都使用了DDD领域驱动设计进行架构设计,尤其是在业务梳理、中台规划以及微服务划分等方面,DDD是重要的架构设计方法论,对平时的架构设计有非常好的指导作用。从本文开始笔者将通过一系列的文章阐述自己对于DDD的理解以及如何在项目实战中落地实践DDD。本文作为系列文章的开端,主要和大家聊聊DDD的一些基本概念以及常用方法。
  • 发表了文章 2023-07-28

    如何写出一手好代码(上篇 - 理论储备)?

  • 发表了文章 2023-03-09

    Java代码是如何被CPU狂飙起来的?

  • 发表了文章 2022-12-22

    缓存数据丢了,原来是Redis持久化没玩明白

  • 发表了文章 2022-11-23

    AIOT在企业数字化转型中的机遇和挑战

  • 发表了文章 2022-10-21

    聊聊那些年遇到过的奇葩代码

  • 发表了文章 2022-10-16

    组装式架构重构未来平台研发模式

  • 发表了文章 2022-10-05

    同事嫌我改Bug慢,原来是没掌握这些代码Debug技巧

  • 发表了文章 2022-09-24

    Java服务异常问题排查定位大图

  • 发表了文章 2022-09-24

    技术团队如何高效落地代码CR

  • 发表了文章 2022-08-01

    如何优雅的消除系统重复代码

  • 发表了文章 2022-07-28

    DDD领域驱动设计如何进行工程化落地

  • 发表了文章 2022-07-16

    如何在阿里云serverless发布一个Springboot应用

  • 发表了文章 2022-04-20

    30个实用SQL语句,玩转PostgreSQL

  • 发表了文章 2022-01-30

    11 张图深入理解分布式锁原理

  • 发表了文章 2022-01-06

    DDD 领域驱动设计落地实践系列:工程结构分层设计

  • 发表了文章 2022-01-06

    【日拱一卒进击大厂系列】ArrayList的面试陷阱别跳进去了

  • 发表了文章 2022-01-06

    Elasticsearch核心原理系列:10张图理解Elasticsearch核心概念

  • 发表了文章 2022-01-06

    偷偷看了同事的代码找到了优雅代码的秘密

  • 发表了文章 2022-01-06

    2021年校招Java岗中间件面试题汇总

  • 发表了文章 2022-01-06

    【日拱一卒进击大厂系列】面试官:为什么单线程的Redis可以实现高并发访问

正在加载, 请稍后...
滑动查看更多
  • 回答了问题 2022-10-25

    你有哪些极客装备?

    一年一度的1024程序员节又来了,这是一个非常特殊的日子,主要用来向那些默默用代码改变世界的程序员们致敬。要说节日的氛围还得是阿里云开发者社区,社区活动丰富,奖品多多。 趁着这次每周小宝来唠嗑的栏目,和大家分享下平时开发代码以及学习技术都会用到的利器吧。 戴尔灵越笔记本:全金属机身,蓝色外壳有种静谧的神秘感,i7处理器,16g内存再加上520G固态硬盘为代码开发输出强劲动力。 杜伽机械键盘:传统的机械键盘噼里啪啦的声音虽然很有节奏感,但是时间长了感觉有点吵,所以选了这款红轴的机械键盘,没什么敲击键盘的声音,不会影响到其他人。 Sony降噪耳机;学习的时候希望达到一种忘我的境界,因此需要隔绝自己与外部世界,因此带上降噪耳机,仿佛整个世界都安静了,完全沉浸在自己的世界里面,在只是的海洋里遨游。 支架:这个支架既可以放笔记本也可以放书本,这样在看书的过程中就不会感觉颈椎太累,实际用起来效果非常好。 Ipad:主要用来看下学习视频以及进行写架构图或者草图的绘制,辅助笔记本的使用。 戴尔显示器:这是一个27寸的2k显示器,显示器大了,无论是看视频、看文章或者看代码都非常给力。感觉整个屏幕铺在自己的眼前,显示效果也比较细腻,看的时间长了也不会感觉演进太累。 好了我的学习利器就分享到这里了,最后祝愿各位程序员同学Bug少少,脱发少少,挣钱多多。
    踩0 评论0
  • 回答了问题 2022-09-23

    你知道什么是“云境深处的守护者”吗?

    欧阳老师好 网络安全问题由于近期某大国在网络上长期渗透潜伏被发现,公然攻击我国科研单位被发现而再次引起大家的广泛关注。当前我们正处于各行各业数字化转型进展中,AIOT为万物互联提供技术基础,也为实现全行业数字化转型提供能力支持,未来将有万亿级别的物联设备实现在线化。因此万物在线后的网络安全问题非常值得关注,因为IOT设备一旦被破解,可能会导致不可挽回的财产损失以及个人安全,甚至威胁国家安全。因此如何构建一道强大的AIOT安全防护网是一个非常值得思考以及在未来有强大需求的话题。在下看来,需要从设备自身安全、设备系统安全、网络通信安全、AIOT平台全、安全升级机制、接口鉴权全覆盖等等方面进行入手,全面扫清整个平台架构中涉及的安全盲点。希望欧阳老师可以聊聊阿里在AIOT技术架构下有哪些优秀的安全实践和思考,谢谢。
    踩0 评论0
  • 回答了问题 2022-09-14

    你有哪些开发者的困扰?

    我觉得主要还是需求确认的问题吧,因为需求如果部明确或者没有聊头,很容易出现做出来的东西和预想之间存在一定的gap。所以程序员在写代码之前一定要把需求理解透彻,有的时候PD只能看到表面的东西,作为理解底层业务逻辑的研发需要帮助他们梳理清楚需求背后业务方真正的诉求到底是什么。
    踩0 评论0
  • 回答了问题 2022-09-01

    你想问李飞飞什么问题?

    数据库国产化替代是一个不久的趋势,那么国产数据库在稳定性、安全性等方面是否可以满足业务方的需求?未来国产化数据库还会迎来怎样的发展?
    踩0 评论0
  • 回答了问题 2022-08-19

    你收到过哪些特别的开发者周边?

    最喜欢的周边肯定还是云小宝,不知不觉来阿里云社区已经1177天了,希望未来可以创作更多的好文章,希望阿里云社区越办越好呀。
    踩0 评论0
正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息