mirror of
https://github.com/gogrlx/nats-server.git
synced 2026-04-02 03:38:42 -07:00
@@ -33,8 +33,8 @@ If you are interested in contributing to NATS, read about our...
|
||||
[Fossa-Image]: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fnats-io%2Fnats-server.svg?type=shield
|
||||
[Build-Status-Url]: https://travis-ci.com/github/nats-io/nats-server
|
||||
[Build-Status-Image]: https://travis-ci.com/nats-io/nats-server.svg?branch=main
|
||||
[Release-Url]: https://github.com/nats-io/nats-server/releases/tag/v2.4.0
|
||||
[Release-image]: https://img.shields.io/badge/release-v2.4.0-1eb0fc.svg
|
||||
[Release-Url]: https://github.com/nats-io/nats-server/releases/tag/v2.5.0
|
||||
[Release-image]: https://img.shields.io/badge/release-v2.5.0-1eb0fc.svg
|
||||
[Coverage-Url]: https://coveralls.io/r/nats-io/nats-server?branch=main
|
||||
[Coverage-image]: https://coveralls.io/repos/github/nats-io/nats-server/badge.svg?branch=main
|
||||
[ReportCard-Url]: https://goreportcard.com/report/nats-io/nats-server
|
||||
|
||||
2
go.mod
2
go.mod
@@ -7,7 +7,7 @@ require (
|
||||
github.com/klauspost/compress v1.13.4
|
||||
github.com/minio/highwayhash v1.0.1
|
||||
github.com/nats-io/jwt/v2 v2.0.3
|
||||
github.com/nats-io/nats.go v1.12.0
|
||||
github.com/nats-io/nats.go v1.12.1
|
||||
github.com/nats-io/nkeys v0.3.0
|
||||
github.com/nats-io/nuid v1.0.1
|
||||
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e
|
||||
|
||||
4
go.sum
4
go.sum
@@ -18,8 +18,8 @@ github.com/nats-io/jwt v1.2.2 h1:w3GMTO969dFg+UOKTmmyuu7IGdusK+7Ytlt//OYH/uU=
|
||||
github.com/nats-io/jwt v1.2.2/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q=
|
||||
github.com/nats-io/jwt/v2 v2.0.3 h1:i/O6cmIsjpcQyWDYNcq2JyZ3/VTF8SJ4JWluI5OhpvI=
|
||||
github.com/nats-io/jwt/v2 v2.0.3/go.mod h1:VRP+deawSXyhNjXmxPCHskrR6Mq50BqpEI5SEcNiGlY=
|
||||
github.com/nats-io/nats.go v1.12.0 h1:n0oZzK2aIZDMKuEiMKJ9qkCUgVY5vTAAksSXtLlz5Xc=
|
||||
github.com/nats-io/nats.go v1.12.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w=
|
||||
github.com/nats-io/nats.go v1.12.1 h1:+0ndxwUPz3CmQ2vjbXdkC1fo3FdiOQDim4gl3Mge8Qo=
|
||||
github.com/nats-io/nats.go v1.12.1/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w=
|
||||
github.com/nats-io/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s=
|
||||
github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8=
|
||||
github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
|
||||
|
||||
@@ -41,7 +41,7 @@ var (
|
||||
|
||||
const (
|
||||
// VERSION is the current version for the server.
|
||||
VERSION = "2.4.1-beta.3"
|
||||
VERSION = "2.5.0"
|
||||
|
||||
// PROTO is the currently supported protocol.
|
||||
// 0 was the original
|
||||
|
||||
18
vendor/github.com/nats-io/nats.go/README.md
generated
vendored
18
vendor/github.com/nats-io/nats.go/README.md
generated
vendored
@@ -1,10 +1,18 @@
|
||||
# NATS - Go Client
|
||||
A [Go](http://golang.org) client for the [NATS messaging system](https://nats.io).
|
||||
|
||||
[](https://www.apache.org/licenses/LICENSE-2.0)
|
||||
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fnats-io%2Fgo-nats?ref=badge_shield)
|
||||
[](https://goreportcard.com/report/github.com/nats-io/nats.go) [](http://travis-ci.com/nats-io/nats.go) [](https://pkg.go.dev/github.com/nats-io/nats.go)
|
||||
[](https://coveralls.io/r/nats-io/nats.go?branch=master)
|
||||
[![License Apache 2][License-Image]][License-Url] [![Go Report Card][ReportCard-Image]][ReportCard-Url] [![Build Status][Build-Status-Image]][Build-Status-Url] [![GoDoc][GoDoc-Image]][GoDoc-Url] [![Coverage Status][Coverage-image]][Coverage-Url]
|
||||
|
||||
[License-Url]: https://www.apache.org/licenses/LICENSE-2.0
|
||||
[License-Image]: https://img.shields.io/badge/License-Apache2-blue.svg
|
||||
[ReportCard-Url]: https://goreportcard.com/report/github.com/nats-io/nats.go
|
||||
[ReportCard-Image]: https://goreportcard.com/badge/github.com/nats-io/nats.go
|
||||
[Build-Status-Url]: https://travis-ci.com/github/nats-io/nats.go
|
||||
[Build-Status-Image]: https://travis-ci.com/nats-io/nats.go.svg?branch=main
|
||||
[GoDoc-Url]: https://pkg.go.dev/github.com/nats-io/nats.go
|
||||
[GoDoc-Image]: https://img.shields.io/badge/GoDoc-reference-007d9c
|
||||
[Coverage-Url]: https://coveralls.io/r/nats-io/nats.go?branch=main
|
||||
[Coverage-image]: https://coveralls.io/repos/github/nats-io/nats.go/badge.svg?branch=main
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -21,7 +29,7 @@ When using or transitioning to Go modules support:
|
||||
```bash
|
||||
# Go client latest or explicit version
|
||||
go get github.com/nats-io/nats.go/@latest
|
||||
go get github.com/nats-io/nats.go/@v1.12.0
|
||||
go get github.com/nats-io/nats.go/@v1.12.1
|
||||
|
||||
# For latest NATS Server, add /v2 at the end
|
||||
go get github.com/nats-io/nats-server/v2
|
||||
|
||||
2
vendor/github.com/nats-io/nats.go/go_test.mod
generated
vendored
2
vendor/github.com/nats-io/nats.go/go_test.mod
generated
vendored
@@ -4,7 +4,7 @@ go 1.16
|
||||
|
||||
require (
|
||||
github.com/golang/protobuf v1.4.2
|
||||
github.com/nats-io/nats-server/v2 v2.3.5-0.20210825221009-41a253dabb43
|
||||
github.com/nats-io/nats-server/v2 v2.4.1-0.20210902224824-3aa8e63b290a
|
||||
github.com/nats-io/nkeys v0.3.0
|
||||
github.com/nats-io/nuid v1.0.1
|
||||
google.golang.org/protobuf v1.23.0
|
||||
|
||||
6
vendor/github.com/nats-io/nats.go/go_test.sum
generated
vendored
6
vendor/github.com/nats-io/nats.go/go_test.sum
generated
vendored
@@ -19,9 +19,9 @@ github.com/nats-io/jwt v1.2.2 h1:w3GMTO969dFg+UOKTmmyuu7IGdusK+7Ytlt//OYH/uU=
|
||||
github.com/nats-io/jwt v1.2.2/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q=
|
||||
github.com/nats-io/jwt/v2 v2.0.3 h1:i/O6cmIsjpcQyWDYNcq2JyZ3/VTF8SJ4JWluI5OhpvI=
|
||||
github.com/nats-io/jwt/v2 v2.0.3/go.mod h1:VRP+deawSXyhNjXmxPCHskrR6Mq50BqpEI5SEcNiGlY=
|
||||
github.com/nats-io/nats-server/v2 v2.3.5-0.20210825221009-41a253dabb43 h1:Sbb4QxNsccsPERg0C7uQX7/xgOCOTMIvDH9Ytb5MXsU=
|
||||
github.com/nats-io/nats-server/v2 v2.3.5-0.20210825221009-41a253dabb43/go.mod h1:jgHRB+EfZisUr6j50/g7Gcah7AR8qtk3as42DJmESCk=
|
||||
github.com/nats-io/nats.go v1.11.1-0.20210819195927-9053aa4200f0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w=
|
||||
github.com/nats-io/nats-server/v2 v2.4.1-0.20210902224824-3aa8e63b290a h1:CTZ20lNuVCOzZxXN2s1TJBUOdoHbsJXGNaChvdfr99c=
|
||||
github.com/nats-io/nats-server/v2 v2.4.1-0.20210902224824-3aa8e63b290a/go.mod h1:TUAhMFYh1VISyY/D4WKJUMuGHg8yHtoUTuxkbiej1lc=
|
||||
github.com/nats-io/nats.go v1.12.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w=
|
||||
github.com/nats-io/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s=
|
||||
github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8=
|
||||
github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
|
||||
|
||||
59
vendor/github.com/nats-io/nats.go/js.go
generated
vendored
59
vendor/github.com/nats-io/nats.go/js.go
generated
vendored
@@ -2078,7 +2078,11 @@ func checkMsg(msg *Msg, checkSts bool) (usrMsg bool, err error) {
|
||||
// 404 indicates that there are no messages.
|
||||
err = errNoMessages
|
||||
case reqTimeoutSts:
|
||||
err = ErrTimeout
|
||||
// Older servers may send a 408 when a request in the server was expired
|
||||
// and interest is still found, which will be the case for our
|
||||
// implementation. Regardless, ignore 408 errors, the caller will
|
||||
// go back to wait for the next message.
|
||||
err = nil
|
||||
default:
|
||||
err = fmt.Errorf("nats: %s", msg.Header.Get(descrHdr))
|
||||
}
|
||||
@@ -2090,6 +2094,9 @@ func (sub *Subscription) Fetch(batch int, opts ...PullOpt) ([]*Msg, error) {
|
||||
if sub == nil {
|
||||
return nil, ErrBadSubscription
|
||||
}
|
||||
if batch < 1 {
|
||||
return nil, ErrInvalidArg
|
||||
}
|
||||
|
||||
var o pullOpts
|
||||
for _, opt := range opts {
|
||||
@@ -2182,19 +2189,31 @@ func (sub *Subscription) Fetch(batch int, opts ...PullOpt) ([]*Msg, error) {
|
||||
if err == nil && len(msgs) < batch {
|
||||
// For batch real size of 1, it does not make sense to set no_wait in
|
||||
// the request.
|
||||
batchSize := batch - len(msgs)
|
||||
noWait := batchSize > 1
|
||||
nr := &nextRequest{Batch: batchSize, NoWait: noWait}
|
||||
req, _ := json.Marshal(nr)
|
||||
noWait := batch-len(msgs) > 1
|
||||
var nr nextRequest
|
||||
|
||||
err = nc.PublishRequest(nms, rply, req)
|
||||
for err == nil && len(msgs) < batch {
|
||||
sendReq := func() error {
|
||||
ttl -= time.Since(start)
|
||||
if ttl < 0 {
|
||||
ttl = 0
|
||||
// At this point consider that we have timed-out
|
||||
return context.DeadlineExceeded
|
||||
}
|
||||
// Make our request expiration a bit shorter than the current timeout.
|
||||
expires := ttl
|
||||
if ttl >= 20*time.Millisecond {
|
||||
expires = ttl - 10*time.Millisecond
|
||||
}
|
||||
|
||||
// Ask for next message and waits if there are no messages
|
||||
nr.Batch = batch - len(msgs)
|
||||
nr.Expires = expires
|
||||
nr.NoWait = noWait
|
||||
req, _ := json.Marshal(nr)
|
||||
return nc.PublishRequest(nms, rply, req)
|
||||
}
|
||||
|
||||
err = sendReq()
|
||||
for err == nil && len(msgs) < batch {
|
||||
// Ask for next message and wait if there are no messages
|
||||
msg, err = sub.nextMsgWithContext(ctx, true, true)
|
||||
if err == nil {
|
||||
var usrMsg bool
|
||||
@@ -2207,27 +2226,7 @@ func (sub *Subscription) Fetch(batch int, opts ...PullOpt) ([]*Msg, error) {
|
||||
// not collected any message, then resend request to
|
||||
// wait this time.
|
||||
noWait = false
|
||||
|
||||
ttl -= time.Since(start)
|
||||
if ttl < 0 {
|
||||
// At this point consider that we have timed-out
|
||||
err = context.DeadlineExceeded
|
||||
break
|
||||
}
|
||||
|
||||
// Make our request expiration a bit shorter than the
|
||||
// current timeout.
|
||||
expires := ttl
|
||||
if ttl >= 20*time.Millisecond {
|
||||
expires = ttl - 10*time.Millisecond
|
||||
}
|
||||
|
||||
nr.Batch = batch - len(msgs)
|
||||
nr.Expires = expires
|
||||
nr.NoWait = false
|
||||
req, _ = json.Marshal(nr)
|
||||
|
||||
err = nc.PublishRequest(nms, rply, req)
|
||||
err = sendReq()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
25
vendor/github.com/nats-io/nats.go/nats.go
generated
vendored
25
vendor/github.com/nats-io/nats.go/nats.go
generated
vendored
@@ -46,7 +46,7 @@ import (
|
||||
|
||||
// Default Constants
|
||||
const (
|
||||
Version = "1.12.0"
|
||||
Version = "1.12.1"
|
||||
DefaultURL = "nats://127.0.0.1:4222"
|
||||
DefaultPort = 4222
|
||||
DefaultMaxReconnect = 60
|
||||
@@ -196,6 +196,26 @@ const (
|
||||
DRAINING_PUBS
|
||||
)
|
||||
|
||||
func (s Status) String() string {
|
||||
switch s {
|
||||
case DISCONNECTED:
|
||||
return "DISCONNECTED"
|
||||
case CONNECTED:
|
||||
return "CONNECTED"
|
||||
case CLOSED:
|
||||
return "CLOSED"
|
||||
case RECONNECTING:
|
||||
return "RECONNECTING"
|
||||
case CONNECTING:
|
||||
return "CONNECTING"
|
||||
case DRAINING_SUBS:
|
||||
return "DRAINING_SUBS"
|
||||
case DRAINING_PUBS:
|
||||
return "DRAINING_PUBS"
|
||||
}
|
||||
return "unknown status"
|
||||
}
|
||||
|
||||
// ConnHandler is used for asynchronous events such as
|
||||
// disconnected and closed connections.
|
||||
type ConnHandler func(*Conn)
|
||||
@@ -3566,6 +3586,7 @@ func (nc *Conn) oldRequest(subj string, hdr, data []byte, timeout time.Duration)
|
||||
const (
|
||||
InboxPrefix = "_INBOX."
|
||||
inboxPrefixLen = len(InboxPrefix)
|
||||
replySuffixLen = 8 // Gives us 62^8
|
||||
rdigits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
|
||||
base = 62
|
||||
)
|
||||
@@ -3615,7 +3636,7 @@ func (nc *Conn) newRespInbox() string {
|
||||
sb.WriteString(nc.respSubPrefix)
|
||||
|
||||
rn := nc.respRand.Int63()
|
||||
for i := 0; i < nuidSize; i++ {
|
||||
for i := 0; i < replySuffixLen; i++ {
|
||||
sb.WriteByte(rdigits[rn%base])
|
||||
rn /= base
|
||||
}
|
||||
|
||||
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@@ -9,7 +9,7 @@ github.com/minio/highwayhash
|
||||
# github.com/nats-io/jwt/v2 v2.0.3
|
||||
## explicit
|
||||
github.com/nats-io/jwt/v2
|
||||
# github.com/nats-io/nats.go v1.12.0
|
||||
# github.com/nats-io/nats.go v1.12.1
|
||||
## explicit
|
||||
github.com/nats-io/nats.go
|
||||
github.com/nats-io/nats.go/encoders/builtin
|
||||
|
||||
Reference in New Issue
Block a user