自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Roc的博客

《备忘录》

  • 博客(135)
  • 收藏
  • 关注

原创 消息队列-Kafka

分布式流处理平台是一种软件系统,专为在多台计算机上实时处理和分析连续数据流(如日志、视频流、在线交易数据)而设计,能够高效地处理大规模数据流,并支持数据的实时收集、处理、分析和持久化。消费者在读取每条消息后更新其在分区中的偏移量,即使在失败或重启后,也可以从上次的偏移量处继续消费,避免消息的重复消费。Kafka通过将消息存储在同一个分区(Partition)内来保证消息的消费顺序,确保单个分区内的消息是按照它们被发送的顺序来消费的。Kafka中的消费者(Consumer)采用拉(pull)模式来消费消息。

2024-07-17 09:15:00 67

原创 消息队列-RocketMQ

它提供了高吞吐量、可靠性、可伸缩性以及低延迟的消息队列服务,支持广泛的消息处理模式,包括发布/订阅、消息顺序、消息延时、事务消息等。在这个架构中,消息是存储在Broker Server上的,而NameServer则起到了消息路由的作用,使得Producer能够找到存储消息的Broker,Consumer能够找到需要消费的消息所在的Broker。RocketMQ主要使用**发布 /订阅(Publish/Subscribe)**消息模型,允许多个消费者订阅同一个主题,并接收主题下发布的消息。

2024-07-17 08:45:00 149

原创 消息队列-RabbitMQ

延迟队列是一种消息队列,它允许消息在被发送后延迟一定时间才被消费者处理。这意味着消息可以设定一个未来的时间点进行投递,直到达到指定的延迟时间后,消息才会被转移到另一个队列中供消费者消费。延迟队列常用于实现需要延时处理的任务,如定时任务、延迟通知等。优先级队列是一种支持按元素优先级顺序处理消息的队列。在这种队列中,每个消息被赋予一个优先级,高优先级的消息会先于低优先级的消息被消费处理,无论它们的到达顺序如何。优先级队列用于实现重要任务的优先处理等场景。

2024-07-16 15:04:47 1213

原创 消息队列-MQ

在Java中,MQ指的是消息队列(Message Queue),是一种应用程序之间异步通信的技术。解耦:允许服务之间松散耦合,增强系统的灵活性和扩展性。异步通信:提高系统响应速度和吞吐量,因为发送者不需要等待接收者处理完成。负载均衡:可以通过消息队列平衡处理任务的负载,优化资源使用。容错性:提高系统的可靠性和稳定性,通过消息持久化可以防止数据丢失。

2024-07-16 15:02:04 78

原创 常用框架-Nacos

使用临时实例可以确保服务列表的灵活性和准确性,自动删除不再发送心跳的不健康或已关闭的实例,从而减轻维护负担,并提高系统的自适应能力。如果在配置的时间间隔内没有接收到某个实例的心跳,Nacos将认为该实例不健康,并将其从服务列表中剔除。当健康的实例数低于配置的保护阈值时,Nacos将启动保护模式,避免对剩余健康实例的过度流量负担,保持服务的稳定性。Nacos是一个由阿里巴巴开发的,开源的、动态的服务发现、配置和服务管理平台,支持容器化部署,主要用于支持微服务架构中的服务注册、发现和动态配置管理。

2024-06-24 20:19:14 462

原创 常用框架-Dubbo

主要依赖于注册中心的通知机制。当服务提供者下线时,它会向注册中心发送注销通知,注册中心接收到通知后,更新服务提供者列表,并通过长连接向所有订阅了该服务的消费者推送最新的服务列表。消费者接收到更新后的服务列表,即可实时感知到服务提供者的下线情况,从而调整自己的服务调用策略,确保调用的是可用的服务提供者。这些代理策略在Dubbo中被用来动态生成服务消费者本地的代理类,通过这些代理类进行远程服务调用,从而实现服务的透明化调用,即开发人员无需关心远程调用的具体细节,就能像调用本地方法一样调用远程服务。

2024-06-24 20:17:56 84

原创 常用框架-Zookeeper

ZAB(ZooKeeper Atomic Broadcast)协议是ZooKeeper为保证数据一致性而设计的一种协议。ZAB协议主要用于在ZooKeeper集群的所有服务器之间复制数据,确保每个服务器存储的数据副本都是一致的。ZAB协议保证了当一个Leader被选举出来后,集群中的所有事务都按照其发生的顺序被原子性地广播和应用。恢复模式( Recovery Mode):当新的Leader被选举出来,或者集群在启动时,进入恢复模式,以确保集群中所有服务器的数据状态达到一致。

