自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Diligence is the mother of success.

技术公众号:“后台技术汇”

  • 博客(597)
  • 资源 (14)
  • 问答 (1)
  • 收藏
  • 关注

原创 一文带你读懂JDK源码:Lambda表达式

点击上方 蓝字 关注我们Lambda和Stream是Jdk1.8中引入的两个重要特性。Lambda是函数式编程,可以将匿名方法像参数一样传递,本章节将从4个方面来介绍lambda:Lam...

2021-01-04 00:58:42 513 1

原创 带你读懂《Java并发编程》:第3章 助于线程安全的三剑客:final & volatile & 线程封闭...

点击上方蓝字关注我们我们简要的回顾前文:《第1章 多线程安全性与风险》介绍了并发编程,在维护难度、性能以及活跃性三个方面,所带来的风险与优势;《第2章影响线程安全性的原子性和加锁机制》...

2020-12-14 20:27:21 179 1

原创 一文带你读懂String类源码

点击上方蓝字 关注我们!String 是日常开发非常频繁的类,此外我们常用的操作还有字符串连接操作符等等。String对象是不可变的,查看JDK文档,我们不难发现String类的每个修改...

2020-12-05 02:52:37 336

原创 一文读懂《Java并发编程实战》:第2章 影响线程安全性的原子性和加锁机制

点击上方蓝字关注我们上文《Java并发编程实战》的第1章“多线程安全性与风险”,讲述了多线程带来的好处与风险。本文承接上文,继续总结《Java并发编程实战》的第二章:线程安全性。下文挑选...

2020-11-30 01:02:45 262 1

原创 一文带你读懂Object类源码

点击上方蓝字关注我们Object类是一个比较特殊的类,是所有类的超级父类,java中如果一个类没有用 extends关键字 明确指出继承于某个类,那么它默认继承Object类。下面我们一...

2020-11-22 22:31:35 258

原创 一文读懂《Java并发编程实战》:第1章 多线程安全性与风险

点击上方蓝字关注我们!多线程是在同一个程序内部并行执行,因此会对相同的内存空间进行并发读写操作。如果一个线程在读一个内存时,另一个线程正向该内存进行写操作,那进行读操作的那个线程将获得什...

2020-11-17 22:30:00 262 1

原创 一文带你读懂HTTP协议的前世今生

点击上方蓝字关注我们HTTP,Hypertext Transfer Protocol,超文本协议,是在万维网上传输文件(如文本、图形图像、声音、视频和其他多媒体文件)的规则集。如果web...

2020-11-15 22:33:07 883

原创 一文带你读懂:系统线程模型与实现原理

点击上方蓝字关注我们各种操作系统均提供了线程的实现(内核线程),线程是 CPU 进行工作调度的基本单位。线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度...

2020-11-05 00:05:36 402 1

原创 一文带你读懂后台开发技术栈

- 程序员你是否厌倦编程工作千篇一律的增删改查?- 程序员你是否迷茫于职业技术的方向瓶颈?- 程序员你是否有个突破自己的小小冲动却无从下手?在公众号这里,用简明扼要的语言和知识重点,帮助我们在有限时间中理解技术原理,达到事半功倍的学习效果,掌握有效的开发技术点,在工作中更加得心应手。后台技术汇技术点Java基础,安身立命的底气:不可不熟透的多态继承封装,不能不精通的容器技术/反射与泛型,不得不兼顾的访问权限与异常,jdk的相关知识都在这总结好了。编程艺术,掌握..

2020-10-07 11:27:20 2308 4

原创 一文带你读懂 BigDecimal 源码

点击上方「蓝字」关注我们本章带来的是BigDecimal类的源码解读。BigDecimal类是 Java 在 java.math 包中提供的API类,用来对超过16位有效位的数进行精确的...

2020-08-29 18:01:50 1138 1

原创 消息中间件之Kafka史上最强原理总结

点击上面“蓝字”关注我们 前言最近项目使用到中间件,自己以前也对kafka原理应用垂涎已久了,故这个周末抽空总结一波。Kafka 是什么?Apache Kafka是分布式发布-订阅...

2020-06-27 13:18:07 574 1

原创 技术人的碎碎念

