自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IT之一小佬的博客

为将来之幸福美好的生活而努力奋斗拼搏!

  • 博客(1528)
  • 资源 (4)
  • 收藏
  • 关注

原创 ElasticSearch技术栈总结

本文提供了ElasticSearch的学习路线、环境安装配置、技术知识、交互操作、性能优化等方面的详细指南。内容包括ElasticSearch的学习路线图、环境安装配置步骤、技术知识如RESTFUL API、文档映射、查询语句等,以及使用Python与ElasticSearch进行交互的操作方法。此外,还涉及性能优化技巧和其他相关学习笔记记录,为ElasticSearch的学习和应用提供了全面的参考。

2025-05-20 12:44:16 900

原创 windows下安装ES的IK分词器插件

IKAnalyzer是一款基于Java的开源中文分词工具包,采用“正向迭代最细粒度切分算法”,具备高速处理能力(80万字/秒),支持多种文本类型的分词,如英文字母、数字和中文词汇。其优化的词典存储减少了内存占用。IK分词器可作为Elasticsearch插件使用,安装时需确保插件与ES版本一致,安装后可通过API测试分词效果。测试结果显示,IK分词器对中文文本的分词效果良好。

2025-05-19 23:27:26 426

原创 elasticsearch-head工具安装

本文介绍了两种安装elasticsearch-head的方式:通过Docker安装和通过Chrome插件安装。Docker安装步骤包括拉取镜像、创建和启动容器,但需注意跨域问题,需在服务端配置CORS。Chrome插件安装则更为简便,但国内网络可能无法直接安装。两种方法各有优缺点,用户可根据需求选择适合的安装方式。

2025-05-19 21:10:39 332

原创 ElasticSearch下载及环境安装

本文介绍了Elasticsearch的下载和安装过程,包括在CentOS 7和Windows系统上的具体步骤。在CentOS 7上,首先需要创建特定用户并解压安装包,然后修改配置文件和系统参数以确保Elasticsearch能够成功运行。启动服务后,可以通过访问特定URL来测试是否安装成功。对于Windows系统,安装过程较为简单,只需下载对应的Windows版本并解压即可直接运行。文中还提供了一些在安装过程中可能遇到的问题及其解决方案,帮助用户顺利完成安装。

2025-05-19 20:03:43 323

原创 ElasticSearch学习路线图

ElasticSearch学习路线图:

2025-05-19 19:24:12 191

原创 Kafka学习路线图

Kafka学习路线图

2025-05-19 16:14:38 136 1

原创 Kafka中事务的使用

Kafka事务机制通过幂等性和原子性确保消息的精准一次性处理。幂等性通过ProducerID和SequenceNumber防止消息重复,但仅限于单次会话内。事务的原子性通过TransactionCoordinator管理,确保多条消息要么全部成功要么全部失败,支持跨分区和Topic的原子写操作。Kafka还通过transaction-id属性解决僵尸实例问题,确保ExactlyOnce语义。生产者和消费者通过特定API支持事务操作,生产者需设置transactional.id,消费者需设置isolation

2025-05-19 12:01:15 831

原创 Kafka如何保障消息传递的可靠性与一致性

Apache Kafka 通过多种机制确保数据传递的可靠性与一致性。首先,Kafka 使用分区和副本机制,每个分区有多个副本,确保即使某个 Broker 故障,消息也不会丢失。其次,ISR(In-Sync Replicas)集合确保数据同步,只有 ISR 中的副本确认后,消息才被视为提交。Kafka 还通过持久化到磁盘(日志)来保障数据可靠性。在数据一致性方面,Kafka 提供生产者确认机制、幂等性与事务性,确保消息不重复且原子性提交。消费者端,Kafka 通过分区内部严格有序、位移提交和消费者组与分区再平

2025-05-19 10:53:57 938

原创 Kafka分区数最佳设置

在Kafka中,分区数的设置对系统性能、吞吐量和数据有序性有重要影响。选择合适的分区数需考虑业务需求、负载特性和资源状况。可以通过压测工具(如kafka-producer-perf-test.sh和kafka-consumer-perf-test.sh)评估硬件条件下的最佳分区数。增加分区数可提高吞吐量,但超过一定阈值后,吞吐量会下降。分区数还受操作系统文件描述符限制,过多分区会增加系统启动、关闭和日志清理的耗时。分区数应结合并发能力、吞吐量、有序性要求和硬件资源进行设置,一般建议分区数为Broker节点数

2025-05-19 09:57:12 747

原创 Kafka如何解决消息回溯消费问题