2024-06-24 20:15:40 218

原创 常用框架-MyBatis

与完全的ORM框架如Hibernate不同,MyBatis允许开发者编写SQL语句并通过XML文件或注解的方式进行配置,从而给予开发者对SQL的完全拭制,同时提供了简便的方式来实现数据操作和对象映射的功能。:MyBatis的延迟加载是通过代理对象来实现的。动态SQL用于构建灵活的SQL语句,根据传入的参数动态地改变SQL语句的结构,以应对不同的查询条件,从而避免硬编码SQL语句。MyBatis通过这样的流程,实现了从Java对象到数据库中表的映射(反过来也一样),让我们能以面向对象的方式操作数据库。

2024-06-24 20:14:02 70

原创 常用框架-Spring Cloud

Spring Cloud是一组工具的集合,旨在帮助开发者快速构建在分布式系统环境中,例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、决策竞选、分布式会话和集群状态管理等高级功能的分布式系统和微服务架构。它利用Spring Boot的开发便利性,简化了分布式系统开发的复杂度。微服务是一种软件架构风格,它将应用程序构建为一组小的、独立的服务,这些服务围绕业务功能组织,可以通过轻量级通信协议独立部署、升级、扩展和维护。每个服务运行在自己的进程中,并使用自动化的部署机制独立部署。

2024-06-24 20:11:00 315

原创 常用框架-Spring Boot

JavaConfig是一种基于Java的Spring配置方式,允许开发者通过Java类而非XML文件来配置Spring容器和bean。通过使用注解标记配置类,以及@Bean注解标记bean的创建方法,JavaConfig提供了一种类型安全且易于重构的配置方法。YAML是一种用于配置文件的数据序列化格式,全称是"YAML Ain’t Markup Language"(YAML不是标记语言)。它以数据为中心,使用缩进式的层级结构来表示数据,旨在易于阅读和编写。YAML常用于配置文件、数据交换等场景。

2024-06-24 20:09:09 264

原创 常用框架-Spring MVC

Spring MVC是一个基于Java的,用于构建Web应用程序的模型-视图-控制器(MVC)框架。作为Spring框架的一部分,它提供了一种分离关注点的方法来开发Web应用,通过定义控制器、模型对象、视图解析器等组件来处理Web请求、处理业务逻辑、以及呈现响应。Spring MVC支持灵活的URL到页面控制流的映射,以及丰富的数据绑定和验证机制。

2024-06-24 20:07:01 207

原创 常用框架-Spring

Spring是一个开源的Java平台,主要用于简化企业级应用开发。它提供了一个全面的编程和配置模型,支持各种应用开发场景。Spring关注的是业务逻辑层的开发,通过依赖注入(DI)和面向切面编程(AOP)等技术,帮助开发者解耦应用组件,从而提高应用的可测试性和可维护性。Spring框架的核心特性还包括数据访问、事务管理、消息传递、Web应用开发以及安全等。在 Spring AOP 中,**通知(Advice)**是织入到目标对象连接点上的动作,定义了切面(Aspect)是什么时候以及如何执行的代码。

2024-06-24 20:05:02 46

原创 数据库面试题-ElasticSearch

TF-IDF(Term Frequency - lnverse Document Frequency)是一种用于评估词语在文档集中的重要性的统计方法。它通过计算词频(TF)和逆文档频率(IDF)的乘积来工作。词频指一个词在文档中出现的次数,而逆文档频率是用来衡量一个词是否常见或是稀有的度量,计算方法是文档集中文档总数除以包含该词的文档数的对数。TF-IDF值越高,表示词在文档中越重要。

2024-06-18 21:02:28 927

原创 数据库面试题-Redis

在Redis中,bigkey指的是那些包含大量元素的数据结构,例如一个包含数万个元素的list、 set、hash 或 zset。内存使用增加:大量元素占用大量内存。性能下降:对bigkey的操作(如删除、遍历)可能会阻塞Redis服务器,影响其他命令的响应时间。备份和恢复问题:操作 bigkey 时,可能会延长 RDB 快照的创建时间或者 AOF 文件的重写时间,影响系统的持久化和恢复速度。

2024-06-18 21:01:12 312

原创 数据库面试题-MySQL

