nsq
NATS
Our great sponsors
nsq | NATS | |
---|---|---|
14 | 11 | |
24,491 | 5,097 | |
0.6% | 2.3% | |
6.3 | 9.1 | |
9 days ago | 4 days ago | |
Go | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nsq
-
MQTT vs. Kafka: An IoT Advocate's Perspective
Interesting. What are you thoughts on NSQ?
Was looking at it earlier today, but haven't ever tried it out.
-
Any thoughts on using Redis to extend Go's channels across application / machine boundaries?
(G)NATS can do millions of messages per second and is the right tool for the job (either that or NSQ). Redis isn't even the fastest Redis protocol implementation, KeyDB significantly outperforms it.
-
FileWave: Why we moved from ZeroMQ to NATS
Bit.ly's NSQ is also an excellent message queue option.
-
Infinite loop pattern to poll for a queue in a REST server app
Queue consumers are interesting because there are many solutions for them, from using Redis and persisting the data in a data store - but for fast and scalable the approach I would take is something like SQS (as I advocate AWS even free tier) or NSQ for managing your own distributed producers and consumers.
-
What are pros and cons of Go?
distrubition server engine ( for example websocket server multi ws gateway and worker pool,nsq.io realtime message queue and so on)
- Is there any conventionally accepted repo that is representative of well designed go code ?
-
Distributed IM Service in Golang
NSQ is a message queue implemented by Golang, and all messages are routed through NSQ. Reasons for choosing NSQ compared to other MQs: decentralized distribution (direct connection between production and consumption), low latency, No ordering, high performance, simple binary protocol.
-
Fluvio: The Programmable Data Platform
If we are talking about "cloud-native", I would really recommend taking a look at nsq or nats. I am really big fanboy of NSQ [1], it is simple, easy to setup and conceptually easy to learn.
[1] https://nsq.io
-
For those running Go in production at scale, what do you use for distributed task queues?
Here is link number 1 - Previous text "NSQ"
I've been using NSQ in production for a number of years now. It's also written in Go and has a first class client library maintained by the devs
NATS
-
High-Performance server for NATS.io, the cloud and edge native messaging system
(note that NATS Streaming is a now deprecated predecessor to NATS JetStream)
Pull does have advantages over push (e.g. one-to-one flow control since the transfer of the messages is initiated by the client (pull requests)), and they are basically functionally equivalent (only thing push can do that pull can not is send a copy of all the message to all the subscribers, should you ever need it). They both exists because historically push came first and then pull later).
As a developper using NATS JetStream you should really not have to worry about push or pull, you should just care whether you want to consume the messages via call back or via an iterator or via fetching batches, after that whether pull or push is being used underneath the covers is irrelevant to you.
And this is exactly how it is in the new JetStream API (https://github.com/nats-io/nats.go/tree/main/jetstream#readm...) you don't have to worry about push/pull anymore and you can consume in any of the 3 ways described above (callback, iterator, fetch batch) it's all a lot simpler and easier to use.
-
What is the coolest Go open source projects you have seen?
nats: Golang client for NATS, the cloud native messaging system
-
Distributed communication patterns with NATS
Install the nats.go package
- Redis vs. Kafka vs. RabbitMQ
-
Distributed messaging with NATS
Now that our NATS server is running, we'll be using Go and Node.js clients to connect to it for simple demonstration. Not familiar with Go or Node? Don't worry NATS has clients available in over 40 languages!
- How do I build a text editor like notepad using wails
- Modern Communication: Sockets
-
Subscription management in pub/sub system
You could start by looking/reading how it is implemented in production ala https://github.com/nats-io/nats.go
What are some alternatives?
NATS - High-Performance server for NATS.io, the cloud and edge native messaging system.
Centrifugo - Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever.
RabbitMQ - Open source RabbitMQ: core server and tier 1 (built-in) plugins
EventBus - [Go] Lightweight eventbus with async compatibility for Go
Apache Kafka - Mirror of Apache Kafka
go-nsq - The official Go package for NSQ
dbus - Native Go bindings for D-Bus
ZeroMQ - ZeroMQ core engine in C++, implements ZMTP/3.1
emitter - Emits events in Go way, with wildcard, predicates, cancellation possibilities and many other good wins
etcd - Distributed reliable key-value store for the most critical data of a distributed system
Confluent Kafka Golang Client - Confluent's Apache Kafka Golang client
consul - Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.