- 博客(77)
- 收藏
- 关注
原创 Python——第一天(环境配置)
验证安装2. 流程控制3. 函数与模块库名称用途示例代码片段NumPy科学计算Pandas数据分析Requests网络请求Matplotlib数据可视化plt.show()
2025-02-25 10:07:10
203
原创 RabbitMQ的高可用机制
RabbitMQ 的高可用机制依赖于集群模式、镜像队列、Quorum 队列等策略来保证消息不会丢失,并能够在节点故障或网络问题下继续工作。通过生产者确认机制、消息持久化、消费者确认机制等手段,进一步增强了消息传递的可靠性。在设计高可用架构时,可以根据具体的业务需求,选择合适的高可用策略。
2024-12-11 10:08:22
1235
原创 你了解类加载器吗?
开发者可以通过继承,实现自定义的类加载逻辑。常见的场景包括加载远程服务器的类、解压压缩包中的类,或者实现类的热加载等。@Override} else {// 自定义获取类数据的逻辑,如从文件中加载字节码类加载器的作用:负责加载类文件,并为 JVM 提供类的隔离和动态加载功能。双亲委派机制:保证类加载的安全性和避免重复加载。自定义类加载器:允许开发者灵活地控制类的加载逻辑,用于满足特定的需求。加载:通过类加载器将类的字节码加载到内存。验证:确保类的字节码格式和内容符合 JVM 的要求。
2024-12-11 10:08:01
911
原创 Hive数据库操作语法
内部表又称管理表,内部表数据存储的位置由hive.metastore.warehouse.dir参数决定(默认:/user/hive/warehouse),删除内部表会直接删除元数据(metadata)及存储数据,因此内部表不适合和其他工具共享数据。所以,在删除外部表的时候, 仅仅是删除元数据(表的信息),不会删除数据本身。(CREATE TABLE table_name ......)未被external关键字修饰的即是内部表, 即普通表。关键字修饰的即是外部表, 即关联表。
2024-11-03 14:39:58
507
原创 Hadoop——HDFS
HDFS(Hadoop Distributed File System)是Apache Hadoop的核心组件之一,是一个分布式文件系统,专门设计用于在大规模集群上存储和管理海量数据。它的设计目标是提供高吞吐量的数据访问和容错能力,以支持大数据处理任务。下面是HDFS的主要特性和功能:HDFS是一个为处理和存储海量数据而设计的分布式文件系统,具备高容错性、高吞吐量和可扩展性等优点。它通过将数据分割成多个块并在集群中分布存储,确保了数据的高可用性和高性能,成为大数据处理的基础设施之一。在HDFS(Hadoop
2024-11-03 14:39:36
1133
原创 从0开始学习shell脚本
Shell是一个命令解释器,用来执行用户输入的命令。常用的Shell包括。:Shell脚本是由一系列命令组成的文件,脚本可以运行一连串命令,达到。Linux默认的Shell通常是Bash。
2024-10-31 21:13:20
489
原创 垃圾回收机制
JVM的垃圾回收机制通过分代回收、垃圾回收算法和多种垃圾回收器的结合,自动高效地管理内存。不同的回收算法和回收器适用于不同的应用场景,可以通过调优策略进行优化。理解和掌握GC的原理和运行机制,对于编写高效、稳定的Java应用至关重要。
2024-10-20 18:10:45
723
原创 JVM虚拟机的组成
JVM是一个复杂的执行环境,通过类加载子系统加载字节码,通过运行时数据区管理内存,通过执行引擎执行字节码,并且通过垃圾回收机制自动管理内存,确保系统的稳定性和高效运行。
2024-10-20 17:15:10
579
原创 一篇文章带你弄懂HashMap底层原理
计算哈希值:根据键的hashCode()通过扰动函数计算出哈希值。映射到数组索引:通过计算出键值对的存储位置。处理哈希冲突:若冲突,使用链表或红黑树解决。扩容与再哈希:当达到负载因子时,HashMap扩容并重新计算索引位置。
2024-10-20 14:46:09
898
原创 如果有100万条消息堆积在MQ怎么解决
当 RabbitMQ 出现大量消息堆积时,首要任务是提升消费者的消费能力,优化消息处理的并发和批量处理逻辑,确保消息不过期或丢失。同时,利用消息优先级、限流、缓存等策略来平滑高并发流量。如果情况复杂,还可以通过扩展 RabbitMQ 集群节点或结合其他消息中间件来解决大规模消息处理的问题。
2024-10-19 15:03:55
1047
原创 rabbitMQ的延迟队列(死信交换机)
RabbitMQ 的延迟队列通过 TTL 和 DLX 的结合使用,可以实现消息的延迟投递。这种机制允许消息在设定的延迟时间后再进行消费,适用于各种需要延时处理的场景。
2024-10-19 15:02:05
485
原创 rabbitMQ消息重复问题怎么解决的?
RabbitMQ 消息重复问题的核心是通过消息去重、消费者ACK机制、幂等性设计等手段,确保消息即使重复发送或处理也不会对系统带来不良影响。消息唯一ID:通过唯一ID防止重复处理。手动ACK机制:确保消息在成功处理后才确认。去重表:通过数据库记录消息处理状态。限次重试:通过设置最大重试次数,防止无限重复消费。幂等设计:确保业务操作可以多次重复执行而结果一致。
2024-10-19 12:23:59
1438
1
原创 RabbitMQ如何保证消息不丢失?
在 RabbitMQ 集群中,镜像队列可以将消息复制到多个节点上,即使某个节点发生故障,消息仍然存在于其他节点。:如果消费者在处理消息时异常退出,并且未发送 ACK,RabbitMQ 会将消息重新投递给其他消费者,从而保证消息不会丢失。如果一个节点宕机,其他节点可以接管它的任务,从而避免消息丢失。,这样 RabbitMQ 会在收到消息并确认处理(包括持久化)后,发送一个。),即使 RabbitMQ 重启,消息也不会丢失。:消息在发送到队列时,可以将消息设置为持久化(:在声明队列时,将其设置为。
2024-10-19 12:03:08
1242
原创 Spring的一些原理你知道吗?
实例化:通过构造器生成一个 Bean 实例(出生)。依赖注入:将属性或依赖注入给 Bean(装扮)。初始化:通过或方法完成初始化(准备就绪)。使用:Bean 正式投入使用(工作)。销毁:通过destroy()或方法销毁 Bean(退休)。:前端控制器,负责接收和分发请求。:映射器,找到对应的处理器。:处理器适配器,调用处理器执行逻辑。Controller:处理业务逻辑。:封装返回的模型数据和视图信息。:视图解析器,将视图名转换为实际的视图对象。View:渲染最终的 HTML 页面。
2024-10-17 16:37:25
599
原创 ElasticSearch与MySQL如何进行数据同步?
消息队列同步方案:适用于数据操作频繁的场景,能够保证高并发时的系统稳定性和实时性,常用RabbitMQ或Kafka等消息队列实现。Binlog同步方案:基于Canal或Debezium的同步可以实现更为实时的同步,能够捕获数据库级别的所有数据变化。Binlog方式不依赖应用层代码改动,适合于对MySQL增删改同步要求较高的场景。定时同步方案:适用于不需要实时同步的场景,通过定时任务进行批量同步。不同方案各有优缺点,根据具体项目需求选择合适的同步方式。
2024-10-16 23:06:03
2076
原创 基于Java客户端使用MQ
在消息队列中,Work模型(或工作模式多个消费者绑定到一个队列在Work模型中,多个消费者(Worker)可以同时监听同一个消息队列。当消息到达队列时,只有一个消费者会接收到该消息并进行处理,确保了每条消息只会被一个消费者处理。控制消息预取数量通过设置prefetch(预取)参数,可以控制每个消费者在未确认处理完当前消息之前,能够预取到的消息数量。例如,如果设置了预取为5,那么每个消费者在处理完前5条消息之前,不会再从队列中获取更多消息。这有助于平衡消费者的负载,防止某个消费者过载。
2024-10-16 09:32:56
1404
原创 RabbitMQ是什么?
每个虚拟主机可以看作是一个独立的命名空间,允许多个不同的应用或租户在同一个 MQ 实例中进行操作,但它们的资源相互独立,不会产生冲突。:比如一个大型系统可以为不同的模块创建不同的虚拟主机,来管理不同的消息队列。每个模块的消息只能在其对应的虚拟主机中处理,保证数据的隔离和安全。,允许发送者将消息发送到队列中,而接收者可以在适当的时候从队列中读取消息。发送到交换机的消息,只会路由到与其绑定的队列,因此仅仅创建队列是不够的,我们还需要将其与交换机绑定。的通信机制,通过将消息存储在队列中以实现系统之间的解耦。
2024-10-16 09:32:46
771
原创 Elasticsearch是做什么的?
结合 Elastic Stack(Logstash、Kibana),Elasticsearch 实现实时日志采集、分析和可视化,常用于系统监控、错误检测等。Elasticsearch 提供快速、精确的全文搜索,支持复杂查询如模糊匹配、短语搜索、词条权重,广泛用于内容管理系统、电子商务、社交平台等。相比于传统的正排索引(即存储文档到词汇的映射),倒排索引更加高效。通过聚合功能,Elasticsearch 可高效进行实时数据分析,支持多维聚合查询,适用于日志分析、业务数据分析等场景。,从而实现快速的文本检索。
2024-10-15 12:32:10
1639
原创 一篇文章弄懂Redission可重入、重试锁以及MultiLock原理
Redisson的可重入锁(Reentrant Lock)是基于Redis实现的分布式锁,用于在分布式系统中提供线程安全的锁机制。它允许同一个线程在不释放锁的情况下多次获得锁,并下面我们来详细解析Redisson可重入锁的原理。
2024-10-15 11:13:27
1547
原创 Java Web —— 第十天(SpringBoot原理)
SpringBoot框架之所以使用起来更简单更快捷,是因为SpringBoot框架底层提供了两个非常重要的 功能:一个是,一个是。通过SpringBoot所提供的,就可以大大的简化pom文件当中依赖的配置,从而解决了 Spring框架当中依赖配置繁琐的问题。通过的功能就可以大大的简化框架在使用时bean的声明以及bean的配置。我们只需要引 入程序开发时所需要的起步依赖,项目开发时所用到常见的配置都已经有了,我们直接使用就可以 了。
2024-09-28 10:58:27
477
原创 SpringCache
针对不同的缓存技术需要实现不同的CacheManager:在spring boot项目中,使用缓存技术只需在项目中导入相关缓存技术的依赖包,并在启动类上使用开启缓存支持即可。
2024-09-15 20:45:28
1091
原创 安装VMware Workstation Pro时遇到的全损版问题
2.遇到这个问题的朋友,不要去删除什么注册表了,先找到自己的控制面板, 找到VM,它会显示没有卸载,只有更改或者安装,点击安装,在安装面会有一个delete,正所谓解铃还须系铃人,得让软件自己来删除才能成功。一直卡在这里,安装不了,这个时候就是注册表还是没删干净了,这个时候不要手动删,删到你退休也删不干净。打开后在左侧找到注册表,直接就是来三次扫描+清除,然后加重启电脑删除工具(用完就删免得夜长梦多)7.然后开启虚拟机,电脑直接蓝屏,自动重启,这个时候说是虚拟机什么的没设置。然后再重新安装 就成功了。
2024-09-12 14:39:24
862
原创 MyBatisPlus
其实就是自己定义Mapper接口方法,在xml映射文件中实现SQL语句功能,跟Mybatis中代码实现一样,就称为自定义功能BaseMapper中的方法,大多方法中都有Wrapper类型的形参,此为条件构造器,可针对于SQL语句设置不同的条件,若没有条件,则可以为该形参赋值null,即查询(删除/修改)所有数据type属性用来定义主键策略Wrapper:条件构造抽象类,最顶端父类AbstractWrapper :用于查询条件封装,生成 sql 的 where 条件。
2024-09-03 08:56:27
993
原创 Java Web —— 扩展(Maven高级)
聚合工程:一个不具有业务功能的“空”工程(有且仅有一个pom文件) 【PS:一般来说,继承关 系中的父工程与聚合关系中的聚合工程是同一个】4.如果需要上传自己的项目到私服上,需要在项目的pom.xml文件中,增加如下配置,来配置项目发布的地址(也就是私服的地址)概念:继承描述的是两个工程间的关系,与java中的继承相似,子工程可以继承父工程中的配置信息,常见于依赖关系的继承。在子工程中,配置了继承关系之后,坐标中的groupId是可以省略的,因为会自动继承父工程的。
2024-09-03 08:56:09
1177
原创 Java Web —— 第十天(AOP切面编程)
***/@Slf4j // 为当前类引入日志功能,方便打印日志信息@Component // 将当前类作为一个组件管理起来,Spring会自动扫描并管理它@Aspect // 声明该类为一个切面类,用于定义横切关注点,即对方法执行前后进行拦截和处理@Autowired// 自动注入HttpServletRequest对象,用于获取请求信息@Autowired// 自动注入OperateLogMapper对象,用于操作数据库记录操作日志。
2024-08-30 20:29:48
993
原创 Java Web —— 第九天(事务)
是 Spring 框架中用于声明事务的注解,它可以应用在方法或类上,定义该方法或类中的所有方法在执行时应该运行在一个事务中。:当我们不希望事务之间相互影响时,可以使用该传播行为。作用:将当前方法交给spring进行事务管理,方法执行前,开启事务,成功执行完毕,提交事务,事务传播行为:指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行事务控制。是两种常见的事务传播行为,它们主要用于控制在方法调用过程中事务的传播方式。时,新的事务独立于外部事务,因此即使外部事务失败回滚,
2024-08-29 21:03:25
873
原创 Java Web —— 第八天(登录功能)
全称: JSON Web Token (定义了一种简洁的、自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数字签名的存在,这些信息是可靠的。组成:第一部分:Header(头),记录令牌类型、签名算法等。例如:["alg":"HS256","type":"WT"]第二部分:Payload(有效载荷),携带一些自定义信息、默认信息等。例如:“id"."1""username":"Tom”第三部分:Signature(签名),防止Token被篡改、确保安全性。
2024-08-24 18:49:27
1060
原创 Java Web —— 第七天(Mybatis案例 配置文件)
Value注解通常用于外部配置的属性注入,具体用法为:@Value("${配置文件中的key}")@ConfigurationProperties可以批量的将外部的属性配置注入到bean对象的属性中。使用缩进表示层级关系,缩进时,不允许使用Tab键,只能用空格 (idea中会自动将Tab转换为空格)在application.yml中的配置案例相关的配置项。@Value注解只能一个一个的进行外部属性的注入。中的属性绑定到 Java Bean 的注解。都是用来注入外部配置的属性的。获取阿里云OSS参数。
2024-08-22 19:40:18
400
原创 Java Web —— 第七天(Mybatis案例 员工管理2)
Software Developmnt Kit 的缩写,软件开发丁具包,包括辅助软件开发的依赖 (iar包),代码示例等,都可以叫做SDK。:通过这种机制,只有前端传递的非空字段才会更新数据库中的相应字段,而那些为空的字段会保持数据库中原有的值不变。如果需要上传大文件,可以进。或空字符串,则对应的字段不会出现在SQL语句中,也就不会更新数据库中的这个字段;文件上传,是指将本地图片、视频、音频等文件上传到服务器,供其他用户浏览或下载的过程。在服务端,接收到上传上来的文件之后,将文件存储在本地服务器磁盘中。
2024-08-22 16:03:38
984
原创 Java Web —— 第七天(Mybatis案例 员工管理1)
修改EmpMapper接口中的代码 只需正常查询全部数据。的属性defaultValue可以来设置参数的默认值。修改EmpServiceImpl实现类中的代码。:总记录数、结果列表 (PageBean)分页查询: PageHelper分页插件。条件查询:动态SQL- XML映射文件。1.PageHelper分页插件。在pom.xml中引入依赖。:页码、每页展示记录数。
2024-08-21 11:33:58
231
原创 Java Web —— 第六天(Mybatis)
1.XML映射文件映射配置文件名与Mapper接口名一致,且放在相同的包下(同包同名)映射配置文件的namespace属性与Mapper接口的全类名一致XML映射文件中sql语句的id与Mapper 接口中的方法名一致2.动态SQL<if><where><set><foreach><sql><include>
2024-08-17 15:13:09
414
原创 Java Web —— 第五天(请求响应2)
Result类的作用提供了一个统一的响应格式,使得所有接口的返回值结构一致,便于前端解析和处理。可以通过code来判断操作是否成功,通过msg提示信息,通过data传递实际的数据。类的作用处理HTTP请求,生成相应的数据或信息,并通过Result类封装成统一格式的响应返回给客户端。位置: Controller类上/方法上作用: 将方法返回值直接响应,若返回值类型是 实体对象/集合 ,转SON格式响应2.统一响应结果案例获取员工数据,返回统一响应结果,在页面渲染展示。
2024-08-13 17:34:26
923
原创 Java Web —— 第五天(请求响应1)
1.简单参数定义方法形参,请求参数名与形参变量名一致如果不一致,通过@RequestParam手动映射2.实体参数请求参数名,与实体对象的属性名一致,会自动接收封装3.数组集合参数数组: 请求参数名与数组名一致,直接封装集合: 请求参数名与集合名一致,@RequestParam绑定关系4.日期参数5.JSON参数6.路径参数。
2024-08-12 15:03:56
784
原创 Java Web —— 第四天(HTTP协议,Tomcat)
概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则特点:1. 基于TCP协议:面向连接,安全2.基于请求-响应模型的:一次请求对应一次响应3. HTTP协议是无状态的协议: 对于事务处理没有记忆能力。每次请求-响应都是独立的。缺点:多次请求间不能共享数据优点:速度快。
2024-08-10 20:52:59
513
原创 Java Web —— 第四天(Spring)
经过十多年的发展,Spring 已经不再是一个单纯的应用框架,而是逐渐发展成为一个由多个不同子项目(模块)组成的成熟技术,例如 Spring Framework、 Spring MVC、SpringBoot、 Spring Cloud、Spring Data、 SpringSecurity 等,其中Spring Framework 是其他子项目的基础。AOP 用来封装多个类的公共行为,将那些与业务无关,却为业务模块所共同调用的逻辑封装起来,减少系统的重复代码,降低模块间的耦合度。
2024-08-10 14:03:25
878
原创 Java Web —— 第四天(Maven)
Maven 的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)POM (ProjectObject Model): 项目对象模型项目构建:提供标准的、跨平台的自动化项目构建方式依赖管理:方便快捷的管理项目依赖的资源 (ar包),避免资源间的版本冲突问题统一开发结构:提供标准的、统一的项目结构官网:下载地址:Maven属于绿色版软件,解压即安装Maven环境变量配置依赖Java,需要配置JAVA_HOME设置MAVEN自身的运行环境,需要配置MAVEN_HOME。
2024-08-09 20:05:30
950
1
原创 Java Web —— 第三天(Ajax+组件)
Element:是饿了么团队研发的,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。介绍:YApi是高效、易用、功能强大的 api管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。2.在页面加载完成后,自动发送异步请求,加载数据,渲染展示页面(性别:1代表男,2代表女)介绍:Vue-cli是Vue官方提供的一个脚手架,用于快速生成一个 Vue 的项目模板。组件:组成网页的部件,例如 超链接、按钮、图片、表格、表单、分页条等等。
2024-08-08 19:05:55
986
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人