背景自从去年11月份离开深圳回到广州之后,结婚,找工作,入职,4个月嗖的一下过去了。尤其年后一直很忙,新系统需要上线,工作上一直连轴转,所以没空更新公众号,今天正好是周六,且明天还要补五一的班,不如花点时间梳理一下近期的业务和个人经历调整。来到深圳和离开深圳“深圳梦”,是个人怀揣激情的代名词。一切的起点,始于珠海,裸辞->自学->深漂。2017年11月25日,我一直记得那一天的下午,跟同学合租了一辆货拉拉,带着行李来到深圳宝安区的固戍地铁站,在上围园新村的某个自建房里,合租了一个单间。2018年3月4日,我

2025-04-26 10:55:36 334

原创 JavaAgent技术应用和原理:JVM持久化监控

背景字节码增强技术字节码增强:Java Agent通过修改字节码来实现对应用程序的增强,例如添加日志、性能监控、事务管理等。工具:常用的字节码增强工具包括ASM、Javassist、Byte Buddy等。JavaAgent技术基于JVM工具接口(JVMTI),通过字节码插桩实现其功能,字节码增强技术就是一类对现有字节码进行修改或者动态生成全新字节码文件的技术。JavaAgentJavaAgent...

2024-12-22 17:02:37 1187

原创 腾讯云双十一薅羊毛攻略:云数据库Redis

1、腾讯云双十一“团战”腾讯云双十一拼团GO热火进行中!!!今年的腾讯云双十一活动,玩出了新花样——“百款折扣商品任意拼,双人成团PK有大礼”!这不仅仅是一场购物狂欢,更是一场充满欢笑与惊喜的“团战”!折扣商品大乱斗,省钱又刺激云计算、大数据、人工智能……各种热门商品齐聚一堂,价格更是低到让人尖叫!不论你是企业大佬还是个人小透明,这里都有让你心动的宝贝。而且,折扣力度之大,简直让人想把购物车塞满!...

2024-11-16 16:54:09 911

原创 开发案例| 基于Vue3+SpringBoot+腾讯云语音合成TTS+混元大模型的音频祝福小助手项目...

一、业务分层二、前置工作2.1 API密钥创建可以从这里进入:https://console.cloud.tencent.com/cam/capi2.2 免费额度申领只要开通了通用语音合成服务(长文本暂不支持),无论选择预付费还是后付费的计费方式,都可以享受免费调用额度,免费调用额度将以免费资源包的形式配送,需要在 语音合成控制台 领取,领取成功后会在计费结算时优先扣减。2.2.1 语音合成TTS...

2024-11-15 20:09:13 926

原创 万字长文详解:SpringBoot-Mybatis源码剖析

目录背景传统的Mybaits开发方式,是通过mybatis-config.xml对框架进行全局配置,比如:一级缓存、主键生成器等。而在SpringBoot发布后,通过引入 mybatis-spring-boot-starter依赖包,可以大大减少工作量,实现快速落地,可以参考此前的文章案例:SpringBoot集成Mybatis;下面我们结合SpringBoot分析Mybatis的初始化流程和执行...

2024-11-04 14:43:38 970

原创 SpringBoot集成Mybatis

背景Mybatis是一个半自动化的ORM(对象关系映射)框架,它通过XML或注解的方式将Java对象和SQL语句进行映射,从而实现对数据库的增删改查操作。Mybatis ORM简介基本概念:Mybatis简化了数据访问层的开发,通过映射配置文件或注解将Java对象与数据库表进行映射,实现了对象关系映射。优点:Mybatis提供了灵活的SQL编写方式,支持动态SQL,易于与Spring等框架集成,同...

2024-10-31 15:43:54 1062

原创 Spring源码:事务管理流程分析

背景上一篇我们介绍了Spring的事务案例:Spring事务管理:应用实战案例和规则事务Transaction,它是一系列严密操作动作,要么都操作完成,要么都回滚撤销。Spring事务管理基于底层数据库本身的事务处理机制。数据库事务的基础,是掌握Spring事务管理的基础。数据库事务数据库事务具备ACID四种特性,ACID是Atomic(原子性)、Consistency(一致性)、Isolatio...

2024-10-14 17:05:30 666

原创 Spring源码分析:bean加载流程

背景在Spring中,Bean的加载和管理是其核心功能之一,包括配置元数据解析、Bean定义注册、实例化、属性填充、初始化、后置处理器处理、完成创建和销毁等步骤。源码入口AbstractBeanFactory#doGetBean具体源码流程如下:bean加载流程(#getBean方法)分析:1、提取beanName提取FactoryBean修饰符,比如name=“&aa”,那么就要去掉&a...