Kafka作为分布式系统中的高效消息队列,其回溯消费机制在处理数据丢失、错误处理、版本升级、数据分析及容灾恢复等场景中发挥着关键作用。Kafka支持基于消息偏移量和基于时间点的两种回溯方式。基于偏移量的回溯通过重置消费者组的偏移量实现,简单直接但需谨慎管理偏移量以避免重复或漏消费。基于时间点的回溯则通过时间戳和消息索引实现,虽更灵活但需额外资源。实践中,建议合理设置偏移量管理策略、定期备份偏移量信息、监控集群状态并熟练使用Kafka API,以确保高效可靠的消息回溯消费。

2025-05-18 19:50:05 962

原创 Kafka如何实现延时队列

在订单创建后超过30分钟未支付的情况下,可以通过Kafka实现延时队列来取消订单。具体方案包括:在Kafka中创建相关主题,消费者轮询消费该主题的消息。消费者在消费消息时,判断消息的创建时间与当前时间是否超过30分钟(前提是订单未支付)。如果超过,则在数据库中修改订单状态为已取消;如果未超过,则记录当前消息的offset,并暂停消费后续消息。等待1分钟后,再次从Kafka拉取该offset及之后的消息,继续判断。Kafka本身不支持延时队列,但通过这种方式可以实现类似功能。

2025-05-18 18:03:31 341

原创 Kafka如何解决消息积压、堆积问题

Kafka消息积压问题通常由生产速度过快和消费速度过慢导致,长期失衡可能引发资源紧张、服务延迟或崩溃。解决积压问题的核心在于提升消费者的消费能力和优化Kafka集群性能。常见原因包括消费端过载、生产异常、中间件故障、业务流程复杂、慢查询、第三方服务依赖以及消费者组频繁rebalance等。应对策略包括增加消费者并发处理能力、提升消费能力、优化Kafka集群性能、调整配置参数、处理积压历史数据、分离实时与历史数据、流量控制、动态扩展、数据分流、避免重复消费、建立监控与告警机制以及异常处理机制。通过这些方法,可

2025-05-18 17:18:08 863

原创 Kafka如何保证消息的顺序性

在现代分布式系统中,消息顺序消费对确保系统正确性和一致性至关重要,尤其是在金融交易和实时流处理等场景中。然而,分布式环境下的网络延迟、系统故障和并发处理等因素可能导致消息乱序。Apache Kafka通过分区机制和消息键的使用,有效解决了这一问题。Kafka确保单个分区内的消息严格有序,并通过自定义分区策略将具有相同键的消息路由到同一分区,从而在多分区环境下实现局部顺序消费。此外,Kafka支持消费者组配置,允许在保证顺序的前提下提升系统处理效率。在多分区场景下,通过定制分区策略和引入内存队列缓冲,Kafk

2025-05-18 15:35:39 1014

原创 Kafka数据重复及解决方案

在分布式系统中,数据重复是一个常见问题,主要由于网络波动和系统重试机制引起。消息重复可能发生在生产端和消费端,如网络异常、分区不可用或消费端未提交offset等情况。为了解决消息重复问题,可以采用三种消息投递语义:最多一次、至少一次和精确一次。具体解决方案包括使用Kafka幂等性Producer、Kafka事务和消费端幂等性。Kafka幂等性Producer通过确保单分区和单会话内的消息幂等性来避免重复,而Kafka事务则扩展了幂等性的应用范围,支持跨分区和会话。消费端幂等性通过如消息表等机制确保即使消息重

2025-05-15 19:19:50 969

原创 Kafka生产环境防止数据丢失

Kafka作为分布式流处理平台,虽然以高可靠性著称,但在生产者、Broker和消费者三个环节仍可能发生消息丢失。生产者端消息丢失可能由于发送失败或确认机制配置不当;Broker端消息丢失可能与副本因子设置过低或数据同步配置不当有关;消费者端消息丢失则可能由于自动提交偏移量或处理消息失败导致。为防止消息丢失,生产者端应确保消息被所有同步副本接收,并设置足够的重试次数;Broker端应配置足够的副本数和合理的刷盘策略;消费者端应关闭自动提交偏移量,并确保消息处理成功后再提交偏移量。此外,Kafka支持三种消息传

2025-05-14 19:31:58 938

原创 Kafka如何做到不丢失不重复消费

在需要确保消息不丢失、不重复的场景中,如无人机监控系统,Kafka的消息传递机制提供了三种语义:最多一次(at most once)、至少一次(at least once)和精确一次(exactly once)。Kafka默认配置为至少一次,可能造成消息重复。为实现精确一次,Kafka 0.11.0.0版本引入了幂等生产者和事务支持,确保消息在生产者端不重复。消费者端则需手动管理offset提交或使用Kafka Streams引擎,设置processing.guarantee=exactly_once,以实

2025-05-13 21:12:40 758

原创 Kafka如何保证百万级数据写入速度

