自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一文搞懂 Java 类的加载过程:从加载到初始化的完整生命周期(含类加载器与内存分配细节)

你可以通过继承并重写findClass@Override// 从自定义位置读取字节码// 读文件、解密、从网络或数据库加载等// ...插件式加载(不同模块用不同 ClassLoader 实现隔离);热加载(丢弃旧 ClassLoader,使用新 ClassLoader 加载新版类);自定义加密 Jar 包等。

2025-12-17 14:39:13 938

原创 Elasticsearch 的 Routing 策略详解

Elasticsearch 的 Routing 策略详解:原理、类型与最佳实践

2025-11-03 14:13:25 1172

原创 SseEmitter是什么

(服务器到浏览器),它基于 HTTP 协议,和 WebSocket 相比更简单轻量。运行后你会看到服务器每 2 秒推来一条数据,浏览器自动接收并执行回调,无需重新请求。,而不是客户端一直轮询服务器,这种方式就是。建立连接,就可以持续接收服务器推送的数据。,专门用于服务端持续向前端推送事件数据。是 Spring MVC 帮你实现。在 HTTP 协议中,(服务器发送事件)。

2025-09-29 15:35:57 702

原创 RocketMQ:CommitLog、ConsumeQueue、MessageQueue概念

📌 类比:MessageQueue 像快递公司分的投递路线(Route),每个快递员负责一条路线(Queue),而实际快递包裹都存放在仓库(CommitLog)里,通过路线单(ConsumeQueue)才能取出来。RocketMQ 的消息都是统一顺序追加到 CommitLog 里,ConsumeQueue 是按 Topic+QueueId 建立的稀疏索引,指向 CommitLog 的物理偏移量。📌 类比:像是一个巨大的按时间追加的“总账本”,所有消息都先记账到这里。RocketMQ 里。

2025-09-03 15:52:22 525

原创 Elasticsearch 深分页问题

深分页是指。

2025-08-15 10:54:49 699

原创 Spring 策略模式实现

Spring 策略模式实现:工厂方法与自动注入详解

2025-07-25 15:28:08 489

原创 Spring State Machine

spring的状态机

2025-07-09 16:01:36 473

原创 spring event(spring事件)

首先,需要定义一个事件类,该类通常继承自ApplicationEvent。不过,从Spring 4.2开始,你可以使用任何对象作为事件。

2025-06-25 14:20:22 252

转载 多线程的使用

【代码】多线程的使用。

2023-04-11 10:02:00 214

原创 解决Maven资源过滤问题

maven资源过滤问题

2022-06-08 00:55:47 491

原创 Mysql+Canal+ElasticSearch实现数据同步

1.canal简介canal主要用于对mysql的增量日志进行解析(请注意,只支持增量解析,不支持全量解析),提供增量数据的订阅和消费,对mysql增量数据进行实时同步,支持同步到mysql、elasticsearch、hbase等数据源1.1 canal常用组件canal-deployer(canal-server):监听mysql的binlog,把自己伪装成mysql slave,只负责接收数据,不做数据处理canal-adapter:canal客户端,从canal-server中获取数据

2022-04-06 21:18:46 3546 1

原创 Mycat的简单使用

1.简介mycat是国人开发的一款开源的数据库中间件,他的作用就是伪装成一个真的数据库,然后在它背后,连的是多种类型,集群分布式的真实数据库。1.1 mycat的几个概念schema: 逻辑库,与MYSQL中的Database(数据库)对应,一个逻辑库中定义了所包含的Tabletable: 表,即物理数据库中存储的某一张表,与传统数据库不同,这里的表格需要声明其所存储的逻辑数据节点DataNode,这是这是通过表格的分片规则定义来实现的,table可以定义其所属的“子表(childTable)”,子

2022-04-05 11:54:41 4821

原创 SpringBoot 整合RabbitMQ

一、简介RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。RabbitMQ主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需

2022-04-02 21:43:46 2522

原创 面试题01

1.JDK和JRE有什么区别?JRE: Java Runtime Environment (Java运行时环境)。即是java程序的运行时环境,包含了java虚拟机,java基础类库。

2022-04-02 15:13:59 165

原创 SpringCloud Nacos配置中心

