微服务通信与存储:NATS消息队列与Kubernetes存储模型详解
1. 通过消息队列发送和接收事件
新闻服务需要为每个用户存储链接事件,链接服务知晓不同用户添加、更新或删除链接的时间。若采用为新闻服务添加API,让链接服务调用该API并通知新闻服务的方式,会导致链接服务与新闻服务之间的紧密耦合。而采用松散耦合的解决方案,链接服务将事件发送到通用消息队列服务,新闻服务独立订阅该消息队列的消息,具有以下好处:
- 无需更复杂的服务代码。
- 完美契合事件通知的交互模型。
- 无需更改代码即可轻松为同一事件添加额外的监听器。
Delinkcious使用NATS消息系统实现服务间的松散耦合通信。
2. 什么是NATS
NATS(https://nats.io/)是一个开源消息队列服务,是云原生计算基金会(CNCF)的项目,用Go语言实现,在Kubernetes中需要消息队列时是首选之一。NATS支持多种消息传递模型,如:
- 发布 - 订阅
- 请求 - 回复
- 排队
NATS非常通用,可用于多种用例,还能在高可用集群中运行。对于Delinkcious,我们将使用发布 - 订阅模型,其消息传递模型如下:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(Publisher):::process -->|Publish Message| B(Message Queue):::pr
超级会员免费看
订阅专栏 解锁全文
913

被折叠的 条评论
为什么被折叠?



