BeanstalkD
nsq
Our great sponsors
BeanstalkD | nsq | |
---|---|---|
14 | 14 | |
6,456 | 24,491 | |
0.4% | 0.6% | |
0.0 | 6.3 | |
4 months ago | 8 days ago | |
C | Go | |
GNU General Public License v3.0 or later | MIT License |
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.
BeanstalkD
-
Ruby 3.3
There's beanstalkd, it has a few Python libraries and it works out of the box with ActiveJob via Backburner.
-
A Developer's Journal: Simplifying the Twelve-Factor App
Messaging/Queueing Systems (Amazon SQS, RabbitMQ, Beanstalkd)
- Load Balancing
-
SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a Postgres Queue
Not when a queue is involved. IME trying to replicate something like beanstalkd (https://beanstalkd.github.io/) in postgres is asking for trouble for anything but trivial workloads.
If you're measuring throughput in jobs/s, use a real work queue.
-
Christmas giveaway: 10 copies of my book Domain-driven Design with Golang book, also AMA
Before Kafka was a standard, I created a go library for beanstalkd that act like an RPC.
-
PHP parallel processing idea
Then there are queue libraries like beanstalkd, RabbitMQ or built-in features like queues from Laravel. These will probably get you quicker to your goal then trying the process managing route.
- How to do distributed cronjobs with worker queues?
-
Write Your Own Task Queue
The only task queue I loved was beanstalkd -- it's beautifully written and highly performant. Starting it takes seconds and it's been running for a decade:
- Golang task queue
-
What are some popular background job processing frameworks in the Rust ecosystem?
It's not rust (it's C), but beanstalkd is a pretty incredible work queue that processes millions of jobs a day (10K+/s at peak) for my company. I know there are a few rust drivers available.
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
What are some alternatives?
NATS - Golang client for NATS, the cloud native messaging system.
NATS - High-Performance server for NATS.io, the cloud and edge native messaging system.
RabbitMQ - Open source RabbitMQ: core server and tier 1 (built-in) plugins
Apache Kafka - Mirror of Apache Kafka
ZeroMQ - ZeroMQ core engine in C++, implements ZMTP/3.1
Gearman
etcd - Distributed reliable key-value store for the most critical data of a distributed system
celery - Distributed Task Queue (development branch)
consul - Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.