自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(234)
  • 资源 (4)
  • 收藏
  • 关注

原创 Grafana学习笔记

Grafana 是一个开源的数据可视化和监控平台,专门设计用于从各种数据源中收集和展示数据。它最初作为一个图表生成工具,用于显示时间序列数据,但已经发展成一个功能强大且灵活的仪表板工具,适用于多种数据类型和场景。Grafana 的核心功能是通过可视化图表和仪表板,将原始数据转换为易于理解的图形和报告。它支持丰富的插件生态系统,使得用户可以通过各种插件扩展其功能,如不同的图表类型、数据源支持和报警系统。

2024-08-18 00:16:39 1099

原创 Web应用安全笔记:一些常见漏洞及防护措施(Java Servlet)

启用调试功能是其中一种常见的配置错误,这些功能可能在开发或测试阶段很有用,但在生产环境中启用它们会带来严重的安全风险。在这个例子中,Servlet直接从请求中获取数据并进行反序列化,没有对数据的来源或安全性进行验证。由于开发过程中需要调试信息,可能在配置文件中启用了调试模式,例如显示JSP页面的详细错误信息或启用DEBUG级别的日志记录,这在生产环境中是非常危险的。确保在生产环境中禁用了所有调试功能,使用合适的日志级别(例如INFO或ERROR,而不是DEBUG),并配置应用服务器以仅显示通用的错误页面。

2024-08-17 23:51:13 1028

原创 Prometheus 笔记

Prometheus是一种开源的系统监控和报警工具,最早由SoundCloud开发,现已成为CNCF(Cloud Native Computing Foundation)的一部分。Prometheus以其高效的数据收集、存储和查询能力,在云原生环境中广泛应用。Prometheus主要用于采集时间序列数据(如系统性能指标、应用性能数据等),并且提供强大的查询语言(PromQL)用于数据分析和报警设置。它的架构设计使其非常适合动态环境,如微服务和容器化部署。

2024-08-06 23:33:10 890

原创 Ant Design(antd)基础入门

Ant Design 是由阿里巴巴旗下蚂蚁金服团队开发的企业级 UI 设计语言和 React 实现的组件库。它致力于提高企业级中后台产品的用户体验,并提供统一、简洁、易用的设计和开发规范。以上是如何在 React 项目中安装和配置 Ant Design 的详细步骤。通过使用创建项目,安装 Ant Design 包,并在项目中引入其样式文件和组件,你可以快速在项目中使用 Ant Design 提供的丰富组件库,提升开发效率和用户体验。

2024-08-05 23:30:12 1320

原创 关于一致性哈希

定义: 数据倾斜(Data Skew)指的是在分布式系统中,数据并未均匀分布在各个节点上,导致某些节点存储或处理的数据量远远多于其他节点。数据倾斜会导致负载不均衡,从而影响系统的性能和稳定性。影响性能瓶颈:部分节点负载过重,可能成为系统的瓶颈,降低整体性能。资源浪费:部分节点负载过轻,导致资源未得到充分利用,增加了成本。响应时间增加:高负载节点处理时间较长,导致整体系统的响应时间增加。系统稳定性下降:高负载节点更容易出现故障,影响系统的稳定性和可用性。

2024-07-05 22:26:15 590

原创 MySQL中SQL语句的执行过程详解

