
005 - 中间件
文章平均质量分 74
在后台开发中,中间件扮演着至关重要的角色,它们位于应用程序和基础设施之间,为分布式系统或组件的通信、集成和管理提供标准化和可重用的基础设施。中间件能够充当不同软件组件之间的中介,使它们能够以无缝和高效的方式进行交互和数据交换。
本本本添哥
奶爸的编程之路,也就一周冷个三天~
专门分享AI大模型/Java微服务/计算机软考/项目管理/个人成长/思维框架/效能工具等相关内容
欢迎关注我的公众号:本本本添哥
展开
-
【异常】UnsatisfiedDependencyException: Unable to connect to Redis server: localhost/127.0.0.1:6379
该报错信息显示Spring Boot应用无法连接到Redis服务器,导致UnsatisfiedDependencyException。主要原因是Redis连接配置错误或依赖注入冲突。具体表现为无法连接到localhost:6379,可能是Redis服务器未运行、配置错误或网络问题。解决方案包括:检查并修正Redis连接配置,确保application.properties中的Redis地址、端口和密码正确;解决依赖注入冲突,通过@Primary注解或排除多余依赖;验证Redis服务状态,确保服务正常运行;检原创 2025-05-09 17:47:35 · 25 阅读 · 0 评论 -
【项目实战】Python并行和分布式计算中常用的库(Ray/Spark/Dask/MPI4py/Joblib/Celery/RabbitMQ/Kafka - python/ZeroMQ/Pyro4)
原创 2025-05-07 10:33:26 · 106 阅读 · 0 评论 -
【异常】程序尝试连接本地的 Redis 服务提示异常Connection refused: getsockopt: localhost/127.0.0.1:6379
错误通常是由于服务未启动、配置错误、防火墙限制或连接数达到上限等原因导致的。程序尝试连接本地的 Redis 服务(Redis 默认端口是 6379),但连接被拒绝了。本实例是因为本机没有redis服务,redi是运维同事搭建的远程的redis服务。配置项来增加最大连接数,然后重启 Redis 服务。若配置有变更,需重启 Redis 服务使配置生效。若当前连接数接近或达到最大连接数,可通过修改。原创 2025-04-28 09:40:21 · 92 阅读 · 0 评论 -
【项目实战】kafka-python 是 Apache Kafka 分布式流处理系统的纯 Python 客户端,设计上借鉴了官方 Java 客户端的特性,同时融入了 Python 特有的接口。
kafka-python 是 Apache Kafka 分布式流处理系统的纯 Python 客户端,设计上借鉴了官方 Java 客户端的特性,同时融入了 Python 特有的接口(如消费者迭代器)。kafka-python 是入门 Kafka 的便捷工具,尤其适合 Python 开发者快速实现基础消息队列功能。但在生产环境中,若需高性能或复杂特性(如事务支持),应优先考虑。原创 2025-04-09 14:44:53 · 115 阅读 · 0 评论 -
【项目实战】ElasticJob 是一个分布式任务调度框架,旨在解决分布式环境下定时任务的协调、分片和高可用性问题。
ElasticJob 是一个分布式任务调度框架,旨在解决分布式环境下定时任务的协调、分片和高可用性问题。ElasticJob 通过分片机制、注册中心协调和弹性扩缩容,实现了分布式定时任务的高效调度与高可用性。其结合 Quartz 的定时触发能力与 ZooKeeper 的分布式协调,适用于需要水平扩展、容错及复杂任务管理的场景,是微服务架构中任务调度的优选方案。原创 2025-04-09 10:19:33 · 27 阅读 · 0 评论 -
【项目实战】以 Spring Boot 框架为例,用 Java 语言来实现自定义切面方法,只要方法体内引入删除 Redis 值的注释,就执行 Redis 的删除动作。
下面以 Spring Boot 框架为例,用 Java 语言来实现自定义切面方法,只要方法体内引入删除 Redis 值的注释,就执行 Redis 的删除动作。原创 2025-04-08 09:42:09 · 22 阅读 · 0 评论 -
【项目实战】在Python中使用pika库操作RabbitMQ,pika库是Python中实现AMQP协议的轻量级客户端,官方推荐使用。
在Python中使用pika库操作RabbitMQ的详细指南 ,通过以下步骤和示例,开发者可以快速上手使用pika库实现RabbitMQ的基本功能,并根据需求扩展高级特性。原创 2025-04-07 14:11:08 · 53 阅读 · 0 评论 -
【项目实战】在ZK中使用命令行查看注册到上面的Dubbo服务
在Zookeeper中查看注册到上面的Dubbo服务,可以通过Zookeeper的命令行客户端或者使用zkCli.sh脚本。Zookeeper作为Dubbo的服务注册中心,保存了服务提供者和消费者的信息。原创 2025-03-25 10:22:40 · 189 阅读 · 0 评论 -
【项目实战】消息队列RabbitMQ,是一个开源的消息队列系统,广泛应用于异步处理、解耦和流量削峰等场景。
AMQP(高级消息队列协议)是一种应用层协议,用于实现消息的可靠传递。它是一个开放标准,定义了消息传递的通信框架和机制。RabbitMQ是基于AMQP协议实现的消息队列系统,支持多种消息路由模式,如直接交换、主题交换和扇出交换等。AMQP协议还支持多种消息队列协议,如STOMP、MQTT等,并且可以通过插件扩展功能。原创 2025-03-25 10:15:46 · 35 阅读 · 0 评论 -
【项目实战】分布式定时任务Quartz,是一个功能强大且灵活的任务调度框架,适用于从简单到复杂的企业级应用。
Quartz 是一个功能强大的任务调度框架,广泛应用于企业级应用中。Quartz 是一个功能强大且灵活的任务调度框架,适用于从简单到复杂的企业级应用。通过合理配置和使用其核心组件(如 Job、Trigger 和 Scheduler),可以实现高效的任务调度和管理。原创 2025-03-25 10:14:07 · 371 阅读 · 0 评论 -
【项目实战】Redis常见问题之缓存击穿、缓存穿透、缓存雪崩
Redis作为一款流行的内存数据存储系统,经常被用作缓存来提高应用的性能。然而,在使用Redis作为缓存时,可能会遇到一些问题,如缓存击穿、缓存穿透和缓存雪崩。这些问题可能导致系统性能下降甚至服务不可用。下面是对这三种常见问题的简要解释及解决方案,每种方案都有其适用场景与限制条件,在实际应用中需要根据具体情况选择最合适的方法来优化系统性能并保障稳定性。此外,合理的架构设计以及对业务逻辑的理解也是有效预防这些问题的关键因素之一。原创 2025-03-19 10:26:15 · 168 阅读 · 0 评论 -
【项目实战】SpringBoot项目中集成Kafka需要完成依赖引入、配置设置、生产消费逻辑实现等步骤,覆盖从基础配置到高级特性的完整流程。
在SpringBoot项目中集成Kafka需要完成依赖引入、配置设置、生产消费逻辑实现等步骤,以下是详细说明及常规配置,通过以下步骤,可实现SpringBoot与Kafka的高效集成,覆盖从基础配置到高级特性的完整流程。中配置Kafka参数,所有配置需置于。依赖以支持嵌入式Kafka。指向嵌入式Broker地址。原创 2025-03-19 09:48:58 · 40 阅读 · 0 评论 -
【项目实战】ConcurrentKafkaListenerContainerFactory 是 Spring Kafka 中用于创建并发消息监听容器的核心配置类,用于支持多线程消费 Kafka 消息.
是 Spring Kafka 中用于创建并发消息监听容器的核心配置类,主要用于支持多线程消费 Kafka 消息。是 Spring Kafka 中实现高效、可定制化消息消费的核心工具,通过合理配置并发度、错误处理、消息转换等参数,可适应从简单单条消费到复杂批量处理的各种场景。原创 2025-03-19 09:45:02 · 102 阅读 · 0 评论 -
【项目实战】分布式定时任务框架XXL-JOB核心源码分析 - 集群管理,通过中心化调度、动态注册/心跳机制、灵活路由策略等设计,实现了高可用、弹性扩展的分布式任务调度能力。
集群管理:XXL-JOB设计为在分布式集群环境中运行见xxl-job-admin模块中的XxlJobClusterScheduler类开始查看,该类负责管理集群。原创 2025-03-11 16:09:52 · 281 阅读 · 0 评论 -
【项目实战】分布式消息订阅分发 (消息队列Kafka)消息保留时长(Message Retention Time)Kafka中一个重要的配置参数,它决定了消息在Kafka主题中可以存在的最长时间。
Kafka消息保留时长(Message Retention Time)是Kafka中一个重要的配置参数,它决定了消息在Kafka主题中可以存在的最长时间。一旦消息的年龄超过了这个设定的时间,无论是否已经被消费者消费,Kafka都会自动删除这些消息以释放存储空间。消息保留时长的单位通常是毫秒,但通常我们会以分钟或小时来设置。原创 2025-03-09 10:38:38 · 53 阅读 · 0 评论 -
【好物推荐】KafkaUI-lite ,是一款轻量级开源的 Kafka 管理工具,支持对 Kafka 集群、Zookeeper 和 Redis 的图形化操作。
史上最轻便好用的kafka ui界面客户端工具,可以在生产消息、消费消息、管理topic、管理group;可以支持管理多个kafka集群部署简便,可以一键启动,不需要配置数据库、不需要搭建web容器支持zookeeper ui界面化操作;支持多环境管理支持redis ui界面化操作;支持多环境管理支持权限控制,可以自定义不同环境的新增、修改、删除权限;默认分配只读权限,避免用户的误操作。原创 2025-03-05 10:26:01 · 189 阅读 · 0 评论 -
【异常】Kafka 的重新平衡机制,会导致频繁出现“Adding newly assigned partitions”的情况
Kafka 的重新平衡(Rebalance)机制是 Kafka 消费者组(Consumer Group)的一项核心特性。Kafka 的重新平衡(Rebalance)机制确保了在消费者组内的所有活动成员之间公平地分配订阅主题的分区。Kafka 的重新平衡(Rebalance)机制是 Kafka 的一种机制,用于在消费者组内的成员之间分配分区。每当消费者组内发生成员加入、离开或订阅的主题分区发生变化时,就会触发一次重新平衡操作。原创 2024-12-31 13:00:46 · 266 阅读 · 0 评论 -
【项目实战】Kafka的常见问题
Kafka作为一个分布式流处理平台,确实存在一些常见问题,包括重复消息、数据丢失、集群管理等问题。。原创 2024-11-04 22:14:11 · 342 阅读 · 0 评论 -
【项目实战】Kafka的auto.offset.reset消费规则,消费者应该从哪里开始读取消息(默认earliest )。
Apache Kafka 是一个分布式流处理平台,广泛用于构建实时数据管道和流应用。在 Kafka 中,消费者通过订阅主题(topics)来消费消息。每个消费者属于一个消费者组(consumer group),并且每个分区(partition)只能被同一个消费者组中的一个消费者读取。当消费者开始消费一个主题时,它需要确定从哪个位置开始读取消息。配置项就是用来定义当没有初始偏移量(offset)或者当前偏移量不再存在时(例如,数据已被删除),消费者应该从哪里开始读取消息。正确配置。原创 2024-11-01 12:54:13 · 195 阅读 · 0 评论 -
【项目实战】分布式定时任务Elastic-job ,由两个相互独立的子项目 Elastic-Job-Lite 和 Elastic-Job-Cloud 组成。
Elastic-Job 支持作业分片,这意味着可以将一个大任务分解成多个小任务,并在不同的节点上并行执行这些小任务。每个节点处理一部分数据,从而实现负载均衡和高效率的数据处理。Elastic-Job 提供了事件追踪机制,可以帮助你监控作业的生命周期事件,如作业启动、完成、失败等。你可以通过注册来获取这些事件通知。Elastic-Job 作业可以通过多种方式触发,包括定时(Cron 表达式)、API 调用或手动触发。作业可以是简单的单次执行的任务,也可以是需要周期性执行的任务。原创 2024-10-29 23:31:17 · 61 阅读 · 0 评论 -
【项目实战】分布式日志搜索系统之数据同步CDC方案(Logstash-input-jdbc、go-mysql-elasticsearch、Elasticsearch-jdbc、NiFi、Canal)
在构建分布式日志搜索系统时,数据同步是一个核心环节。原创 2024-10-29 09:12:18 · 176 阅读 · 0 评论 -
【项目实战】消息队列RocketMQ入门介绍
RocketMQ是一个分布式消息中间件,广泛应用于互联网、金融等领域,以实现应用之间的解耦、异步通信以及削峰填谷等作用。原创 2024-10-29 09:12:08 · 56 阅读 · 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 · 431 阅读 · 0 评论 -
【项目实战】常用的消息队列(如 RabbitMQ, Apache Kafka, RocketMQ, ActiveMQ,NATS 等)的对比
RabbitMQ:适合需要灵活路由和多种协议支持的应用。:适合大数据流处理和日志收集。RocketMQ:适合大规模分布式系统,特别是需要高吞吐量和可靠性的场景。ActiveMQ:适合中小型项目,需要简单易用的消息队列。NATS:适合高性能、低延迟的应用场景,特别是微服务架构中的快速通信。选择合适的消息队列取决于具体的应用需求,包括性能要求、可靠性、功能需求以及运维复杂度等因素。原创 2024-10-28 23:33:24 · 135 阅读 · 0 评论 -
【项目实战】分布式存储之FastDFS入门介绍
FastDFS (Fast Distributed File System) 是一个开源的轻量级分布式文件系统,主要用于解决大容量存储和高负载访问的问题。它特别适合存储大量的小文件(如图片、文档等),支持高并发访问,并具有良好的扩展性。原创 2024-10-26 15:37:33 · 78 阅读 · 0 评论 -
【项目实战】分布式注册中心之注册中心实现方案(Redis)
分布式注册中心是一种服务发现机制,它为分布式系统中的服务提供了一个动态的服务目录。服务可以注册到这个中心,并且客户端可以通过查询该中心来获取可用服务实例的信息。Redis 是一种高性能的键值存储系统,它可以用来作为轻量级的分布式注册中心。原创 2024-10-26 15:30:19 · 129 阅读 · 0 评论 -
【项目实战】利用Zookeeper实现分布式定时任务
路径/tasks内容每个任务作为一个子节点,例如。每个任务节点下可以包含以下属性:name(字符串):任务的名称。(字符串):Cron 表达式,用于定义任务的执行时间。command(字符串):要执行的任务命令或脚本。status(字符串):任务的状态,如 “ACTIVE”, “PAUSED”, “DELETED” 等。(长整型):下次运行的时间戳。(长整型):上次运行的时间戳。result(字符串):最近一次运行的结果。原创 2024-10-26 08:27:08 · 163 阅读 · 0 评论 -
【项目实战】基于Zookeeper 使用Python手写模拟一个分布式定时任务中间件
为了手写一个基于 Zookeeper 的分布式定时任务中间件,我们需要实现几个关键组件:调度器、Worker 节点和 Zookeeper 存储模型。以下是一个简化的 Python 示例,使用 库来与 Zookeeper 交互。首先,确保你已经安装了 库:二、 Zookeeper 存储模型设计我们将使用之前提到的存储结构:2. 任务定义3. 调度器4. Worker 节点5. 监控和日志你可以添加更多的监控和日志功能来跟踪任务的状态和执行情况。例如,可以使用 Watcher 来监听任原创 2024-10-26 08:25:55 · 40 阅读 · 0 评论 -
【项目实战】分布式注册中心之注册中心实现方案(Zookeeper)
Apache Zookeeper 是一个开源的分布式协调服务,它提供了一个高可用性的集中化配置管理、命名服务、分布式同步和组服务。Zookeeper 提供了一个简单的原语集来构建更复杂的协调数据结构和服务。原创 2024-10-26 08:16:01 · 47 阅读 · 0 评论 -
【项目实战】配置中心实现方案之Zookeeper作为分布式配置中心
Zookeeper 是一个开源的分布式应用程序协调服务,由 Apache 软件基金会开发。它提供了一套简单的原语集,这些原语可以被用来实现更复杂的分布式协调功能,比如配置管理、命名服务、分布式锁等。当用作分布式配置中心时,Zookeeper 可以存储和管理应用的配置信息,并且能够在配置发生变化时通知到所有相关的客户端。原创 2024-10-26 08:10:57 · 37 阅读 · 0 评论 -
【项目实战】Redis持久化 - 技术概览,通过两种方式实现:RDB定期快照(Redis Database Backup)和AOF事务日志(Append Only File)
Redis,是一种开源的键值存储系统。Redis,支持多种数据结构,如字符串、哈希表、列表、集合等。Redis持久化,指将Redis中的数据保存到磁盘上的过程。Redis持久化,目的是防止数据丢失。Redis持久化,通过两种方式实现:定期快照(RDB)和事务日志(AOF)原创 2024-09-10 12:19:29 · 90 阅读 · 0 评论 -
【项目实战】Redis(REmote DIctionary Server),不仅可以用作数据库,也可以作为缓存层和消息代理
Redis,是一个开源的键值存储系统。Redis,以其高性能、低延迟的特点著称。Redis,支持多种数据结构如字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets),以及地理空间索引(geospatial indexes)。Redis,不仅可以用作数据库,也可以作为缓存层和消息代理。原创 2024-09-10 12:19:17 · 444 阅读 · 0 评论 -
【项目实战】Redis集群模式,是一种水平扩展解决方案,Redis 将数据按照哈希槽进行分区,每个槽都可以被分配到集群中的一个节点上
Redis 集群模式,是一种水平扩展解决方案。Redis 集群模式,旨在通过将数据分布在多个 Redis 节点上来提高 Redis 的可用性和容量。Redis 集群模式,Redis 将数据按照哈希槽进行分区,每个槽都可以被分配到集群中的一个节点上。Redis 集群模式,允许 Redis 在多个服务器之间分散读写负载,从而提高整体的吞吐量和可用性。原创 2024-09-10 12:19:06 · 100 阅读 · 0 评论 -
【项目实战】Redis使用场景之基于Redis实现分布式队列
分布式队列,指在分布式系统中用于协调不同服务或组件之间的消息传递和任务调度的队列。分布式队列,允许多个生产者将任务放入队列,而多个消费者可以从队列中取出任务进行处理。分布式队列,在微服务架构、任务调度、消息传递等场景中非常有用。原创 2024-09-10 12:18:40 · 291 阅读 · 0 评论 -
【异常】 Kafka提示异常CommitFailedException: Offset commit cannot be completed
在这个情况下,异常信息明确指出消费者不是活跃组的一部分,这通常意味着消费者已经被踢出了消费者组。:适当增加 session.timeout.ms 的值,以适应消费者的心跳间隔,确保消费者不会因为短暂的网络波动而被踢出组。如果消费者的组ID发生了变化,或者有新的消费者加入到同一个组中,原有的消费者可能会被踢出组。消费者与 Kafka 集群之间的网络问题可能导致消费者被认为是不可用的,从而被踢出消费者组。如果消费者由于某种原因重启或者重新加入消费者组,则可能暂时不属于活跃组成员。如果不一致,请统一组ID。原创 2024-09-09 12:41:17 · 209 阅读 · 0 评论 -
【项目实战】解决Kafka消费速度慢,缓解/解决Kafka消息积压的问题
Kafka消息积压的问题确实会影响系统的性能和业务的正常运作,尤其是在需要保证消息实时处理的场景下。通过以下措施,可以有效缓解甚至解决Kafka消息积压的问题,从而保障系统的稳定性和业务的连续性。原创 2024-09-09 12:41:02 · 1036 阅读 · 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 · 237 阅读 · 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 · 164 阅读 · 0 评论 -
【项目实战】Kafka基本的命令行工具
Apache Kafka 不直接提供一个单一的命令来查看所谓的“生产者队列”和“消费者队列”,因为 Kafka 的架构并不包含传统意义上的生产者和消费者队列。相反,Kafka 维护着主题(topics),生产者向主题发送消息,而消费者订阅这些主题并消费消息。但是,你可以使用 Kafka 提供的命令行工具来检查主题的状态、消息和消费者的偏移量。Kafka 中并没有生产者队列的概念,生产者直接发送消息到主题分区。同样,消费者也没有自己的队列;消费者直接从主题分区中拉取消息。原创 2024-07-24 16:19:03 · 164 阅读 · 0 评论 -
【项目实战】分布式消息订阅分发 (消息队列Kafka)入门介绍
Kafka的架构包括以下组件:主题、生产者、消费者、服务代理自定义分区器需要实现接口,并在方法中定义分区逻辑。例如,可以根据消息的键(key)的哈希值或特定属性来确定分区。创建自定义分区器后,需要在Kafka生产者的配置中指定分区器类。原创 2024-07-20 09:46:20 · 264 阅读 · 0 评论