2024-10-11 18:30:31 1459

原创 Spring事务管理:应用实战案例和规则

背景想象一下,如果没有Spring框架对事务的支持,我们得自行对事物进行管理:获得JDBC连接、关闭JDBC连接、执行JDBC事务提交、执行JDBC事务回滚操作有了Spring事务框架,我们再也不需要在与事务相关的方法中处理大量的try...catch...finaly代码。话说在前,Spring 中事务的使用虽然已经相对简单得多,但是,还是有很多的使用及配置规则。事务管理,本质是AOP的应用。规...

2024-10-10 17:04:59 702

原创 JDK源码:IO体系讲解

背景IO流是Java中很重要的一部分内容,常用的数据传输,文件的上传和下载都和它分不开。Java中的IO根据处理数据的方式,可以分为字节流和字符流,同时根据传输方向的不同,又可以分为输入流和输出流。图中,整理了在Java 8中根据上述分类的IO流,其中字节输入流有28种,字节输出流有18种,字符输入流有9种,字符输出流有8种,看到这么多的流,实际开发中经常使用到的只是其中的一部分。比如:字节输入流...

2024-10-08 19:53:31 653

原创 多线程反思(中):对ThreadPoolExecutors的思考

背景之前写过关于线程池的源码分析文章:一文读懂JDK源码:ThreadPoolExecutor,但实际上还有很多地方值得思考的。对ThreadPoolExecutors的思考业务定制化ThreadPoolExecutors,而不直接复用Executor的5个现成方法去构建线程池,因为原来的API方式有弊端:1、单线程池,预设资源很可能不够用。2、无界队列,工作池子出问题,默认的maximumPoo...

2024-10-03 16:21:08 943

原创 线程安全反思录(上):ThreadLocal到底安全不?

背景之前我有写过关于ThreadLocal的源码解析相关文章:一文带你读懂JDK源码:ThreadLocal类,但其实它不是业务最优解决方案,比如业界有更加先进的TransmittableThreadLocal可供选择。下面我们按脑图来一起琢磨一下对ThreadLocal的思考线程封闭:不同的Thread会指向不同的ThreadLocalMap对象,从而实现了线程封闭;而这个Map的key是Thr...

2024-09-30 16:42:42 1567

原创 深刻理解Redis集群(上):RDB快照和AOF日志

RDB快照save同步阻塞客户端服务端.conf配置文件# The filename where to dump the DBdbfilename dump.rdb# rdb-del-sync-files是Redis配置文件中的一个选项,它的作用是在主节点上执行BGSAVE或AOF持久化操作时,删除同步锁文件,以释放磁盘空间。当这个选项设置为yes时,Redis会自动删除同步锁文件;当这个...

2024-09-28 22:41:31 646

原创 深刻理解Redis集群(下):Redis 哨兵(Sentinel)模式

背景现在对3个节点的sentinel进行配置。sentinel的配置文件在redis的安装目录中已经存在,只需要复制到指定的位置即可。sentinel是独立进程,有对应的脚本来执行。基于之前的redis 一主二从的架构,我们继续启动3个sentinel进程。哨兵模式的架构图如下:启动哨兵们sentinel6379.confprotected-mode noport 26379daemoni...

2024-09-28 22:41:31 1857 1

原创 深刻理解Redis集群(中):Redis主从数据同步模式

背景目前实现Redis高可用的模式主要有三种:主从模式、哨兵模式、集群模式。今天我们先来聊一下主从模式。Redis 提供的主从模式,是通过复制的方式,将主服务器上的Redis的数据同步复制一份到从 Redis 服务器,这种做法很常见,MySQL通过binlog进行的主从复制也是这么做的。主节点的Redis我们称之为master,从节点的Redis我们称之为slave,主从复制为单向复制,只能由主到...

2024-09-28 22:41:31 1396

原创 源码分析:@SchedulerLock分布式锁

背景@SchedulerLock源码分析思路总结:一个中心(围绕@EnableDiscoveryClient开展)、两个基本点(两个方法级别的注解:@SchedulerLock和@Scheduled)。我们都知道@SchedulerLock有两种分布式锁的方案:一个是Mysql,一个是Redis,分布式锁的底层原理不难:如果是采用Mysql,则通过磁盘记录的一张表,用于存储分布式锁信息如果是采用R...