索引是数据库中一个特殊的数据结构,它能帮助快速查询和检索数据库表中的数据。通过使用索引,数据库管理系统无需扫描整个表就能高效地定位到所需的数据,从而显著减少数据访问的时间,提高查询速度和数据检索效率。索引类似于书籍的目录,通过指向表中数据的指针来加速查询操作。虽然索引能提高查询速度,但它也占用额外的磁盘空间,并且当表中的数据被更新(插入、删除、修改)时,索引也需要被相应地更新,这可能会影响数据更新操作的性能。视图是基于SQL语句的结果集的虚拟表。它是一种数据库对象,像表一样使用,但并不实际存储数据。

2024-06-18 20:58:40 358

原创 Java面试题-进阶

分布式ID是在分布式系统中用于唯一标识一个请求、数据记录或资源的标识符。由于分布式系统涉及多个节点或服务,需要确保在全局范围内生成的ID是唯一的,以避免数据冲突和覆盖。分布式ID的生成通常不依赖于单一的节点或服务,以确保系统的高可用性和扩展性。

2024-06-12 21:49:07 130 1

原创 Java面试题-JVM

指的是垃圾收集过程中,虚拟机暂停所有应用线程的执行,以确保在清理内存时不会有新的数据改动,保证垃圾收集的安全性和一致性。STW是垃圾收集过程的一部分,影响程序的暂停时间。OopMap: Object-Oriented Programming Map的缩写,用于垃圾收集时快速定位对象内部的引用。在运行时,OopMap可以提供每个方法执行点上的活动引用的准确位置,帮助垃圾收集器识别哪些是指向对象的引用,从而准确地进行标记和清理。安全点(Safepoint)

2024-06-12 21:45:14 409

原创 Java面试题-IO

在Java中,IO(输入/输出)是指用于处理数据(如读取或写入)的操作,通常涉及数据在内存与其他媒介(如硬盘、网络等)之间的传输。Java lO提供了丰富的API来支持文件操作、网络操作等,它主要包括字节流(用于处理原始二进制数据)和字符流(用于处理文本数据),以及基于它们的各种高级流(如缓冲流、转换流等)以实现数据的高效读写。BIO(Blocking I/O,阻塞输入输出)是一种同步且阻塞的I/O模型,其中线程发起I/O操作(如读取或写入数据)时会被阻塞,直到操作完成。

2024-06-05 16:39:06 362 2

原创 Java面试题-多线程

线程安全指的是多线程环境下,当多个线程同时访问某个类的实例时,该类始终能表现出正确的行为,不会因为线程的并发操作而导致数据错乱或状态不一致。换句话说,一个线程安全的类能够防止其内部状态在并发环境下被破坏。实现线程安全通常需要通过同步机制来保证数据的一致性和完整性。Callable是一个接口,它与Runnable相似,但它可以返回一个结果并能抛出异常。Callable接口的call方法作为线程执行体,返回值表示线程执行后的结果。Future代表异步计算的结果。

2024-06-05 16:37:44 212

原创 Java面试题-集合

集合(Collection)是Java中一种用于存储对象的容器,它可以包含多个对象,这些对象可以是相同类型或不同类型(依赖于具体使用的集合类型)。Java集合框架提供了一系列的接口和实现(如ListSetMap等),用于存储和操作对象群集,支持各种操作,如添加、删除、遍历、排序等。Hash算法是一种将任意长度的输入(或称为消息)通过散列算法处理,转换成固定长度输出的过程。该输出称为散列值或哈希值。Hash算法的特点包括:对于任何给定的输入,输出都是确定的;

2024-06-04 19:33:14 246 2

原创 Java面试题-基础

Fail-fast 是一种错误检测机制,指的是在操作集合(如列表、集合等)时,如果检测到集合在迭代过程中被结构性地修改(例如添加、删除元素),则立即抛出异常。这种机制旨在快速失败,避免不确定的行为和潜在的错误。Java集合框架中的很多实现(如ArrayListHashMap)都采用了fail-fast 机制。它主要通过在迭代器内部维护一个修改计数器(modCount)来实现,每次迭代前检查计数器是否有变化,以保证迭代的一致性和安全性。HashMap的长度是2的N次方主要是为了优化索引计算的效率。

2024-06-04 19:30:21 72

原创 【Windows配置nginx开机自启】

【Windows配置nginx开机自启】

2024-05-29 15:47:14 4531 5

原创 【SpringCloud Alibaba-OSS整合问题】

SpringCloud-Alibaba版本:2021.0.5.0。SpringCloud版本:2021.0.5。SpringBoot版本:2.6.13。,不引入会报以下错误,具体可以参考。

