码迷,mamicode.com
首页 > 其他好文 > 详细

万精油NATS在Micro中的应用

时间:2018-11-15 18:36:00      阅读:1042      评论:0      收藏:0      [点我收藏+]

标签:news   技术   异步通信   返回结果   一段   订阅   信息   随机   好用   

NATS是一个Golang技术栈的MQ服务,类似NSQ,但NATS更轻量级、性能更好、不支持离线、支持同步/异步通信模型,非常好用。

NATS在MICRO中有哪些应用

  • Transport

笔者以前开发后台服务时,直接使用NATS替换RPC实现多机部署、伪负载均衡,Micro也支持NATS作为Transport:

    transport := nats.NewTransport()
    service := micro.NewService(
        micro.Name("go.micro.srv.microsrv"),
        micro.Version("latest"),
        micro.Transport(transport),
    )
  • Broker

NATS本身就是MQ服务,NATS支持PUB/SUB,Request/Reply,Queueing三种通信模型,而Micro只需要其PUB/SUB模型。

    broker := nats.NewBroker()
    service := micro.NewService(
        micro.Name("go.micro.srv.microsrv"),
        micro.Version("latest"),
        micro.Broker(broker),
    )
  • Registry

是的,你没有看错,有NATS这种MQ来实现服务发行,根据官方文档,NATS来当Registry还工作的很好。Micro的实现原理大致是:
订阅应答主题/广播查询主题(携带应答主题)/收到应答后,超时取消订阅/根据应答(比如时延)返回结果。

优点:每次从服务实例而不是注册中心获取到服务的信息,实时性高,可以根据某些指标选择最优的服务。

缺点:时延长了一点,CLI-NATX-SRV,比传统注册中心(CLI-REGISTRY)多了一段。

其实,NATS的QUEUEING通信模型也可以实习,但是是随机的,效果应该不会很好。

万精油NATS在Micro中的应用

标签:news   技术   异步通信   返回结果   一段   订阅   信息   随机   好用   

原文地址:https://www.cnblogs.com/cqvoip/p/9964804.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!