自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Java 动态代理

【代码】Java 动态代理。

2024-08-21 17:19:19 466 1

原创 使用Canal监听Binlog将数据发送到RocketMQ

可视化界面是源码,需要在本地编译运行,下面是直接编译好的 jar 包。可以看到有旧数据,新数据,数据库名,表名,语句类型等相关信息。网上有许多教程,在这里不在赘述,部署好后,修改配置文件。我下载的是1.1.5的版本,

2024-08-01 20:58:00 1295

原创 Spring源码分析

本文是Spring源码分析目录集整理,方便后续查找,内容是读《Spring源码深度解析》的学习记录文章。本文持续更新中。更新时间更新内容2021/01/7修改目录顺序2021/01/30目前重写进度 : Spring源码分析九:JdbcTemplate 的源码分析2021/06/10个人理解深度不够,沉淀一段时间技术再写Spring 源码分析总结篇一: Spring IOC篇。

2024-07-30 20:18:48 708

原创 使用Netty构建HTTPS请求服务器

实用程序来生成一个新的密钥库文件(Keystore),其中包含一个自签名的密钥对。的文件,该文件包含了一个有效期为一年、2048位的RSA密钥对,用于。可以查看我们的自签名证书无效。会在当前目录下生成一个名为。当所有信息输入完毕后,

2024-07-30 17:44:59 1676

原创 Kafka的入门及简单使用

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。该项目的目标是为处理实时数据提供一个统一、高吞吐、低延迟的平台。其持久化层本质上是一个“按照分布式事务日志架构的大规模发布/订阅消息队列”,这使它作为企业级基础设施来处理流式数据非常有价值。发布订阅模型Kafka 使用类似于消息队列的发布订阅模型,但更侧重于消息持久化以及支持多消费者模型。生产者(Producer)将消息发送到主题(Topic),消费者(Consumer)则订阅这些主题来消费消息。

2024-07-30 14:40:43 1025

原创 RocketMQ的入门及简单使用

Apache RocketMQ 是一款由阿里巴巴开发并开源给 Apache 软件基金会的分布式消息中间件。这款消息中间件以其高性能、高吞吐量、低延迟和高可靠性而著称,并且能够支持大规模的数据处理。主要特点:发布/订阅模型:RocketMQ 支持传统的点对点消息模型以及发布/订阅模型,使得多个消费者可以接收同一个消息。事务消息:RocketMQ 支持金融级别的事务消息处理能力,确保消息的强一致性。高可用性:RocketMQ 设计有容错机制,能够在节点故障时继续提供服务。弹性伸缩。

2024-07-26 16:43:53 1696

原创 SpringBoot的启动流程

对于 Springboot 的配置文件application.yml或者application.properties文件的加载实际上是通过发布环境准备事件完成的,完成这项功能的就是 EnvironmentPostProcessorApplicationListener。EnvironmentPostProcessorApplicationListener 的 onApplicationEvent()方法。application.yml或者application.properties文件。

2024-07-25 22:31:04 827 3

原创 Spring Bean的生命周期

生命周期扩展接口:BeanNameAware、BeanClassLoaderAware、BeanFactoryAware、InitializingBean、DisposableBean、BeanPostProcessor 是一个在 Spring 框架中定义的接口。它是一个回调接口,允许被 Spring 容器管理的 Bean 在初始化过程中获取到自己的 Bean 名称。这对于需要基于 Bean 名称来执行某些特定逻辑的应用场景非常有用。接口定义: 方法会在 Spring 容器创建完 Bean 实例后调用,

2024-07-25 09:58:48 1577 2

原创 MIT 6.824分布式系统课程实验笔记Lab-2

当这些条件满足时,该节点将自己提升为候选人,增加当前任期,给自己投票,并向其他节点发起投票请求。如果该节点在选举中获得了大多数节点的投票,它将变成领导者,并开始发送心跳消息以维持领导地位。如果在请求投票过程中发现有更高任期的领导者,它会放弃竞选并转回跟随者状态。处理 leader 处理 follower 回复的 AppendEntries 请求。处理 leader 发送给 follower 的 AppendEntries 请求。该函数是一个持续运行的任务,负责触发选举过程。

2024-07-18 17:12:04 825

原创 SPI 加载机制详解

   SPI(Service Provider Interface)机制是Java平台提供的一种用于服务发现和服务提供者查找的机制。它允许在运行时动态地加载和实例化实现特定接口的类,从而达到扩展性和灵活性的目的。2.实现类3.配置文件   在每个 JAR 文件的 META-INF/services 目录下,创建名为 com.example.Logger 的文件(假设接口在com.example包下),然后在文件中分别写入:

2024-07-15 22:42:35 1029

原创 Java线程池详解

线程池就是管理一系列线程的资源池,其提供了一种限制和管理线程资源的方式。

2024-07-04 11:20:49 878

原创 MIT 6.824分布式系统课程实验笔记Lab-1

MIT 6.824 是麻省理工大学的一门研究生课程——Distributed Systems,学习这门课程对于了解分布式系统的构建原理、理解分布式程序的运行、优化分布式程序的运行环境会有很大的帮助。课程内容涵盖:分布式、容错、多副本、一致性等议题,附带了 4 个大的实验 Lab 并配套了相关的测试用例,需要基于 Go 语言完成。Lab 会将课程所讲的知识进行实践、贯通,有助于加深我们的理解和记忆。Lab-1 主要是实现MapReduce。

2024-07-03 16:01:13 2085

原创 Java和Go创建线程的方式

【代码】Java和Go创建线程的方式。

2024-07-03 13:28:03 235

原创 Java实现定时任务

Java实现定时任务。

2024-07-03 13:13:47 514

原创 Go实现定时任务

今天工作中,有一个需求是启动一个异步定时任务,下面是Go实现的方式。

2024-07-03 12:18:16 464

原创 伪共享问题

当多个共享变量被缓存到一个缓存行中,就会出现伪共享问题。

2024-07-03 10:59:34 1073

原创 缓存一致性协议(MESI)

缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾。但是,现代的计算机都是多核CPU,每个核心都有自己的缓存空间,当多个核心竞争共享数据时,就会出现数据不一致问题。

2024-07-03 10:11:26 1046

空空如也

空空如也

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

TA关注的人

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