2024-05-14 14:00:34 1191 1

原创 【Java 查询树结构列表,递归删除子节点】

【Java 查询树结构列表,递归删除子节点】

2024-05-11 14:49:15 331 4

原创 【Java 解析xml文件,获取文件内容】

Java 解析xml文件,获取文件内容。

2024-04-30 17:36:52 216 1

原创 【前端开发基础知识&快速入门】

安装以下基本插件vscode 很轻量级,本身没有新建项目的选项,创建一个空文件夹就可以当做一个项目如果使用 live server,页面内容变化,保存以后,浏览器会自动变化;ECMAScript 6.0(以下简称 ES6,ECMAScript 是一种由 Ecma 国际(前身为欧洲计算机制造商协会,英文名称是 European Computer Manufacturers Association)通过 ECMA-262标准化的脚本程序设计语言)是 JavaScript 语言的下一代标准,已经

2024-04-26 13:10:50 808 1

原创 SpringCloud 组件

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。参考文档 请查看官网。

2024-04-19 10:55:47 784

原创 Java 文件上传,下载,复制,删除,Zip文件解压缩,文件内容修改,JSON 文件中字段值的修改,递归删除文件夹及其子文件等

Java 文件上传,下载,复制,删除,Zip文件解压缩,文件内容修改,JSON 文件中字段值的修改,递归删除文件夹及其子文件等

2024-04-19 10:40:53 402 1

原创 nacos2.2.1启动报错:org.springframework.context.ApplicationContextException: Unable to start web server;等

Nacos默认是集群(cluster)启动,将其设置为单机(standalone)启动则不会报这个错,修改之后会报另一个错,下面有介绍。

2024-04-17 20:05:49 2230

原创 分布式基础环境搭建

解压生成的压缩包,将需要的文件复制到项目。-v /mydata/mysql/conf:/etc/mysql/conf.d:将配置文件夹挂载到主机。-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机。-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机。初始化完成后,使用 gitee 仓库中项目的HTTPS链接,在IDEA获取并打开项目。在 pom 文件中添加公共的依赖,在其他项目中引入 common 依赖;

2024-04-10 22:46:42 1017

原创 云服务器上Docker启动的MySQL会自动删除数据库的问题

除了常见的情况,例如没有实现数据挂载,导致数据丢失外,还需要考虑数据库是否被,下图 REVOVER_YOUR_DATA 就代表被勒索了,这种情况通常是数据库端口使用了导致, 当前情况系统不安全了,不建议您继续使用当前系统环境。

2024-04-10 09:50:39 1319 3

原创 springboot 大文件分片上传

大文件分片上传是一种将大文件分割成多个小文件片段,然后分别上传这些小文件片段的方法。这种方法的好处包括:减少重新上传开销:如果网络传输中断,只需重传未上传的部分,而不是整个文件。提高灵活性:分片大小可以根据实际情况调整,以平衡上传速度和请求次数。支持断点续传:服务器可以记录已经上传的文件块,以便在中断后继续上传。分片上传的流程大致如下:文件分片:首先,对文件进行分片,每个分片的大小可以根据实际情况设定,例如,一个100MB的文件可以分成每个5MB的分片,共20个分片。计算MD5值:对每个分片计算MD5值,这

2024-03-25 17:02:43 1822

原创 Docker完整版(二)

Dockerfile 是用于构建Docker镜像的脚本文件,由一系列指令构成。通过命令构建镜像时,Dockerfile 中的指令会由上到下依次执行,每条指令都将会构建出一个镜像。这就是镜像的分层,因此,指令越多,层次数就越多,创建的镜像就越多,效率就越低。所以在定义Dockerfile时,能在一个指令完成的动作就不要分为两条。该指令不区分大小写。但是,惯例是将它们大写,以便更容易地将它们与参数区分开来。指令后至少携带一个参数。# 号开头的行为注释。FORM。

2024-03-17 18:34:08 1103

原创 Docker完整版(一)

官网中文官网||仓库(镜像网站)Docker 是一个开源的应用容器引擎,基于Go 语言并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux、windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。每个镜像都有一个长度为 64 位的 16 进制字符串作为其摘要 digest。查看摘要在镜像结束之后会给出该拉取的镜像的摘要 digest.通过。

2024-03-10 19:05:49 982

原创 MySQL相关问题

