17、微服务通信与存储:NATS消息队列与Kubernetes存储模型详解

微服务通信与存储: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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值