NATS 开发者文档

本文档介绍了如何使用NATS进行分布式应用开发,涵盖了连接NATS服务器的多种方式,包括连接到默认服务器、特定服务器及集群,以及设置连接超时、自动重新连接等选项。此外,还详细阐述了NATS的认证机制,如使用用户和密码、令牌以及NKeys进行身份验证,并讨论了使用TLS加密连接的方法和注意事项。
摘要由CSDN通过智能技术生成

介绍

使用NATS进行开发是分布式应用程序技术,常见的NATS功能和特定于库的语法的结合。除了使用本书作为指导之外,某些库还包含其API语言熟悉的格式。例如,Go库具有godoc,而Java库具有javadoc。

Library Doc Link
nats.go godoc
nats.java javadoc
nats.net doxygen
nats.rb yard
nats.ts ts-doc

并非所有库都包含此单独的文档,具体取决于语言社区,但是请确保查阅客户端库README文件以了解更多信息。

连接中

NATS系统通常由带有natstls协议的标准URL标识,例如nats://demo.nats.io。NATS系统可以是单个服务器,小型集群或全局超级集群。在所有这些示例中,我们将依赖于 nats.io提供的单个测试服务器,该服务器位于nats://demo.nats.io4222是NATS的默认端口。
NATS还支持通过tls协议使用TLS的安全连接。大多数客户端都支持使用URL协议tls自动检测安全连接。 tls://demo.nats.io:4443上还有一个运行TLS的演示服务器。 对于许多客户端库,该协议要求已成为可选要求,因此您可以使用demo.nats.io:4222作为URL,并让客户端和服务器确定是否需要TLS。
NATS连接有很多选项,从超时到重新连接设置。

连接到默认服务器

一些库还提供了一种特殊的方法来连接到默认 URL,通常是: nats://localhost:4222

nc, err := nats.Connect(nats.DefaultURL)\
if err != nil {
    log.Fatal(err)
}
defer nc.Close()

// Do something with the connection

连接到特定服务器

NATS客户端库可以采用完整的URL nats://demo.nats.io:4222,以指定要连接的特定服务器主机和端口。
库正在删除对显式协议的要求,并且可能允许demo.nats.io:4222或仅允许demo.nats.io。 在后面的示例中,将使用默认端口4222。 请查阅您特定的客户端库的文档,以了解支持哪些URL格式。
例如,要使用URL连接到演示服务器,可以使用:

// If connecting to the default port, the URL can be simplified
// to just the hostname/IP.
// That is, the connect below is equivalent to:
// nats.Connect("nats://demo.nats.io:4222")
nc, err := nats.Connect("demo.nats.io")
if err != nil {
    log.Fatal(err)
}
defer nc.Close()

// Do something with the connectioConnection nc = Nats.connect("nats://demo.nats.io:4222");

连接到集群

连接到集群时,需要考虑一些事项。
-为每个集群成员传递URL(半可选)
-连接算法
-重新连接算法(稍后讨论)
-服务器提供的URL
客户端库首次尝试连接时,它将使用提供给连接选项或功能的URL列表。通常以随机顺序检查这些URL,以确保没有每个客户端都连接到同一服务器。使用第一个成功的连接。可以明确禁用随机化。
客户端连接到服务器后,服务器可以提供其他已知服务器的URL列表。这样,客户端可以连接到一台服务器,并且在重新连接期间仍然可以使用其他服务器。
为了确保初始连接,您的代码应包括合理的前线服务器或种子服务器列表。这些服务器可能知道群集的其他成员,并且可能将这些成员告诉客户端。但是您不必配置客户端以在connect方法中传递集群的每个有效成员。
通过提供传递多个连接选项的功能,NATS可以处理计算机宕机或客户端不可用的可能性。通过增加服务器向客户端提供已知服务器列表的功能,作为客户端服务器协议的一部分,群集创建的网格可以在客户端运行时自然地增长和变化。
注意,失败行为取决于库,请查看客户端库的文档以获取有关如果连接失败会发生的情况的信息。

servers := []string{"nats://127.0.0.1:1222", "nats://127.0.0.1:1223", "nats://127.0.0.1:1224"}

nc, err := nats.Connect(strings.Join(servers, ","))
if er
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值