本本本添哥
奶爸的编程之路,也就一周冷个三天~
专门分享AI大模型/Java微服务/计算机软考/项目管理/个人成长/思维框架/效能工具等相关内容
欢迎关注我的公众号:本本本添哥
展开
-
【项目实战】在ZK中使用命令行查看注册到上面的Dubbo服务
在Zookeeper中查看注册到上面的Dubbo服务,可以通过Zookeeper的命令行客户端或者使用zkCli.sh脚本。Zookeeper作为Dubbo的服务注册中心,保存了服务提供者和消费者的信息。原创 2025-03-25 10:22:40 · 137 阅读 · 0 评论 -
【项目实战】消息队列RabbitMQ,是一个开源的消息队列系统,广泛应用于异步处理、解耦和流量削峰等场景。
AMQP(高级消息队列协议)是一种应用层协议,用于实现消息的可靠传递。它是一个开放标准,定义了消息传递的通信框架和机制。RabbitMQ是基于AMQP协议实现的消息队列系统,支持多种消息路由模式,如直接交换、主题交换和扇出交换等。AMQP协议还支持多种消息队列协议,如STOMP、MQTT等,并且可以通过插件扩展功能。原创 2025-03-25 10:15:46 · 20 阅读 · 0 评论 -
【项目实战】分布式定时任务Quartz,是一个功能强大且灵活的任务调度框架,适用于从简单到复杂的企业级应用。
Quartz 是一个功能强大的任务调度框架,广泛应用于企业级应用中。Quartz 是一个功能强大且灵活的任务调度框架,适用于从简单到复杂的企业级应用。通过合理配置和使用其核心组件(如 Job、Trigger 和 Scheduler),可以实现高效的任务调度和管理。原创 2025-03-25 10:14:07 · 350 阅读 · 0 评论 -
【项目实战】Redis常见问题之缓存击穿、缓存穿透、缓存雪崩
Redis作为一款流行的内存数据存储系统,经常被用作缓存来提高应用的性能。然而,在使用Redis作为缓存时,可能会遇到一些问题,如缓存击穿、缓存穿透和缓存雪崩。这些问题可能导致系统性能下降甚至服务不可用。下面是对这三种常见问题的简要解释及解决方案,每种方案都有其适用场景与限制条件,在实际应用中需要根据具体情况选择最合适的方法来优化系统性能并保障稳定性。此外,合理的架构设计以及对业务逻辑的理解也是有效预防这些问题的关键因素之一。原创 2025-03-19 10:26:15 · 152 阅读 · 0 评论 -
【项目实战】SpringBoot项目中集成Kafka需要完成依赖引入、配置设置、生产消费逻辑实现等步骤,覆盖从基础配置到高级特性的完整流程。
在SpringBoot项目中集成Kafka需要完成依赖引入、配置设置、生产消费逻辑实现等步骤,以下是详细说明及常规配置,通过以下步骤,可实现SpringBoot与Kafka的高效集成,覆盖从基础配置到高级特性的完整流程。中配置Kafka参数,所有配置需置于。依赖以支持嵌入式Kafka。指向嵌入式Broker地址。原创 2025-03-19 09:48:58 · 18 阅读 · 0 评论 -
【项目实战】ConcurrentKafkaListenerContainerFactory 是 Spring Kafka 中用于创建并发消息监听容器的核心配置类,用于支持多线程消费 Kafka 消息.
是 Spring Kafka 中用于创建并发消息监听容器的核心配置类,主要用于支持多线程消费 Kafka 消息。是 Spring Kafka 中实现高效、可定制化消息消费的核心工具,通过合理配置并发度、错误处理、消息转换等参数,可适应从简单单条消费到复杂批量处理的各种场景。原创 2025-03-19 09:45:02 · 23 阅读 · 0 评论 -
【项目实战】分布式定时任务框架XXL-JOB核心源码分析 - 集群管理,通过中心化调度、动态注册/心跳机制、灵活路由策略等设计,实现了高可用、弹性扩展的分布式任务调度能力。
集群管理:XXL-JOB设计为在分布式集群环境中运行见xxl-job-admin模块中的XxlJobClusterScheduler类开始查看,该类负责管理集群。原创 2025-03-11 16:09:52 · 271 阅读 · 0 评论 -
【项目实战】分布式消息订阅分发 (消息队列Kafka)消息保留时长(Message Retention Time)Kafka中一个重要的配置参数,它决定了消息在Kafka主题中可以存在的最长时间。
Kafka消息保留时长(Message Retention Time)是Kafka中一个重要的配置参数,它决定了消息在Kafka主题中可以存在的最长时间。一旦消息的年龄超过了这个设定的时间,无论是否已经被消费者消费,Kafka都会自动删除这些消息以释放存储空间。消息保留时长的单位通常是毫秒,但通常我们会以分钟或小时来设置。原创 2025-03-09 10:38:38 · 19 阅读 · 0 评论 -
【好物推荐】KafkaUI-lite ,是一款轻量级开源的 Kafka 管理工具,支持对 Kafka 集群、Zookeeper 和 Redis 的图形化操作。
史上最轻便好用的kafka ui界面客户端工具,可以在生产消息、消费消息、管理topic、管理group;可以支持管理多个kafka集群部署简便,可以一键启动,不需要配置数据库、不需要搭建web容器支持zookeeper ui界面化操作;支持多环境管理支持redis ui界面化操作;支持多环境管理支持权限控制,可以自定义不同环境的新增、修改、删除权限;默认分配只读权限,避免用户的误操作。原创 2025-03-05 10:26:01 · 56 阅读 · 0 评论 -
【异常】Kafka 的重新平衡机制,会导致频繁出现“Adding newly assigned partitions”的情况
Kafka 的重新平衡(Rebalance)机制是 Kafka 消费者组(Consumer Group)的一项核心特性。Kafka 的重新平衡(Rebalance)机制确保了在消费者组内的所有活动成员之间公平地分配订阅主题的分区。Kafka 的重新平衡(Rebalance)机制是 Kafka 的一种机制,用于在消费者组内的成员之间分配分区。每当消费者组内发生成员加入、离开或订阅的主题分区发生变化时,就会触发一次重新平衡操作。原创 2024-12-31 13:00:46 · 244 阅读 · 0 评论 -
【项目实战】Kafka的常见问题
Kafka作为一个分布式流处理平台,确实存在一些常见问题,包括重复消息、数据丢失、集群管理等问题。。原创 2024-11-04 22:14:11 · 323 阅读 · 0 评论 -
【项目实战】Kafka的auto.offset.reset消费规则,消费者应该从哪里开始读取消息(默认earliest )。
Apache Kafka 是一个分布式流处理平台,广泛用于构建实时数据管道和流应用。在 Kafka 中,消费者通过订阅主题(topics)来消费消息。每个消费者属于一个消费者组(consumer group),并且每个分区(partition)只能被同一个消费者组中的一个消费者读取。当消费者开始消费一个主题时,它需要确定从哪个位置开始读取消息。配置项就是用来定义当没有初始偏移量(offset)或者当前偏移量不再存在时(例如,数据已被删除),消费者应该从哪里开始读取消息。正确配置。原创 2024-11-01 12:54:13 · 174 阅读 · 0 评论 -
【项目实战】分布式定时任务Elastic-job ,由两个相互独立的子项目 Elastic-Job-Lite 和 Elastic-Job-Cloud 组成。
Elastic-Job 支持作业分片,这意味着可以将一个大任务分解成多个小任务,并在不同的节点上并行执行这些小任务。每个节点处理一部分数据,从而实现负载均衡和高效率的数据处理。Elastic-Job 提供了事件追踪机制,可以帮助你监控作业的生命周期事件,如作业启动、完成、失败等。你可以通过注册来获取这些事件通知。Elastic-Job 作业可以通过多种方式触发,包括定时(Cron 表达式)、API 调用或手动触发。作业可以是简单的单次执行的任务,也可以是需要周期性执行的任务。原创 2024-10-29 23:31:17 · 45 阅读 · 0 评论 -
【项目实战】分布式日志搜索系统之数据同步CDC方案(Logstash-input-jdbc、go-mysql-elasticsearch、Elasticsearch-jdbc、NiFi、Canal)
在构建分布式日志搜索系统时,数据同步是一个核心环节。原创 2024-10-29 09:12:18 · 166 阅读 · 0 评论 -
【项目实战】消息队列RocketMQ入门介绍
RocketMQ是一个分布式消息中间件,广泛应用于互联网、金融等领域,以实现应用之间的解耦、异步通信以及削峰填谷等作用。原创 2024-10-29 09:12:08 · 48 阅读 · 0 评论 -
【项目实战】分布式日志搜索系统之Elastic Stack日志抽取(filebeat、heartbeat、packetbeat、metricbeat、logstash)
Elastic Stack,以前称为ELK Stack,是一套开源的日志分析解决方案。Elastic Stack,由Elastic公司开发和维护。Elastic Stack,包括了几个核心组件,这些组件协同工作以帮助用户收集、处理、存储、搜索和可视化数据。Elastic Stack,因其灵活性和强大的功能,在企业级环境中得到了广泛的应用,尤其是在需要处理大规模数据集的场景下。以下是Elastic Stack的主要组成部分及其功能介绍:原创 2024-10-29 09:11:50 · 420 阅读 · 0 评论 -
【项目实战】常用的消息队列(如 RabbitMQ, Apache Kafka, RocketMQ, ActiveMQ,NATS 等)的对比
RabbitMQ:适合需要灵活路由和多种协议支持的应用。:适合大数据流处理和日志收集。RocketMQ:适合大规模分布式系统,特别是需要高吞吐量和可靠性的场景。ActiveMQ:适合中小型项目,需要简单易用的消息队列。NATS:适合高性能、低延迟的应用场景,特别是微服务架构中的快速通信。选择合适的消息队列取决于具体的应用需求,包括性能要求、可靠性、功能需求以及运维复杂度等因素。原创 2024-10-28 23:33:24 · 97 阅读 · 0 评论 -
【项目实战】分布式存储之FastDFS入门介绍
FastDFS (Fast Distributed File System) 是一个开源的轻量级分布式文件系统,主要用于解决大容量存储和高负载访问的问题。它特别适合存储大量的小文件(如图片、文档等),支持高并发访问,并具有良好的扩展性。原创 2024-10-26 15:37:33 · 54 阅读 · 0 评论 -
【项目实战】分布式注册中心之注册中心实现方案(Redis)
分布式注册中心是一种服务发现机制,它为分布式系统中的服务提供了一个动态的服务目录。服务可以注册到这个中心,并且客户端可以通过查询该中心来获取可用服务实例的信息。Redis 是一种高性能的键值存储系统,它可以用来作为轻量级的分布式注册中心。原创 2024-10-26 15:30:19 · 94 阅读 · 0 评论 -
【项目实战】利用Zookeeper实现分布式定时任务
路径/tasks内容每个任务作为一个子节点,例如。每个任务节点下可以包含以下属性:name(字符串):任务的名称。(字符串):Cron 表达式,用于定义任务的执行时间。command(字符串):要执行的任务命令或脚本。status(字符串):任务的状态,如 “ACTIVE”, “PAUSED”, “DELETED” 等。(长整型):下次运行的时间戳。(长整型):上次运行的时间戳。result(字符串):最近一次运行的结果。原创 2024-10-26 08:27:08 · 131 阅读 · 0 评论 -
【项目实战】基于Zookeeper 使用Python手写模拟一个分布式定时任务中间件
为了手写一个基于 Zookeeper 的分布式定时任务中间件,我们需要实现几个关键组件:调度器、Worker 节点和 Zookeeper 存储模型。以下是一个简化的 Python 示例,使用 库来与 Zookeeper 交互。首先,确保你已经安装了 库:二、 Zookeeper 存储模型设计我们将使用之前提到的存储结构:2. 任务定义3. 调度器4. Worker 节点5. 监控和日志你可以添加更多的监控和日志功能来跟踪任务的状态和执行情况。例如,可以使用 Watcher 来监听任原创 2024-10-26 08:25:55 · 30 阅读 · 0 评论 -
【项目实战】分布式注册中心之注册中心实现方案(Zookeeper)
Apache Zookeeper 是一个开源的分布式协调服务,它提供了一个高可用性的集中化配置管理、命名服务、分布式同步和组服务。Zookeeper 提供了一个简单的原语集来构建更复杂的协调数据结构和服务。原创 2024-10-26 08:16:01 · 41 阅读 · 0 评论 -
【项目实战】配置中心实现方案之Zookeeper作为分布式配置中心
Zookeeper 是一个开源的分布式应用程序协调服务,由 Apache 软件基金会开发。它提供了一套简单的原语集,这些原语可以被用来实现更复杂的分布式协调功能,比如配置管理、命名服务、分布式锁等。当用作分布式配置中心时,Zookeeper 可以存储和管理应用的配置信息,并且能够在配置发生变化时通知到所有相关的客户端。原创 2024-10-26 08:10:57 · 30 阅读 · 0 评论 -
【项目实战】Redis持久化 - 技术概览,通过两种方式实现:RDB定期快照(Redis Database Backup)和AOF事务日志(Append Only File)
Redis,是一种开源的键值存储系统。Redis,支持多种数据结构,如字符串、哈希表、列表、集合等。Redis持久化,指将Redis中的数据保存到磁盘上的过程。Redis持久化,目的是防止数据丢失。Redis持久化,通过两种方式实现:定期快照(RDB)和事务日志(AOF)原创 2024-09-10 12:19:29 · 76 阅读 · 0 评论 -
【项目实战】Redis(REmote DIctionary Server),不仅可以用作数据库,也可以作为缓存层和消息代理
Redis,是一个开源的键值存储系统。Redis,以其高性能、低延迟的特点著称。Redis,支持多种数据结构如字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets),以及地理空间索引(geospatial indexes)。Redis,不仅可以用作数据库,也可以作为缓存层和消息代理。原创 2024-09-10 12:19:17 · 429 阅读 · 0 评论 -
【项目实战】Redis集群模式,是一种水平扩展解决方案,Redis 将数据按照哈希槽进行分区,每个槽都可以被分配到集群中的一个节点上
Redis 集群模式,是一种水平扩展解决方案。Redis 集群模式,旨在通过将数据分布在多个 Redis 节点上来提高 Redis 的可用性和容量。Redis 集群模式,Redis 将数据按照哈希槽进行分区,每个槽都可以被分配到集群中的一个节点上。Redis 集群模式,允许 Redis 在多个服务器之间分散读写负载,从而提高整体的吞吐量和可用性。原创 2024-09-10 12:19:06 · 83 阅读 · 0 评论 -
【项目实战】Redis使用场景之基于Redis实现分布式队列
分布式队列,指在分布式系统中用于协调不同服务或组件之间的消息传递和任务调度的队列。分布式队列,允许多个生产者将任务放入队列,而多个消费者可以从队列中取出任务进行处理。分布式队列,在微服务架构、任务调度、消息传递等场景中非常有用。原创 2024-09-10 12:18:40 · 269 阅读 · 0 评论 -
【异常】 Kafka提示异常CommitFailedException: Offset commit cannot be completed
在这个情况下,异常信息明确指出消费者不是活跃组的一部分,这通常意味着消费者已经被踢出了消费者组。:适当增加 session.timeout.ms 的值,以适应消费者的心跳间隔,确保消费者不会因为短暂的网络波动而被踢出组。如果消费者的组ID发生了变化,或者有新的消费者加入到同一个组中,原有的消费者可能会被踢出组。消费者与 Kafka 集群之间的网络问题可能导致消费者被认为是不可用的,从而被踢出消费者组。如果消费者由于某种原因重启或者重新加入消费者组,则可能暂时不属于活跃组成员。如果不一致,请统一组ID。原创 2024-09-09 12:41:17 · 186 阅读 · 0 评论 -
【项目实战】解决Kafka消费速度慢,缓解/解决Kafka消息积压的问题
Kafka消息积压的问题确实会影响系统的性能和业务的正常运作,尤其是在需要保证消息实时处理的场景下。通过以下措施,可以有效缓解甚至解决Kafka消息积压的问题,从而保障系统的稳定性和业务的连续性。原创 2024-09-09 12:41:02 · 911 阅读 · 0 评论 -
【异常】Kafka访问提示Request joining group due to: cached metadata has changed from
这个日志信息表示Kafka消费者客户端(consumer clientId=consumer-xxxGroup-8, groupId=xxxGroup)正在尝试加入消费者组,原因是缓存的元数据发生了变化。具体来说,原来的元数据中包含了多个主题及其分区信息,而新的元数据中只保留了一个主题(CLASS_BROWSE_NETEASE_OTHER)及其分区信息。在Kafka中,当你看到这样的日志信息时,它实际上是在描述消费者在重新平衡过程中的行为。原创 2024-09-09 12:40:17 · 206 阅读 · 0 评论 -
【项目实战】Marathon-LB的入门介绍
Marathon-LB,英文Load Balancer for Marathon。Marathon-LB,基于HAProxy构建。Marathon-LB,是一个基于HAProxy的代理服务器和负载均衡器。Marathon-LB,支持TCP、HTTP、HTTPS请求。Marathon-LB,官方地址:https://github.com/mesosphere/marathon-lbMarathon-LB,是一个为Apache Mesos和Marathon设计的负载均衡解决方案。原创 2024-08-01 22:34:37 · 144 阅读 · 0 评论 -
【项目实战】Kafka基本的命令行工具
Apache Kafka 不直接提供一个单一的命令来查看所谓的“生产者队列”和“消费者队列”,因为 Kafka 的架构并不包含传统意义上的生产者和消费者队列。相反,Kafka 维护着主题(topics),生产者向主题发送消息,而消费者订阅这些主题并消费消息。但是,你可以使用 Kafka 提供的命令行工具来检查主题的状态、消息和消费者的偏移量。Kafka 中并没有生产者队列的概念,生产者直接发送消息到主题分区。同样,消费者也没有自己的队列;消费者直接从主题分区中拉取消息。原创 2024-07-24 16:19:03 · 151 阅读 · 0 评论 -
【项目实战】分布式消息订阅分发 (消息队列Kafka)入门介绍
Kafka的架构包括以下组件:主题、生产者、消费者、服务代理自定义分区器需要实现接口,并在方法中定义分区逻辑。例如,可以根据消息的键(key)的哈希值或特定属性来确定分区。创建自定义分区器后,需要在Kafka生产者的配置中指定分区器类。原创 2024-07-20 09:46:20 · 242 阅读 · 0 评论 -
【项目实战】使用Spring Cache的@Cacheable和@CacheEvict组合注解,实现菜单内容的缓存和缓存失效
首先,你需要在你的配置中定义一个或多个缓存名称。在Spring Boot中,这通常是通过注解和配置缓存提供者(如Caffeine、EhCache、Redis等)来完成的。注意,如果应用是分布式的,确保选择了支持分布式缓存的缓存提供者,如Redis,并且确保缓存提供者已经正确配置并可用。原创 2024-06-20 15:21:22 · 442 阅读 · 0 评论 -
【项目实战】使用和管理Apache Kafka集群,Kafka配置中的各个参数及其作用
Kafka集群将记录流存储在称为Topic的类别中Kafka中,每条记录由键值(key-value)和一个时间戳组成。Kafka集群的使用和管理通常涉及对多个broker的协调和监控。对于Kafka集群的使用和管理,除了理解和配置这些参数外,还需要掌握如何启动和停止Kafka集群、如何创建和管理Topic、如何监控集群的性能和健康状况等。同时,由于Kafka是一个分布式系统,因此还需要考虑如何处理故障、如何进行数据备份和恢复等问题。原创 2024-05-18 15:09:44 · 60 阅读 · 0 评论 -
【项目实战】使用分布式协调服务Zookeeper实现分布式锁
Zookeeper分布式锁服务是一种基于Zookeeper的分布式锁实现。Zookeeper是一个分布式协调服务,提供分布式锁服务。利用Zookeeper的临时节点和Watcher机制来实现分布式锁。Zookeeper提供了一种高可用、强一致性的服务,适合用于构建分布式锁。原创 2024-05-14 20:24:47 · 97 阅读 · 0 评论 -
【项目实战】基于分布式缓存系统Redis的原子操作(如SETNX、GETSET等命令)以及Spring框架的RedisTemplate来实现分布式锁
分布式锁是一个在分布式系统中使用的锁机制,以确保在不同的进程或不同的机器上只有一个进程可以获得锁并执行特定任务。原创 2023-12-04 09:30:10 · 1381 阅读 · 0 评论 -
【项目实战】Redis使用场景之统计商城用户在线
为了实时了解用户的在线状态,系统设计了“心跳”机制。即用户在成功登录后,客户端会定期(例如每几分钟)向服务器发送一个简短的消息,这个消息被称为“心跳包”。心跳包的主要目的是告知服务器:“我还在活跃”。这种机制能够使服务器实时掌握哪些用户处于活动状态。定时请求心跳接口:在商城应用端,会有一个定时任务负责定期调用服务器提供的“心跳接口”。这个请求除了更新用户在线状态外,也可能携带其他必要的信息更新,确保用户会话的连续性和数据的时效性。通过这种方式,商城能够及时地根据用户在线状态调整资源分配、提供个性化推荐等。原创 2024-05-14 19:42:47 · 465 阅读 · 0 评论 -
【异常】RedisTimeoutException: Command execution timeout for command: (PING), params: [], Redis client:
你可以使用redis-cli或其他管理工具来检查Redis服务器的状态。你可以尝试增加Redisson客户端的超时时间,以便给更多的时间来完成与Redis服务器的通信。如果你的计算机或Redis服务器位于受限制的网络环境中,可能存在防火墙设置导致无法建立连接。如果你确定网络连接和Redis服务器状态都没有问题,那么可能是由于超时设置过短导致的。检查Redisson客户端和Redis服务器的日志,看是否有更多关于连接问题的信息。Redisson客户端的超时设置可能过短,不足以处理网络延迟或服务器处理时间。原创 2024-04-26 16:15:37 · 2686 阅读 · 0 评论 -
【异常】记一次因处理Kafka消息时,没有消费记录,错误处理器抛出了ArrayIndexOutOfBoundsException异常,导致无法事件入库的问题
在某次开发过程中,开发人员遇到了一个棘手的问题:Kafka无法将消息传递给消费者,导致事件无法入库。开发人员对Kafka的配置和代码进行了仔细的检查,但仍然无法解决问题。车机上报的业务数据,无法在Web管理页面中查看到,即业务事件上报失败。原创 2024-04-12 22:32:21 · 170 阅读 · 1 评论