1.前言需上篇《SpringCloud Nacos服务注册发现中心》中讲述到了nacos的安装和nacos作为服务发现中心的使用,在本篇文章中继续讲述到nacos作为配置中心的使用,同时也作为服务注册发现中心2.工程目录2.1 pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3

2022-04-01 16:42:02 2628

原创 SpringCloud Nacos服务注册发现中心

1.什么是NacosNacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。从上面的介绍就可以看出,nacos的作用就是一个注册中心,用来管理注册上来的各个微服务。2.下载和安装笔者使用的是1.4.2版本github官网:https://github.com/alibaba/nacos/releases/tag/1.4.2百度云:https://pan.baidu.com/s/1w6J7jXTZzB-

2022-03-31 17:42:36 982

原创 JVM学习(内存结构篇)

1.程序计数器程序计数器在整个JVM中的位置如下出所示定义程序计数器(Program Counter Register)作用是记住下一条jvm指令的执行地址。也就是说程序计数器当作但前线程所执行的字节码的行号指示器。是一种程序控制流的指示器,包括任何的分支、循环、跳转、异常处理、线程回复等操作都需要依赖于当前线程的程序计数器来指引;特点内存空间小,线程私有。不会存在内存溢出。2.虚拟机栈定义: 每个线程运行时所需的内存。描述的是Java方法执行的内存模型:每个方法在执行是都会创建一

2022-03-30 15:50:51 1485

原创 SpringBoot 实现邮件发送功能

1.知识点疏通邮件再项目中经常会被用到,比如邮件发送通知,比如通过邮件注册,认证,找回密码,系统报警通知,报表信息等。 接下来先了解一下邮件协议。1.1 SMTP、POP、IMAP4协议SMIP协议SMTP全称"SImple MAil Transfer Protocol",即简单邮件传输协议。它是一组用于从源地地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式,它的一个重要特点是它能够在传送中接力传送邮件,即邮件可以通过不同网络上的主机接力式传送。POP协议POP邮局协议负责从邮件

2022-03-30 11:19:04 3621 1

原创 SpringCloud Config 配置中心

1.简介SpringCloud Config 服务配置中心,将所有的服务的配置文件放到本地或远程仓库,配置中心负责读取仓库的配置文件,其他服务向被指中心读取配置文件。2.项目目录3. 服务发现中心(eureka-server)3.1 pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w

2022-03-29 17:55:39 703

原创 SpringBoot 整合Mybatis

mybatis标签介绍:https://blog.youkuaiyun.com/weixin_40950778/article/details/786552881.简介Mybatis是一个半自动的ORM持久层框架,内部封装了JDBC。作为开发者只需要关注sql语句本身。MyBatis 是采用 ORM(Object Relational Mapping,对象关系映射)思想实现的持久化层框架。特点:MyBatis 是半自动 ORM 框架。将 SQL 定制抽取出来,以配置文件的方式交由开发人员编写。封装了 .

2022-03-28 12:02:36 393

原创 Mysql 常用命令