2024-09-27 16:35:27 1591

原创 SpringCloud源码:服务端分析(一)- 对Client事件的处理

背景从昨日的两篇文章:SpringCloud源码:客户端分析(一)- SpringBootApplication注解类加载流程、SpringCloud源码:客户端分析(二)- 客户端源码分析。我们理解了客户端的初始化,其实跟SpringBootApplication初始化机制息息相关,也和自动化配置类有关。同时我们也留意到了,客户端的四个动作:注册服务、续约服务、拉取注册列表、取消注册;这4个操作...

2024-09-26 15:47:19 464

原创 SpringCloud源码:服务端分析(二)- EurekaServer分析

背景从昨日的两篇文章:SpringCloud源码:客户端分析(一)- SpringBootApplication注解类加载流程、SpringCloud源码:客户端分析(二)- 客户端源码分析。我们理解了客户端的初始化,其实跟SpringBootApplication初始化机制息息相关,也和自动化配置类有关。现在我们一起来分析下服务端的初始化流程,开始之前,我们先梳理下几个常用的框架注解。@Impo...

2024-09-26 15:47:19 1659

原创 SpringCloud源码:客户端分析(二)- 客户端源码分析

背景我们继续分析EurekaClient的两个自动化配置类:自动化配置类功能职责EurekaClientAutoConfiguration配置EurekaClient确保了Eureka客户端能够正确地:- 注册到Eureka服务端- 周期性地发送心跳信息来更新服务租约- 下线时通知Eureka服务端- 获取服务实例列表;更侧重于Eureka客户端的基本配置和功能实现EurekaDiscoveryC...

2024-09-25 23:16:16 855

原创 SpringCloud源码:客户端分析(一)- SpringBootApplication注解类加载流程

总结一句话用@EnableDiscoveryClient注解客户端-启动类,配合@springbootapplication,完成两个步骤:自动读取spring-factories文件的全限定类名内容通过selectImport对这些类进行初始化背景spring.factories作用在maven依赖:spring-cloud-netflix-eureka-client/2.2.6.RELEASE...

2024-09-25 23:16:16 879

原创 SpringCloudEureka实战:搭建EurekaServer

1、依赖引入<dependencies> <!-- 注册中心 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka...

2024-09-24 23:49:54 333

原创 SpringCloudEureka实战:搭建EurekaServer集群

1、前言分布式环境下,考虑发生故障的情况,要构建高可用的注册中心,以增强系统的可用性。2、解决办法注册中心,互相注册,形成一组集群,以实现服务清单的互相同步,达到高可用效果。3、多注册中心集群3.1 DS Replicas在Spring Cloud Eureka中,DS Replicas(数据副本)是指Eureka Server集群中各个节点之间同步注册表信息的副本。3.2注册中心1配置文件ser...

2024-09-24 23:49:54 217

原创 SpringCloudEureka简介

背景SpringCloudEureka是基于NetfliEureka做了二次封装,负责微服务架构的服务治理功能。SpringCloud通过为Eureka增加SpringBoot风格的自动化配置,只需要简单的引入依赖和注解配置,就能让SpringBoot构建的微服务应用轻松和Eureka服务治理体系整合。功能各个微服务实例的注册与发现。每个服务单元向注册中心登记自己提供的服务,将主机与端又号、版本号...

2024-09-24 23:49:54 308

原创 Kafka消息堆积问题排查

背景业务架构图根据 微服务重构:Mysql+DTS+Kafka+ElasticSearch解决跨表检索难题所描述,我们使用了Es解决微服务重构中遇到的Mysql库拆分问题,业务架构图如下所示:Kakfa消息堆积导致的数据一致性问题在下午14:15左右,收到用户反馈,短暂时间内,出现了业务数据一致性问题具体表现是:用户提交了一个页面操作,但是在查询接口里,没有返回最新的操作结果具体校验是:通过问题反...

2024-09-15 08:18:46 1567 1

原创 微服务重构:Mysql+DTS+Kafka+ElasticSearch解决跨表检索难题

1、背景在微服务拆分过程里,会对数据库模块重新进行建模拆分,导致部分表和数据,出现物理隔离,导致跨库JOIN的SQL不可行,并在数据检索上也有性能损耗的风险。下面我们来一起探讨一下,具体的解决方案。1.1 方案比较业界一般解决方案包括不限于下面几个方案实现手段优点缺点应用程序层面改造通过子查询、UNION ALL或进行JOIN操作来实现类似的效果灵活性高、易于实现:可以根据具体需求定制查询逻辑性能...

