NATS Go

云消息系统
授权协议 MIT
开发语言 Google Go
所属分类 服务器软件、 JMS/消息中间件
软件类型 开源软件
地区 不详
投 递 者 艾嘉石
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

NATS Go 是 NATS 的 Go 客户端。

安装:

# Go client
go get github.com/nats-io/nats
# Servers
# gnatsd
go get github.com/nats-io/gnatsd
# nats-server (Ruby)
gem install nats

基础编码使用

nc, _ := nats.Connect(nats.DefaultURL)
c, _ := nats.NewEncodedConn(nc, nats.JSON_ENCODER)
defer c.Close()
// Simple Publisher
c.Publish("foo", "Hello World")
// Simple Async Subscriber
c.Subscribe("foo", func(s string) {
    fmt.Printf("Received a message: %s\n", s)
})
// EncodedConn can Publish any raw Go type using the registered Encoder
type person struct {
     Name     string
     Address  string
     Age      int
}
// Go type Subscriber
c.Subscribe("hello", func(p *person) {
    fmt.Printf("Received a person: %+v\n", p)
})
me := &person{Name: "derek", Age: 22, Address: "585 Howard Street, San Francisco, CA"}
// Go type Publisher
c.Publish("hello", me)
// Unsubscribing
sub, err := c.Subscribe("foo", nil)
...
sub.Unsubscribe()
// Requests
var response string
err := nc.Request("help", "help me", &response, 10*time.Millisecond)
// Replying
c.Subscribe("help", func(subj, reply string, msg string) {
    c.Publish(reply, "I can help!")
})
// Close connection
c.Close();
  • 0x0 前言 最近项目开始使用nats作为消息中间件。 nats的引入确实解决项目很多痛点。 比如: 1)服务动态横向扩展 2)负载均衡(nats的均衡机制只有随机,不过对我们来说也够用了) 3)多服务之间方便快捷的消息通信   0x1 mynats是什么 mynats是对nats.go的一个包装。目的是方便快捷的注册消息回掉,并且支持同步handler和异步handler。 0x2 特性 * 免

  • 1.简介 NATS旨在满足当今和未来的分布式计算需求。NATS是为希望花费更多时间开发现代应用程序和服务而不必担心分布式通信系统的开发人员和运营商创建的简单安全的消息传递。 易于开发人员和操作员使用 高效能 始终可用 极轻巧 最多一次,最少一次交货 支持可观察和可扩展的服务以及事件/数据流 客户支持30多种不同的编程语言 Cloud Native,一个具有Kubernetes和Prometheus

  • NSQ NATS 持久化 支持,需要配置 nats-core 不支持,nats-stream(弃用)/jetstream支持 实时性 支持 支持 高性能 支持 支持 低资源消耗 支持 支持 功能:广播 支持 支持 可追踪 支持 不支持 分布式 支持 支持 功能:负载均衡 支持 支持 高可用 支持 支持 可伸缩 支持 支持 可靠性 非高可靠 高可靠 幂等性 不支持 不支持 顺序性 不支持 支持 集群

  • NATS客户端     一个NATS客户端是基于NATS服务端来说既可以是一个生产数据的也可以是消费数据的。生产数据的叫生产者英文为 publishers,消费数据的叫消费者英文为 subscribers,其中消费者既可以是同步的也可以是异步的。NATS客户端与NATS服务端是通过点对点的方式进行连接通信的,客户端是不需要知道彼此的位置就可以相互通信的。   目前Apcera也积极的为我们维护和提

 相关资料
  • 在我的Android应用程序中,我收到使用Firebase发送的消息,问题不是所有消息都到达,有时消息到达非常慢。 在我的服务器端,我跟踪我发送到FCM的消息,我总是收到成功:来自FCM的1个响应,仍然有我在Android应用程序中没有收到的消息。 我认为FCM消息日志在上面描述的情况下会有很大的帮助,但我不确定是否存在此选项。 有办法浏览Firebase消息日志吗?

  • YodaOS 中通过 YodaOS Message 完成对系统中的某个模块的定制化,本章节即是列出 YodaOS 中标准的消息接口,方便有需要的开发者对模块进行定制。 YodaOS Message 使用 yodaos-project/flora 作为 IPC 方式,它支持的数据结构包括: int float long double string binary 本章节描述中出现的number格式为i

  • 为什么?下面是处理消息的官方代码

  • Cocos Creator 3D 内有许多独立运行的的进程,这些进程间是相互隔离的。 所以在编辑器内需要与其他功能进行交互的时候,需要通过 "消息" 进行交互。 编辑器里的 "消息系统" 是 IPC(进程间通信)的功能扩展封装。这个系统承担起了整个编辑器内通讯交互的重担。 消息类型 消息交互分成了两种情况: 主动发送某条消息到某个功能(扩展) 某个功能(扩展)完成了一个操作后向所有人发送通知,告知

  • 我使用应用服务器通过Firebase Cloud Messaging发送消息。Firebase控制台不会列出由应用服务器发送的此类消息。当我使用Firebase控制台直接发送消息时,它会显示一些对其自身消息的分析。 问题是,当我使用应用服务器时,如何访问消息统计信息?

  • 我正在尝试用spring cloud stream实现spring cloud契约。我有一个使用StreamBridge的制作人 方法sendMessage()是从rest控制器调用的。 我的合同是这样的: 当我运行测试时,会调用triggerCreateOrganization()方法,并在日志中看到日志消息“生产组织到主题”。 我在生成的测试的基类上有@AutoConfigureMessage

  • FCM服务未向我的iOS应用程序发送消息。 > App CAN成功接收APNs令牌和实例ID令牌 App CAN使用推送通知实用程序利用. p8令牌在后台成功接收来自APN的推送 #2中使用的相同APNs密钥上传到Firebase控制台 应用程序无法接收Firebase控制台中Notification Composer发送的消息,也无法使用CURL请求接收消息。 应用程序在通过FCM发送时不显示任