在使用消息队列时防止消息重复消费是一个常见且关键的问题,尤其是在分布式系统中。以下是几种典型的解决方案,涵盖生产者、消费者和系统设计层面:
1. 生产者端:避免消息重复发送
(1)消息唯一标识(Message ID)
- 原理:为每条消息生成全局唯一ID(如UUID、雪花算法ID),并在发送前记录该ID。
2025年03月31日
在使用消息队列时防止消息重复消费是一个常见且关键的问题,尤其是在分布式系统中。以下是几种典型的解决方案,涵盖生产者、消费者和系统设计层面:
2025年03月31日
在现代分布式系统架构中,消息中间件扮演着至关重要的角色。而RabbitMQ作为其中翘楚,以其灵活的消息传递机制和高可靠性广受开发者青睐。今天,让我们以轻松幽默的方式,揭开RabbitMQ生产者消费者模式的神秘面纱。
2025年03月31日
节点亲和性,是Pod的一种属性(偏好或硬性要求),它使Pod被吸引到一类特定的节点
Taint 则相反,它使节点能够排斥一类特定的 Pod
2025年03月31日
SCDF指的是Spring Cloud Data Flow。
基于各种原因,团队的Kubernetes被加了限制,必须在特定的Node才可以部署。而之前没有指定,所以Spring Cloud Data Flow在跑Task时失败了,无法创建Pod。按照Spring官方文档配置也一直没用,后面查看源码、修改源码增加日志后终于解决了。
2025年03月31日
本地数据卷(Local Volume)代表一个本地存储设备,比如磁盘、分区或者目录等。主要的应用场景包括分布式存储和数据库等需要高性能和高可靠性的环境里。本地数据卷同时支持块设备和文件系统,通过 spec.local.path 指定;但对于文件系统来说,kubernetes 并不会限制该目录可以使用的存储空间大小。本地数据卷只能以静态创建的PV使用。相对于HostPath,本地数据卷可以直接以持久化的方式使用(它总是通过NodeAffinity调度在某个指定的节点上)。
2025年03月31日
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: itlanson-ingress
namespace: default
spec:
rules:
- host: itlanson.com
http:
paths:
- path: /
pathType: Prefix
backend: ## 指定需要响应的后端服务
service:
name: my-nginx-svc ## kubernetes集群的svc名称
port:
number: 80 ## service的端口号