2 丁玲隆咚呛

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 28w+

NATS中文开发文档:监控连接

管理与服务器的交互主要是客户机库的工作,但大多数库也提供了一些对幕后发生的事情的了解。例如,客户端库可以提供一种机制来获取连接的当前状态:nc, err := nats.Connect("demo.nats.io", nats.Name("API Example"))if err != nil { log.Fatal(err)}defer nc.Close()getStatu...

2020-03-29 15:54:26

NATS中文开发文档:发送消息

NATS使用包含目标主题、可选回复主题和字节数组的协议发送和接收消息。有些库可以提供帮助程序来将其他数据格式转换为字节或从字节转换为字节,但是NATS服务器将把所有消息视为不透明的字节数组。所有的NATS客户机都是为了简化消息的发送。例如,要将字符串“All is Well”作为UTF-8字节字符串发送到“updates”主题,您需要执行以下操作:nc, err := nats.Connect...

2020-03-29 15:27:16

NATS中文开发文档:接收消息

通常,应用程序可以异步或同步接收消息。使用NAT接收消息依赖于库的实现。一些语言,如Go或Java,提供同步和异步api,而另一些语言可能只支持一种类型的订阅。在所有情况下,订阅过程包括让客户端库告诉NATS系统应用程序对某个特定主题感兴趣。当应用程序完成订阅时,它会取消订阅,告诉服务器停止发送消息。客户端将为每个匹配的订阅接收一条消息,因此,如果连接具有使用相同或重叠主题(例如foo和&g...

2020-03-29 11:06:00

NATS中文开发文档:自动重连

出于任何原因断开连接,大多数(如果不是全部)客户端库将重新连接到NATS系统。重新连接逻辑可能因库而异,因此请查看客户端库的文档。通常,客户机将尝试通过connect调用中提供的url或NATS系统在早期连接期间提供的url,重新连接到它所知道的服务器。此功能允许NATS应用程序和NATS系统本身进行自我修复和重新配置,而无需其他配置或干预。该库可以有几个选项来帮助控制重新连接行为、通知重新连接...

2020-03-28 22:41:47

NATS中文开发文档:连接

NATS系统通常由一个带有nats或tls协议的标准URL标识,例如nats://demo.nats.io。NATS系统可以是单个服务器、小型集群或全局超级集群。在这些示例中,我们将依赖nats.io提供的单个测试服务器,位于nats://demo.nats.io,使用4222作为默认端口。NATS还支持通过TLS协议使用安全连接。大多数客户端支持使用URL协议tls自动检测安全连接。在tls:...

2020-03-28 16:49:17

NATS中文文档:序列号

一对多消息的一个常见问题是,由于网络故障,消息可能丢失或丢弃。解决这种情况的一个简单模式是在消息中包含序列id。接收者可以检查序列id以查看是否遗漏了任何内容。在没有新数据的情况下,序列号与心跳信号结合,形成了一个强大而有弹性的模式来检测丢失。存储和持久化消息的系统也可以解决这个问题,但有时会对手头的问题造成过大的破坏,并且通常会导致额外的管理和操作成本。为了真正利用序列id,需要记住以下几点:...

2020-03-26 12:24:57

NATS中文文档:消息回复

在一个最多只有一次语义的系统中,有时会丢失消息。如果您的应用程序正在执行请求-答复,它应该使用超时来处理任何网络或应用程序故障。对请求设置超时并使用处理超时的代码总是一个好主意。发布事件或数据流时,确保消息传递的一种方法是将其转换为带有确认消息(ACKs)概念的请求-答复。在NATS中,ACK可以是一个空消息,一个没有有效负载的消息。因为ACK可以是空的,它可以占用很少的网络带宽,但是ACK的思...

2020-03-26 12:23:48

NATS中文文档:队列组

NATS提供了一个内置的负载平衡特性,称为分发队列。使用队列订阅服务器将在一组订阅服务器之间平衡消息传递,这些订阅服务器可用于提供应用程序容错和扩展工作负载。若要创建队列订阅,订阅服务器将注册队列名称。具有相同队列名称的所有订阅服务器构成队列组。这不需要配置。在发布注册主题的消息时,将随机选择组中的一个成员来接收消息。尽管队列组有多个订阅服务器,但每个消息仅由一个使用。队列组名称遵循与主题相同...

2020-03-26 12:21:53

NATS中文文档:请求与应答

请求-应答是现代分布式系统中常见的一种模式。一个请求被发送,应用程序要么等待具有特定超时的响应,要么异步接收响应。现代系统日益复杂,要求具有位置透明、上下缩放、可观测性等特性。许多技术需要额外的组件、sidecars模式和代理来完成完整的功能集。NATS以其核心通信机制publish和subscribe支持这种模式。一个请求被发布到一个给定的主题上,并带有一个应答主题,响应者监听该主题并将响应发...

2020-03-26 12:21:26

NATS中文文档:发布与订阅

NATS实现了一个一对多通信的发布-订阅消息分发模型。发布者发送有关某个主题的消息,而侦听该主题的任何活跃的订阅服务器都将接收该消息。订阅者还可以注册感兴趣的有通配符主题,这些主题的工作方式有点像正则表达式(仅有一点像)。这种一对多的模式有时称为扇出。通过浏览pub-sub教程,使用live服务器,尝试自己使用NATS发布订阅。...

2020-03-26 12:21:03

NATS中文文档:基于主题的消息传递

本质上,NATS就是消息的发布和监听。这两者在很大程度上都依赖于将消息映射为流或话题的主题。简单来说,主题只是一个字符串,作为发布者和订阅者可以用来查找彼此的名称。NATS服务器保留了一些特殊的字符,规范规定在主题名中只能使用“字母数字”和“.”。主题区分大小写,不能包含空格。为了跨客户端的安全起见,应该使用ASCII字符,尽管将来可能会有所更改。主题层次结构这个.字符用于创建主题层次结构。...

2020-03-26 12:20:32

NATS中文文档:什么是NATS

NATS消息传递允许在计算机应用程序和服务之间交换分割为消息的数据。这些消息由主题寻址,不依赖于网络位置。这在应用程序或服务和底层物理网络之间提供了一个抽象层。数据被编码和以帧作封装为消息并由发布者发送。消息由一个或多个订阅者接收、解码和处理。NATS使程序能够轻松地跨不同的环境、语言、云提供商和本地系统进行通信。客户端通常通过一个URL连接到NATS系统,然后对主题进行订阅或发布。通过这种简单...

2020-03-26 12:19:08

三分钟读懂ZeroMQ

为什么需要ZeroMQZeroMQ可以分开来看Zero MQ,MQ就是Message Queue消息队列。Zero是零,它代表零中间件(None-Broker)、零延迟,同时,它又有了新的含义:零管理、零成本、零浪费。总的来说,零表示最小、最简,这是贯穿于该项目的哲理。致力于减少复杂程度,提高易用性。消息队列有四个典型应用场景:异步处理:任务并行,减少响应时间应用解耦:无上下文,无状态,...

2020-03-23 19:34:56

go语言:给map上锁

map不是goroutine safe的,在多goroutine并发时需要上锁。不上锁会出现什么问题呢?资源竞争:会出现脏读,丢失更新等一系列状况。如读到的是旧数据或是读出来的对象已经被删除了,引发panic。锁用的不对会发生什么呢?第一种情况:死锁(dead lock),卡住。使用时lock了,但没有unlock,就锁死了。另外,注册copy对象里带锁时,注意是不是带锁状态一起拷贝了,...

2020-03-01 12:30:10

go语言:内嵌二义性(ambiguous selector )

内嵌两个结构体中有相同字段会发生二义性。先看代码:package mainimport "fmt"type Shape struct { id int}type Object struct { id int}type Color struct { //Object id int}type Rect struct { Shape *Color}fu...

2020-03-01 12:20:00

go语言:带缓冲和不带缓冲通道的区别

不带缓冲的通道这种类型的通道要求发送 goroutine 和接收 goroutine 同时准备好,才能完成发送和接收操作。package mainimport ( "fmt" "time")func main() { c := make(chan int, 0) go func() { defer func() { fmt.Println("recycle")...

2020-03-01 12:18:45

游戏微服务架构设计:io游戏

什么是io游戏,就是一类的开房间小游戏。如《野蛮人大作战》。这种游戏怎么做分布式?Gate这个连接用来做负载均衡,只是为了获取连接服的连接地址用,客户端连接后,拿到连接服的IP和端口就断开。其中,如何选择连接服的策略可以是随机、轮询、加权重等。Connector连接服:每一个用户一个连接,连接绑定用户的ID。主要由它发起其它服务的RPC,代客户端向后台请求服务。Lobby大厅:登入...

2020-02-29 18:43:16

游戏微服务架构设计:挂机类游戏

挂机类游戏如何做分布式?游戏分五类节点设计:Gate这个连接用来做负载均衡,只是为了获取连接服的连接地址用,客户端连接后,拿到连接服的IP和端口就断开。其中,如何选择连接服的策略可以是随机、轮询、加权重等。Connector连接服:每一个用户一个连接,连接绑定用户的ID。主要由它发起其它服务的RPC,代客户端向后台请求服务。Login登入服:做登入验证,账号相关的一切服务。Use...

2020-02-29 18:42:30

游戏微服务架构设计:棋牌游戏

棋牌游戏怎么做分布式?Gate这个连接用来做负载均衡,只是为了获取连接服的连接地址用,客户端连接后,拿到连接服的IP和端口就断开。其中,如何选择连接服的策略可以是随机、轮询、加权重等。Connector连接服:每一个用户一个连接,连接绑定用户的ID。主要由它发起其它服务的RPC,代客户端向后台请求服务。Lobby大厅:登入直接在这里做了,单独起个Login节点做登入验证也可以,但是觉...

2020-02-29 18:41:31

游戏微服务架构设计:MMORPG

有同学想做MMORPG,不知道怎么做分布式,下面是我的思考,抛砖引玉。首先,微服务下不是服务分的越细越好,只要独立可共享的业务适合做成微服务,比如支付。不光项目内用,还可以和其它项目共用。避免重复开发。如上设计分成五个节点服务。分别介绍:Gate这个连接用来做负载均衡,只是为了获取连接服的连接地址用,客户端连接后,拿到连接服的IP和端口就断开。其中,如何选择连接服的策略可以是随机、轮询、...

2020-02-29 18:40:19

查看更多

勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。