Kafka通过页缓存技术和磁盘顺序写实现高吞吐量。数据首先写入操作系统的页缓存(内存),然后由操作系统决定何时刷入磁盘,这大大提升了写入性能。此外,Kafka采用磁盘顺序写的方式,将数据追加到文件末尾,避免了随机写带来的性能损耗,使得写入性能接近内存写入。在数据消费方面,Kafka引入零拷贝技术,直接从操作系统的缓存发送数据到网卡,跳过了不必要的拷贝步骤,显著提升了读取性能。通过这些优化,Kafka能够实现每秒几十万甚至上百万条数据的高效处理。

2025-05-13 17:56:10 558

原创 Kafka中间件技术栈总结

本文主要介绍了Kafka的安装配置、技术知识、交互操作及性能优化等方面的内容。首先,详细讲解了Kafka的安装启动及图形管理界面Kafka-eagle的配置。其次,涵盖了Kafka中Shell命令的使用、集群吞吐量测试等技术知识。接着,探讨了Kafka生产者和消费者的Python API编写、消息发送方式、偏移量提交、数据分发策略及消费者负载均衡机制等交互操作。最后,提供了Kafka学习笔记,帮助读者深入理解Kafka的核心概念与应用。

2025-05-13 10:06:50 383

原创 Redis Lua脚本

Redis自2.6版本起引入了Lua脚本功能,允许开发者在Redis服务器上执行Lua脚本,从而减少网络请求次数,降低网络延迟。脚本执行具有原子性,确保操作不会被其他命令打断,且能替代Redis的事务功能,支持错误回滚。通过EVAL命令,可以执行Lua脚本,其中脚本通过KEYS和ARGV数组访问键名和附加参数。在脚本中,可以使用redis.call()函数执行Redis命令,但需避免死循环和耗时操作,以防阻塞Redis服务器。Lua脚本在Redis中提供了一种高效、原子性的操作方式,是处理复杂逻辑的理想选择

2025-05-12 20:41:28 295

原创 Redis主从架构介绍及复制原理

Redis主从架构通过配置主节点和从节点实现数据复制,确保数据的高可用性和负载均衡。搭建从节点时,需复制并修改redis.conf文件,设置端口、日志文件、数据目录等,并配置replicaof指向主节点。启动从节点后,通过redis-cli连接并测试数据同步。Redis主从复制工作原理基于PSYNC命令,主节点在后台生成RDB快照并发送给从节点,从节点加载数据后,主节点再发送缓存命令。从Redis 2.8开始,支持部分数据复制(断点续传),减少全量复制的开销。为缓解主从复制风暴,可采用多级从节点架构,部分从

2025-05-12 19:44:51 489

原创 缓存数据一致性及解决方案

在项目开发中,缓存的使用至关重要,尤其是在保证数据一致性方面。常见的缓存更新策略有三种:先更新数据库再更新缓存、先删除缓存再更新数据库、先更新数据库再延时删除缓存。第一种策略因线程安全问题可能导致脏数据,通常不被采用。第二种策略在并发场景下可能导致缓存中始终存储旧数据,也不理想。第三种策略通过延时删除缓存,虽然存在极低概率的并发问题,但由于数据库读操作通常快于写操作,实际发生概率极低,因此被认为是最优方案。通过合理设置缓存过期时间,可以进一步确保数据的最终一致性。

2025-05-11 19:21:28 331

原创 Redis开发规范

本文介绍了Redis的key设计、value设计、命令使用和客户端使用的优化技巧。在key设计上,建议将表名作为前缀,主键列名和值作为中间段,存储列名作为后缀。value设计应避免bigkey,控制string类型大小在10KB以内,集合元素个数不超过5000。命令使用上,禁止线上使用keys、flushall等命令,合理使用select,推荐批量操作提高效率,不建议过多使用事务功能。客户端使用上,推荐Jedis、Spring Data Redis和Redisson,避免多个应用共享一个Redis实例,使用

2025-05-11 19:05:15 702

原创 缓存雪崩介绍及解决方案

缓存雪崩是指大量缓存同时失效,导致请求直接涌向数据库,造成数据库压力骤增的现象。为避免这种情况,可以采取以下措施:1. 过期时间打散:为缓存设置随机的过期时间,避免集中失效;2. 热点数据不过期:对热点数据设置永不过期,并定期更新;3. 加互斥锁:对同一key的请求加锁,确保只有一个线程访问数据库,其他线程等待并使用缓存结果。代码实现中,通过synchronized锁机制确保线程安全,但需注意加锁仅减轻数据库压力,未提升系统吞吐量。

2025-05-11 18:50:32 313

原创 缓存击穿介绍及解决方案

缓存击穿是指某个热点key在缓存过期瞬间,大量请求直接访问数据库,导致数据库压力骤增甚至崩溃。解决方案包括使用互斥锁和热点数据不过期。互斥锁确保只有第一个请求能访问数据库并更新缓存,其他请求等待缓存更新后直接读取。热点数据不过期则通过定时任务异步更新缓存,避免缓存失效。代码实现中,通过setnx方法设置互斥锁,确保只有一个线程能执行数据库查询并更新缓存,其他线程等待或重试。