解析器是MySQL执行SQL语句的重要组件,通过词法分析和语法分析,将SQL语句转换为解析树。解析树是后续查询优化和执行的基础,确保SQL语句能够被正确理解和处理。1. 词法分析:输入: SELECT * FROM users WHERE id = 1;输出: 标记序列 [SELECT, *, FROM, users, WHERE, id, =, 1,;2. 语法分析:输入: 标记序列 [SELECT, *, FROM, users, WHERE, id, =, 1,;输出: 解析树。

2024-06-29 16:50:18 1356

原创 MySQL 复制技术详解

主从复制是一种常见的数据复制模式,其中一个数据库服务器作为主服务器(Master),负责处理所有的写操作和部分读操作,而一个或多个从服务器(Slave)负责复制主服务器的数据并处理读请求。这样可以实现读写分离,提高系统的性能和可用性。主主复制是一种高级的复制模式,两个MySQL服务器既是主服务器又是从服务器,能够互相同步数据。每个服务器既可以处理写操作,也可以处理从另一个服务器复制过来的写操作。高可用性:当一个服务器宕机时,另一个服务器可以继续提供服务。负载均衡。

2024-06-27 23:48:08 1089

原创 JVM垃圾回收的普遍步骤

JVM 的垃圾回收过程包括标记、清除、压缩等阶段,结合分代回收机制来高效地管理内存。不同的垃圾收集器根据不同的需求和环境进行优化,以达到最佳的性能和最小的停顿时间。了解这些步骤和原理可以帮助开发者优化 Java 应用的性能和稳定性。

2024-06-14 23:02:07 491

原创 深入讲解Java线程中 wait 和 notify 的用法和原理

wait:使当前线程进入等待状态,释放对象的监视器锁。notify:唤醒一个在该对象上等待的线程。notifyAll:唤醒所有在该对象上等待的线程。同步块/同步方法waitnotify和notifyAll必须在同步块或同步方法中调用,因为它们需要当前线程持有对象的监视器锁。生产者-消费者模式:经典的wait和notify用例,展示了如何协调多个线程对共享资源的访问。

2024-06-14 18:07:25 464

原创 Mysql InnoDB 存储引擎如何实现事务

通过使用重做日志、回滚日志、锁机制和多版本并发控制(MVCC),MySQL 的 InnoDB 存储引擎能够高效地管理事务,确保数据的完整性和一致性,支持复杂的事务操作,并提供良好的并发性能。事务的开始和结束、事务的隔离级别设置,以及事务的具体操作,都是实现事务管理的关键步骤。

2024-06-14 17:37:36 555

原创 Vue.js基础入门

组件是Vue.js中可重用的独立模块,每个组件都有自己的模板、数据、逻辑和样式。组件可以嵌套使用,形成复杂的UI结构。除了内置指令,Vue还允许开发者创建自定义指令。通过这个综合示例,我们练习了Vue.js的基础指令v-ifv-forv-bindv-onv-model和v-show。这些指令是Vue.js的核心功能,掌握它们可以帮助你更高效地开发动态和响应式的Web应用。计算属性:适用于基于现有数据计算新的数据,具有缓存特性,适合用于模板中的复杂逻辑。侦听属性。

2024-06-06 20:13:12 1007

原创 Redis几种部署模式介绍

理解和优化 Redis 的复制延迟和一致性问题对于确保系统的可靠性和性能至关重要。通过优化网络连接、增加从节点性能、调整复制缓冲区大小和监控复制延迟,可以有效减少复制延迟和一致性问题,确保 Redis 系统的高可用性和数据一致性。哨兵模式(Sentinel通过配置 Redis 哨兵,可以实现 Redis 的高可用性。当主节点发生故障时,哨兵会自动执行故障转移,选举新的主节点,确保系统的持续可用性。哨兵的配置相对简单,但在生产环境中起到关键作用。

2024-06-04 16:03:56 1138

原创 Kafka学习笔记

Kafka的架构设计非常注重高吞吐量、低延迟、可扩展性和容错性。以上步骤详细介绍了在本地环境下安装和配置Kafka的过程。通过这些步骤,你可以在本地环境中快速搭建一个Kafka集群,并开始使用Kafka进行消息的生产和消费。如果你需要在生产环境中使用Kafka,还需要进行更多的配置和优化。通过上述步骤,你已经学会了如何使用Java编写简单的Kafka Producer和Consumer,并验证了它们的基本功能。

2024-06-02 20:49:20 1235

原创 领域驱动设计(DDD)学习笔记之:战术设计

聚合根是聚合内部的一个特殊实体,作为聚合的唯一入口点,负责聚合内的所有操作和状态变更。聚合根通过维护聚合内对象的引用和关系,确保聚合的一致性和业务规则的完整性。聚合根在DDD中扮演着重要角色,它作为聚合的入口点和主要控制者,负责管理聚合内部的对象和业务逻辑,确保聚合的一致性和完整性。通过合理设计和使用聚合根,可以有效提升领域模型的清晰性和可维护性。在实际项目中,持续关注和优化聚合根的设计,确保其符合业务需求和系统发展的需要。

2024-05-28 23:21:42 1012

原创 领域驱动设计(DDD)学习笔记之:战略设计

为每个上下文定义清晰的接口和协议,确保上下文之间的交互规范和稳定。REST API接口:定义上下文之间的REST API接口,规范请求和响应格式。消息队列:通过消息队列实现上下文之间的异步通信,确保松耦合。确定限界上下文的边界是DDD战略设计中的关键步骤,通过合理划分上下文边界,可以有效管理复杂业务系统,提高系统的灵活性和可维护性。在实际项目中,结合业务需求、团队结构和领域事件等因素,持续评估和优化上下文边界,确保系统的稳定性和一致性。

2024-05-28 23:03:44 854

原创 领域驱动设计(DDD)学习笔记之:基础理论与概念

领域是系统所要解决的业务问题的范围,它是业务知识的集合,包含了业务中的所有概念、规则和逻辑。领域描述了系统的业务环境,是整个系统开发的核心。子域是领域的进一步划分,表示领域中的一个特定部分。每个子域对应于一个具体的业务功能或业务流程,通过将领域划分为多个子域,可以更好地管理和组织复杂的业务逻辑。限界上下文是DDD中的一个重要概念,用于划分和隔离领域模型。每个限界上下文有自己独立的模型和业务逻辑,可以避免不同上下文之间的模型冲突。实体是领域模型中的核心概念,表示具有唯一标识符和生命周期的业务对象。

2024-05-28 22:36:49 1129

原创 浏览器指纹技术介绍

浏览器指纹(Browser Fingerprinting)是一种通过收集用户浏览器和设备的各种信息来唯一识别用户的方法。即使用户清除了浏览器缓存或使用隐身模式,这些信息依然可以帮助追踪用户的活动。

2024-05-26 13:10:59 1138

原创 订单id的设计问题探讨

UUID适合需要全局唯一性的场景,但不能按时间排序。雪花算法适合分布式环境,能生成有序且唯一的ID。自增ID和时间戳组合简单易实现,适合单机或小规模分布式环境。数据库自增ID适合不需要高度分布式的系统,简单直接。根据具体需求,选择合适的方案并进行实现。扩展序列号位数:增加序列号部分的位数,增加每毫秒可生成的ID数量。时间回拨:在同一毫秒内生成的ID数量超过限制时,等待下一毫秒。使用多实例:通过负载均衡将请求分配到多个ID生成实例,每个实例使用不同的机器ID和数据中心ID。分布式ID生成服务。

2024-05-25 13:42:38 649

原创 开发需要知道的敏捷开发理念

Scrum是一种敏捷开发框架,强调以增量和迭代的方式开发软件。Scrum通过短周期的冲刺(Sprint)来实现可持续的进步。Kanban是一种敏捷开发方法,强调通过视觉化和限制在制品(WIP)来优化工作流程,持续交付高质量产品。JIRA是Atlassian公司开发的一款强大的项目和问题跟踪工具,广泛用于敏捷项目管理,支持Scrum和Kanban等敏捷方法。Trello是一个简单直观的看板工具,适用于敏捷项目管理和任务跟踪,通过卡片和列表的方式管理任务。

2024-05-25 08:12:57 719

原创 PostgreSQL学习笔记

PostgreSQL 的架构由多个层次和组件组成,各部分相互协作以提供高效的数据库服务。psql命令行工具:适用于习惯命令行操作的用户,功能强大且灵活,适合快速执行命令和脚本。pgAdmin 图形化管理工具:适用于需要可视化操作的用户,提供了直观的界面和丰富的管理功能,适合复杂数据库管理任务。熟练使用这两种工具,可以帮助你更高效地管理和操作 PostgreSQL 数据库。数据定义语言 (DDL) 是 SQL 的一部分,用于定义和管理数据库结构和对象。

2024-05-24 19:29:23 1065

原创 有限状态自动机(Deterministic Finite Automaton, DFA)

确定有限状态自动机(Deterministic Finite Automaton, DFA)是一种用于正则语言识别的模型,广泛应用于文本处理、编译器设计和网络协议等领域。

2024-05-24 14:36:12 1365

原创 HTTPS协议如何确保数据的安全传输和效率

HTTPS协议结合了非对称加密和对称加密两种技术,这两者在确保数据安全方面各有其用途。

2024-05-22 21:28:56 714

原创 达梦数据库学习笔记

达梦数据库在架构设计、性能优化、安全性和可靠性方面具备优势,适合大型企业级应用和高并发、高数据量的场景。MySQL以其易用性、灵活性和广泛应用在互联网和中小企业中的优势,适合中小型应用和快速开发部署的场景。达梦数据库管理控制台(DM Management Console)是一个强大的图形化管理工具,通过该工具,您可以方便地进行数据库的基本配置、管理和监控。通过学习和使用该工具,可以提高您对达梦数据库的管理效率和操作能力。

2024-05-22 18:37:16 1906

原创 MySQL InnoDB 引擎的多版本并发控制MVCC

MySQL InnoDB 引擎的多版本并发控制(MVCC,Multi-Version Concurrency Control)是一种实现数据库并发控制的方法,能够在保证高并发性的同时提高性能。MVCC 通过维护数据的多个版本,使得读操作不会阻塞写操作,从而提高系统的整体效率。

2024-05-21 18:44:56 678

原创 贪心算法简单介绍

贪心算法是一种在每一步选择中都采取当前状态下最优或最优近似的选择,以期望最终得到全局最优解的算法。贪心算法并不总能得到全局最优解,但在某些问题上,它可以得到全局最优解,并且比动态规划等其他方法更为简单和高效。

2024-05-21 00:47:43 471

原创 金融科技微服务架构草图

本文将探讨如何通过Spring Cloud微服务架构构建高效的金融科技系统,并展示一个典型的金融科技微服务架构设计。

2024-05-21 00:34:19 1116

原创 微服务架构(如SpringCloud )中业务中台概念讲解

在微服务架构特别是Spring Cloud技术领域中,业务中台(Business Middle Platform, BMP)是一个关键概念,旨在通过整合和复用企业的核心业务能力,提高业务响应速度和敏捷性。

2024-05-20 23:17:34 859

原创 动态规划常见算法题讲解

动态规划常见算法题讲解

2024-05-19 22:05:56 1297

原创 动态规划算法简单介绍

动态规划是一种强大的算法技术,适用于解决具有重叠子问题和最优子结构性质的问题。通过定义子问题、找到递推关系、确定边界条件和计算顺序,可以有效地解决许多复杂问题。

2024-05-19 00:03:09 561

原创 回溯算法探讨

回溯算法是一种用于寻找所有(或部分)解的算法,特别适用于需要探索所有可能解的组合问题。它通过系统的试错来构建解,并在发现某一步不满足条件时回退到上一步继续尝试其他可能性。回溯算法常用于解决排列、组合、子集生成等问题。

2024-05-18 19:02:53 688

原创 二叉树遍历方法详解:层序遍历、前序遍历、中序遍历和后序遍历

首先,我们定义一个二叉树节点类TreeNode,用于表示二叉树中的每个节点。该类包含节点值、左子节点和右子节点的引用。int val;@Override。

2024-05-17 21:51:18 656

原创 缓存淘汰(LRU)算法

LRU缓存算法通过维护一个记录访问历史的列表来决定哪个数据项淘汰,使得长时间未被访问的数据最先被移除,这样可以有效地利用有限的缓存空间,确保缓存的高效使用。

2024-05-14 00:01:18 534 1

原创 ArrayList 中几个关键部分的源码解析

成为一个非常灵活的数据结构,能够有效地管理内存,同时提供快速的索引访问能力。但它也说明了为什么在添加元素时可能会发生昂贵的数组复制操作,特别是当数组大小需要频繁调整时。扩容通常增加大约 50% 的容量,但具体的增加量取决于需要的最小容量。时,它首先检查数组是否足够大,如果不够大,它需要进行扩容。是如何在运行时根据需要动态调整其存储容量的。的核心是一个动态数组,实际上是一个可调整大小的数组。这段代码定义了数组的默认初始容量,并声明了一个对象数组。方法来确保数组有足够的容量。方法完成的,该方法再调用。

2024-05-12 18:53:14 266

原创 Java NIO&AIO

Java NIO(New Input/Output)和 AIO(Asynchronous Input/Output)都是Java平台上处理非阻塞I/O的技术,但它们在处理I/O操作的方式和实现机制上有着显著的差异。

2024-05-11 18:23:59 978

原创 Java EE/Jakarta EE范畴一览

Servlet API 提供了一种强大的方式来创建动态 Web 应用程序,通过接收、处理 HTTP 请求和生成响应。它是 Java Web 开发的基石,其他很多 Java Web 技术和框架(如 Spring MVC、JSF)都是建立在 Servlet 的基础之上。允许在HTML页面中嵌入Java代码,用于动态生成Web内容。JavaServer Pages (JSP) 是一个帮助开发者创建动态生成的web页面的技术,它允许开发者将Java代码嵌入到HTML页面中。

2024-05-07 21:42:27 1246

原创 Spring框架的扩展点

实现自定义继承:这个类提供了接口的默认实现,你可以覆盖必要的方法来实现自定义逻辑。重写方法:这是最关键的方法,用于将输入的字符串转换成相应的对象。重写方法:这个方法应返回一个可以表示内部属性值的字符串,通常用于UI显示或调试。在Spring配置中注册自定义可以通过几种方式实现,最常见的是在配置类中使用@BeanMap<Class<?>, Class<?通过上述方式,当Spring框架遇到需要将字符串转换为类型的属性时,会使用你定义的来进行转换。

2024-05-05 23:03:58 875

原创 Java 中用于线程同步类CountDownLatch和CyclicBarrier的区别

和都是 Java 中用于线程同步的工具类,它们虽然在某些方面类似,但在用途和工作方式上有着明显的区别。

2024-05-02 21:33:37 477 1

原创 JVM对象锁的升级过程

在Java中,锁升级是一个动态过程,JVM根据运行时的线程竞争情况自动调整锁的状态。这个过程涵盖从偏向锁到轻量级锁,最后可能升级到重量级锁。下面详细解释每个步骤以及它们之间的转换机制。

2024-05-01 23:15:51 938 1

原创 一篇文章学会正则表达式

正则表达式(Regular Expression,简称Regex)是一种用于匹配字符串中字符组合的模式。它们由一系列字符和特殊符号组成,用来定义一种搜索模式。正则表达式广泛应用于文本搜索、文本替换、数据验证和复杂的文本操作中。它们在各种编程语言和工具中都有实现,是处理文本数据不可或缺的工具。首先,你需要确定文本中日期的格式。YYYY-MM-DD(如 2024-05-01)DD/MM/YYYY(如 01/05/2024)MM-DD-YYYY(如 05-01-2024)(如 May 01, 2024)

2024-05-01 16:33:03 978

原创 Hadoop生态系统的核心组件探索

理解大数据和Hadoop的基本概念当我们谈论“大数据”时,我们指的是那些因其体积、速度或多样性而难以使用传统数据处理软件有效管理的数据集。大数据可以来自多种来源,如社交媒体、传感器、视频监控、交易记录等,通常包含了TB(太字节)甚至PB(拍字节)级别的数据。大数据的特征大数据通常被描述为具有以下四个“V”特征:体积(Volume):数据的规模非常大,传统数据库难以存储和处理。 速度(Velocity):数据以极快的速度生成,需要快速处理和分析。 多样性(Variety):数据来自多种来源

2024-04-30 23:33:40 985 3

手写Spring框架之: HelloSpring

手写Spring框架之: HelloSpring

2024-02-01

java基础继承封装多态

java基础_继承封装 多态,概念的梳理,对初学者很有帮助,看一遍就清楚了

2013-04-01

vagaa客户端

VAGAA,资源共享,可以下载小电影,你懂得,赶快下吧

2011-11-30

hibernate详细官方中文教程

hibernate最专业,最详细的学习教程,web开发人员必备手册

2011-11-11

Linux命令大全_从菜鸟到大虾

包含了linux文件管理,文件传输,文档编辑,系统管理,系统设置,系统通讯,磁盘管理,磁盘维护,备份压缩,设备管理的命令,学习linux必备手册

2011-11-11

空空如也

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

TA关注的人

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