2024-09-10 22:21:17 1896

原创 基于SpringMVC的API灰度方案

一、背景在微服务重构时,我们常遇到这个业务场景:同样是/api/test,我们实现了新逻辑和老逻辑,然后根据定制的灰度策略,通常灰度API和老API两者都需要支持用户使用。那么是否有比较好解决方案,协助我们完成同名同方法同参数列表的API灰度动态路由的方案呢?我们就基于SpringMVC,通过对底层RequestMappingInfo的参数定制化,实现了methodHandler的动态路由决策,从...

2024-09-08 17:28:10 1455

原创 JDK源码讲解:Bean生命周期案例(初始化/销毁)

背景初始化bean@PostConstruct注解需要结合@Configuration、@Service、@Component注解一起使用,如此一来会在Bean的依赖注入完成之后, 执行被 @PostConstruct 修饰的方法。注意:一个类只能有一个用 @PostConstruct 修饰的方法。@Bean(initMethod = "initMethod")需要结合@Configuration...

2024-09-06 14:39:05 517

原创 SQL治理经验谈:索引覆盖

背景explain - formatid: query sql 的标识idSELECT_TYPE: 查询的类型(SIMPLE/PRIMARY/SUBQUERY/DERIVED/UNION/UNION RESULT/DEPENDENT SUBQUERY/DEPENDENT UNION)table: 表名Partitions: 表连接的分区数type: 查询中使用的访问类型(system/const/...

2024-09-05 23:13:53 1504

原创 理解到位:灾备和只读数据库

背景企业的数据容灾管理目标1、提供数据安全保障,规避业务风险。2、确保应用高可用性,消除计划外的停机时间,减少计划外的停机时间,提高业务连续性。3、考虑结合的方案,提高投资回报。三种线下灾备方案1、本地容灾:业务高可用和读写分离,以提高业务连续性2、同城容灾:兼顾业务连续性和数据安全,应对地区级以3、异地容灾:以数据安全为目标,应对地区级数据风险。每种灾备方式面向的管理目标不同,需要采用不同的方案...

2024-09-04 19:40:17 767

tornado-4.5.2-cp36-cp36m-win_amd64

最新版本的python web开发框架--tornado-4.5.2-cp36-cp36m-win_amd64。

2017-10-08

EDA课程设计报告

大学的 EDA课程设计报告,doc+pdf各一份,希望对各位有用。

2017-10-20

DSP课程设计--语音信号的FIR滤波器处理课程设计

大学的课程设计论文,doc+pdf各一份,希望对各位有用。

2017-10-20

数字信号处理实验报告

大学的实验报告《数字信号处理实验报告》,doc+pdf各一份,希望对各位有用

2017-10-29

Git学习资料

一份pdf资料,讲解了分布式Git版本控制的精髓,希望对大家有帮助。

2017-10-08

电子线路综合设计

大学的小论文《 电子线路综合设计》,doc+pdf各一份,希望对各位有用。

2017-10-29

tomcat资源

包含tomcat的两个版本资源:apache-tomcat-7.0.82-src.zip/exe 和 apache-tomcat-9.0.1-src/exe。

2017-10-31

java开发jar包

jdom2.0.5.jar 和 github项目未打包源码各一份,希望对各位有用。

2017-12-01

java单元测试包

里面是 junit4.7/4.8/4.11.jar单元测试包,希望对各位有用。

2017-12-01

Git学习资料(pdf)

包含了两份pdf,《Gitbook》与《个人Git操作指南》,希望能帮助对git版本控制系统有兴趣的同学。

2017-10-09

嵌入式系统期末报告---基于FPGA的实时目标检测系统应用于无人飞行器

大学的小论文《基于FPGA的实时目标检测系统应用于无人飞行器》,doc+pdf各一份,希望对各位有用。

2017-10-29

冰库环境中的无线传感器应用

大学的小论文《冰库环境中的无线传感器应用》,doc+pdf各一份,希望对各位有用。

2017-10-20

现代家用电器技术与创新

大学的小论文《现代家用电器技术与创新》,doc+pdf各一份,希望对各位有用

2017-10-29

3D打印概论期末论文

大学选修课程的论文,doc+pdf各一份,希望对各位有用。

2017-10-10

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除