2025-05-11 18:42:58 192

原创 缓存穿透介绍及解决方案

缓存穿透是指用户请求的数据在缓存和数据库中均不存在,导致每次请求都直接访问数据库,增加数据库压力。常见于恶意攻击,如请求无效ID。解决方案包括对空值进行缓存,即使查询结果为空也将其缓存,并设置较短的过期时间;以及使用布隆过滤器,通过判断元素是否在集合中来减少无效查询,从而有效缓解缓存穿透问题。

2025-05-11 18:24:55 263

原创 ​缓存预热介绍及解决方案

缓存预热是一种在系统上线前将热点数据预先加载到缓存中的技术,旨在避免缓存冷启动时数据库负载过高。缓存冷启动指的是新系统启动时缓存中无数据,若直接对外服务,高并发可能导致数据库崩溃。解决思路包括提前将部分数据加载到Redis中,但若数据量过大,无法全部写入Redis,需根据实时访问情况统计高频热数据并写入。此外,可通过多服务并行读取数据实现分布式缓存预热,以提升系统性能和数据库稳定性。

2025-05-11 18:15:09 224

原创 Redis脑裂介绍及解决方案

Redis集群脑裂是指由于网络分区,导致Redis主节点(Master)与从节点(Slave)及哨兵(Sentinel)集群断开连接,哨兵无法感知主节点存在,从而将某个从节点提升为新的主节点,导致集群中出现两个主节点。这种情况下,如果客户端继续向原主节点写入数据,新主节点无法同步这些数据,网络恢复后,原主节点降为从节点并同步新主节点数据,可能导致大量数据丢失。为解决此问题,可在redis.conf中配置min-replicas-to-write 1和min-replicas-max-lag 5,确保主节点在

2025-05-11 17:46:38 303

原创 Redis数据库技术栈总结

本文目录涵盖了Redis数据库的全面学习路径,包括环境安装配置、数据结构、技术知识、交互操作、性能优化及其他相关内容。环境安装配置部分详细介绍了Redis及其可视化工具在不同操作系统上的安装步骤和配置方法。数据结构部分深入探讨了Redis支持的各种数据类型及其操作命令。技术知识部分涵盖了Redis的特性、应用场景、持久化策略、事务处理、发布订阅模式、哨兵监控、主从同步及集群搭建等高级功能。交互操作部分提供了Python与Redis数据库及集群的交互方法,包括增删改查和模糊查询等操作。性能优化部分则关注Red

2025-05-11 17:28:38 1191 1

原创 不含特殊楼层的最大连续楼层数【数组、排序】

不含特殊楼层的最大连续楼层数【数组、排序】

2025-01-06 22:20:19 419

原创 完全二叉树的节点个数

数据结构:完全二叉树的节点个数

2024-12-31 10:43:46 374

原创 PS做标签数字

PS做标签数字

2024-10-27 19:19:26 617

原创 Django Celery 定时任务时区设置

Django Celery 定时任务时区设置

2024-10-27 11:12:12 714 1

原创 celery定时任务使用的是UTC时间吗

celery定时任务使用的是UTC时间

2024-10-27 11:06:09 678 1

原创 SQL注入示例及避免

SQL注入示例及避免

2024-08-11 13:04:43 302 1

原创 PS将一张长图切成多张图片

PS将一张长图切成多张图片

2024-08-04 21:28:17 15121

原创 Linux系统中wget命令用法详解

Linux系统中wget命令用法详解

2024-06-29 00:45:50 2680

原创 Ubantu中添加环境变量

Ubantu中添加环境变量

2024-06-28 23:56:46 2450

原创 Linux系统中卸载与安装JDK

Linux系统中卸载与安装JDK

2024-03-03 08:04:07 8116 1

原创 centos7系统生成ssh keys(公钥、私钥)

centos7系统生成ssh keys(公钥、私钥)

2024-03-02 00:07:33 1644

原创 Linux系统中安装maven

Linux系统中安装maven

2024-02-28 22:57:29 1767

nitk-data数据安装

nitk_data数据安装,Resource punkt not found.&&nltk.download()下载失败

2023-06-10

3K条京东手机评论数据集

该数据集为3K条京东购物手机商品评论的相关数据,具体列包括了用户评论内容、时间、用户昵称等。

2021-05-28

学成在线前端代码_study.rar

学成在线前端代码

2022-01-14

nltk_data.rar

nltk包

2021-05-03

RedisDesktopManager.rar

RedisDesktopManager,可视化管理redis数据库

2021-02-14

空空如也

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

TA关注的人

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