1、业务驱动,主要是业务及运营人员或者用户反馈给我们的,他们在使用系统的过程中发现某些功能很慢,这种方式一般是项目上线后出现的,开发人员会比较被动,建议不要采用这种方式;5、数据库表结构的设计和SQL语句的执行效率:慢查询是性能问题的罪魁祸首,不合理的数据库表结构设计和不合理的索引是影响数据库查询性能的重要因素;Time=0.01s(0.02s),告诉我们这类语句执行的最大时间0.01s,总共花费的时间是0.02s;3、数据库存储引擎的选择:根据需要选择不同的存储引擎,不支持事务,表级锁;

2024-03-04 19:30:16 500

原创 JVM相关问题

指程序在申请内存时,没有足够的内存空间供其使用,抛出错误;比如申请了一个8MB空间,但是当前内存可用空间只有5MB,那么就是内存溢出;即:OutOfMemoryError,是指没有空闲内存,垃圾收集器回收后也不能提供更多的内存空间;

2024-03-03 23:03:26 1001

原创 HashMap相关问题

定义:对于不同的关键字,可能得到同一个哈希地址,即,而,对于这种现象我们称之为哈希碰撞,也叫哈希冲突;现在我们有一组数:{18 ,23, 5, 32, 50, 14, 34, 39, 11},假设我们的hash函数是用16取余的方式计算:一般哈希冲突只能尽量地减少,无法完全避免,因为关键字在理论上可以有无限多个,而用来存储这些关键字的数组容量是有限的,所以就必然会导致了哈希冲突,只能通过选择合适的哈希函数来降低哈希冲突发生的概率;

2024-03-03 17:55:36 902

原创 Mybatis框架相关问题

3、不同SqlSession之间的缓存数据是隔离的,即一个SqlSession中的缓存数据在另一个SqlSession中是读取不到的;查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会再从数据库查询;3、同一个SqlSession两次查询期间执行了任何一次增删改操作;4、同一个SqlSession两次查询期间手动清空了缓存;执行 sql 查询到的数据将缓存到相同的二级缓存区域中;1、不同的SqlSession对应不同的一级缓存;,但可以调用SqlSession的。级别的缓存, 通过同一个。

2024-03-03 16:56:13 421

原创 Java线程池及Thread相关问题

在使用线程池的时候,可能由于线程没有结束,ThreadLocalMap对象的 Entry[] 数组中的数据没有被回收,内存没有释放,那么当线程执行大量数据时,可能导致内存溢出,数据泄露。比如任务B,它需要等待任务A执行之后才能执行,任务C需要等待任务B执行之后才能执行;,当核心线程全部繁忙且任务队列存满之后,线程池会临时追加线程,直到总线程数达到。,当核心线程全部繁忙时,任务存放到该任务队列中,等待被核心线程来执行;允许核心线程超时销毁;,用于创建线程,一般采用默认的线程工厂即可,也可以自定义实现;

2024-03-03 16:20:12 805

原创 RabbitMQ相关问题

死信队列即DLX,全称为,翻译为:死信交换机。当一个消息在队列中变成死信 (dead message) 之后,它能被重新发送到另外一个交换机中,这个交换机就是DLX,绑定到DLX的队列就称为死信队列;死信队列本身也是一个普通的消息队列,可以通过设置一些参数将其设置为死信队列;死信队列是一个用于存放无法被消费的消息的队列,这些消息被称为死信,死信队列可以避免消息一直被消费却无法消费成功的情况;延迟队列是用来存放“延迟消息”的队列;

2024-03-03 15:27:01 1209

Vue-Devtools-master.zip

Vue开发工具——谷歌浏览器插件

2024-04-25

ES6新特性的部分示例代码

ES6新特性的部分示例代码+适合前端学习ES6新特性人群+供自己学习测试使用。 注意:此实例非常简单哦!!!

2024-04-25

尚硅谷谷粒商城电商项目文档及源码.zip

尚硅谷-谷粒商城电商项目-相关文档,相关软件及相关源码。 仅供学习使用哦。

2024-04-03

尚硅谷谷粒商城电商项目sql.zip

尚硅谷谷粒商城电商项目sql;仅供学习使用哦!!!

2024-04-03

Redis、Spring、RabbitMQ、Java线程、Mybatis、HashMap、JVM、MySQL相关问题的实例代码

Redis应用场景、Spring框架、RabbitMQ、Java线程、Mybatis框架、HashMap、JVM、MySQL相关问题的示例代码,供参考学习理解使用。

2024-03-03

空空如也

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

TA关注的人

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