1. 数据库启动和连接1.1 启动net start mysql1.2 连接格式1 mysql -u用户名 -p密码mysql –uroot -proot格式2 mysql -u用户名 -p (回车键)密码格式3 mysql -h ip地址 -u用户名 -p密码mysql –h127.0.0.1 –uroot -proot1.3 退出exit1.4 修改密码连接权限数据库: use mysql; 改密码:update user set password=password("

2022-03-27 22:31:27 1303

原创 Redis缓存穿透、击穿、雪崩问题,分布式锁的简单运用

1.一般的缓存处理流程当前台收到请求后,后台先回冲缓存中读取数据,取到直接返回结果,当从缓存取不到结果时,就会访问数据库,从数据库取到数据更新到缓存中,并返回结果,如果数据库也没结果,就返回空。2. 缓存穿透缓存穿透流程图如下...

2022-03-27 12:54:41 1632

原创 SpringCloud Eureka服务注册发现中心

1.什么是EurekaEureka是Netflix公司开源的一个服务注册与发现的组件。和Consul、Zookeeper类似。2.项目结构父工程pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s

2022-03-25 20:32:45 2488

原创 Springboot整合ElasticSearch

一.项目目录结构1.pom文件相关的maven依赖要注意到elasticsearch版本要和自己下载的版本一致;springboot使用版本为2.5.4<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo

2022-03-25 13:49:27 2189

原创 ElasticSearch + Kibana安装及使用(2)

9.基本使用ES 是RESTful 风格的系统,所以我们需要先掌握RESTful 的四个关键词:PUT(修改),POST(添加),DELETE(删除),GET(查询)。其中在ES里面PUT和POST的界限并不是很分明,有时候PUT也作为添加。不设置文档类型时,默认文档类型为_doc基本数据类型:字符串类型:text、keyword数值类型:long、integer、short、byte、double、float、half float、scaled float日期类型:date布尔类型:boo

2022-03-24 11:36:43 1158

原创 ElasticSearch + Kibana安装及使用(1)

1.ElasticSearch是什么?elasticsearch简写es,es是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。2.Kibana是什么?是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。你用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快

2022-03-23 20:25:02 2919

原创 Request和Response相关方法

Request getContextPath(): 这个方法返回的是文本引用映射的虚拟目录地址: 如http://localhost:8080/dmsd-itoo-exam-log-web/course/index.jsp,工程名为/dmsd-itoo-exam-log-web为例: request.getContextPath(),得到工程名:/dmsd-itoo-exam-log-web; request.getServletPath(),返回当前页面所在目录

2022-03-22 21:32:29 209

原创 Dubbo监控中心Dubbo-admin安装

1.Dubbo-Admin是什么为了更好的调试,发现问题,解决问题,因此引入dubbo-admin。通过dubbo-admin可以对消费者和提供者进行管理。下载地址Github:https://github.com/apache/dubbo-admin/Gittee:https://gitee.com/chc0618/dubboadmin2.安装在dubbo-admin\dubbo-admin-server\src\main\resources下的application.properties

2022-03-22 13:44:51 1069

原创 Dubbo+Zookeeper远程调用服务

1、什么是Dubbo官网:https://dubbo.apache.org/zh/Dubbo 是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力。这意味着,使用 Dubbo 开发的微服务,将具备相互之间的远程发现与通信能力, 同时利用 Dubbo 提供的丰富服务治理能力,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。服务发现:Dubbo 基于消费端的自动服务发现能力,其基本工作原理如下图:在本片中笔者将用到zookeeper为注册中心实现远程调用,zookee

2022-03-22 12:29:20 1819

原创 使用Docker部署web项目

1、简介本片文章主要介绍如何使用docker部署web项目。关于docker的安装及基本使用在笔者的另一篇文章中有相关的介绍。链接 https://blog.youkuaiyun.com/H_porridge/article/details/1236091202.准备一个web项目自己有项目的可以用自己项目来部署,笔者此处也有一个web项目https://pan.baidu.com/s/1l8ajTBvBU2Qw80JU-esbsw提取码:1234文件内容:接着存放到操作系统中3.部署mys

2022-03-20 19:06:28 15141 29

原创 Docker安装及使用

一、什么是Dockerdocker帮助文档:https://docs.docker.com/engine/reference/commandline/build/网易蜂巢镜像中心:https://c.163yun.com/hub#/homedocker是一个用来装应用的容器,就像杯子可以装水,笔筒可以放笔,书包可以放书,可以把hello word放在docker中,可以把网站放入docker中,可以把任何想得到的程序放在docker中.1.1 docker三要素镜像(image):doc

2022-03-20 15:01:03 5150 1

转载 Linux基本使用(学习笔记)

1.简介特点:多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,良好的用户页面,出色的速度性能。linux目录结构:bin (binaries)存放二级制可执行文件sbin (super user binaries) 存放二进制可执行文件,只有root能访问etc (etcetera)存放系统配置文件usr (unix shared resoures)用于存放共享的系统资源home 存放用户文件的根目录root 超级用户目录dev (devices)用于

2022-03-19 10:57:56 181

原创 Zookeeper安装(window版)

1.下载zookeeper官网:https://zookeeper.apache.org/接着下载选择想要下载的版本(笔者下载的是(3.5.9)版本)这样就可以下载好了,接着解压。2.配置创建两个文件夹 (data 和 log)在conf目录下zoo.cfg进行配置修改两个路径。即是创建文件夹的路径dataDir=D:\Environment\apache-zookeeper-3.5.9-bin\apache-zookeeper-3.5.9-bin\datadata

2022-03-18 10:55:31 576

原创 Git的基本使用

1. Git是什么?Git是目前世界上最先进的分布式版本控制系统。下面是它的工作原理:workspace:工作区,就是你平时存放代码的地方。Index/Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息。Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里有你提交到所有版本的数据。其中HEAD指向最新的版本。Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑数据交换。2.git的工作流程:3.gi

2022-03-14 13:57:49 363

原创 Vue.js的基本使用

Vue的官网:https://cn.vuejs.org/v2/guide/1.基本介绍:Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。2.基本使用:使用Vue 只需在文件中引用以下两个脚本,十分的方便。引用脚本&l

2022-03-10 17:09:49 1606

原创 23种设计模式之单例模式

1.单例模式的应用场景单例模式是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。单例模式在现实生活中应用也非常广泛;例如,公司CEO、部门经理。J2EE标准中的ServletContext、ServletContextConfig 等、Spring框架应用中的ApplicationContext、数据库的连接池等也都说单例模式。1.饿汉式单例模式饿汉式单例模式在类加载时候就立即初始化,并且创建单例对象。它绝对线程安全,在线程还没出西安以前就实例化了,不可能存在

2022-03-06 14:29:39 265

原创 数据结构与算法之堆排序

1.基本思想堆排序是一种树型选择排序,是堆直接选择排序的进。堆是什么:堆中某个节点的值中是不大于或不小于其父节点的值;堆总是一棵完全二叉树。完全二叉树是由满二叉树而引用出来的。除最后一层无任何子节点外,每一层上的所有节点都有两个子节点的二叉树称为满二叉树。如果除最后一层外,每一层上的节点数均达到最大值;在最后一层上只缺少右边的若干结点,这样的二叉树被称为完全二叉树。通过图解来解释:此时就将一个无序序列构造成了一个大顶堆步骤二:将堆顶元素于末尾元素进行交换,使末尾元素最大。然后

2022-03-05 15:39:55 565

原创 数据结构与算法之希尔排序

1.基本思想希尔排序是基于插入排序的,又叫缩小增量排序。在插入排序中,标记符左边的元素是有序的,右边的是没有排过虚的这个算法取出标记符所指向的数据,存入一个临时变量,然后再缩编有序的数组红找到临时变量应该插入的位置,然后将插入位置之后的元素依次后移一位,最后插入临时变量中的数据,试想,假如有一个很小的数据项再靠近右端的位置上,把这个数据项插入到有序数组中时,将会有大量的中间数据项需要右移一位,这个步骤对每个数据项都执行了将近N次复制。虽然不是所有数据项都必须移动N个位置,但是,数据项平均移动了N/2个位

2022-03-04 21:50:22 484

原创 数据结构与算法之基数排序

1.基本思想基数排序是在同排序的基础上发展而来,两种排序都是分配排序的高级实现。分配排序的基本思想:排序过程无须比较关键字,而是通过“分配和“收集”过程来实现排序。它们的时间复杂度可达到线性阶:O(n)。先来看一下桶排序:桶排序也称为箱排序(Bin Sort),其基本思想是:设置若干个桶,依次扫描待排序的记录R[0],R[1],…,R[n-1],把关键字在某个范围内的记录全都装入到第k个桶里(分配),然后按序号依次将各非空的桶首尾连接起来(收集)。例如,要将一副混洗的52张扑克牌按点数A<2

2022-03-04 17:06:09 627

原创 数据结构与算法之归并排序

1.基本思想该算法采用经典的分治策略(分支法讲问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的答案“补修”在一起,机分而治之)分治算法分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。分治算法的一般步骤:(1)分解,将要解决的问题划分成若干规模较小的同类问题;(2)求解,当子问题划分得足够小时,用较简单的方法解决;(3)合并,按原问题的要求,将子问题的解逐层合并构成原问题的解。归并排序是

2022-03-03 20:54:36 297

空空如也

空空如也

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

TA关注的人

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