NATS发布/订阅机制 【消息中间件】

3 篇文章 0 订阅
1 篇文章 0 订阅

NATS的作用

NATS消息传递支持在计算机应用程序和服务之间交换分段为消息的数据。这些消息由主题解决,不依赖于网络位置。这在应用程序或服务与底层物理网络之间提供了一个抽象层。数据被编码并构成消息并由发布者发送。该消息由一个或多个订户接收,解码和处理。

NATS通过其核心通信机制,发布和订阅支持这种模式。对具有回复主题的给定主题发布请求,并且响应者听取该主题并将回复发送给回复主题。

客户端通常通过单个URL连接到NATS系统,然后订阅或发布消息给主题。

NATS核心提供最多一次的服务质量。如果订户没有收听主题(没有主题匹配),或者在发送消息时未激活,则不会收到消息。

从根本上说,NATS是关于发布和收听消息的。这两者都严重依赖于将消息范围限定为流或主题的主题。最简单的是,主题只是一串字符,形成了发布者和订阅者可以用来互相查找的名称。

 

客户端连接到gnatsd(NATS服务器),并与gnatsd进行通信,


NATS的使用

1. 在本地环境安装并运行NATS Streaming服务器(nats-streaming-server)

% brew install nats-streaming-server // 安装
% nats-streaming-server // 启动,默认端口是4222

连接成功的打印如下:

 2. nats包含了多语言的客户端, 在C#客户端配置如下

3. 前端,angular框架安装signalR库与后端进行双向通讯。

如上图所示,后端的NatsPublish()方法通过url连接了nats server,在前端可通过signalR的invoke()调用NatsPublish()方法,即:

async publishNATS(subject: string, content: string, isJsonParse: boolean) {
    let toSend = isJsonParse ? content : JSON.parse(content);
    await this.debugSignalRService.debugSignalRConnection.invoke(
      'NatsPublish',
      subject,
      toSend
    );
  }

首先要先订阅,先订阅的发布才有意义。

NATS将publish/subscribe消息分发模型实现为一对多通信,发布者在Subject上发送消息,并且监听该Subject在任何活动的订阅者都会收到该消息.

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值