Is it possible to replicate "NSQ realtime distributed messaging platform" described in the last example of "Topology Patterns" with Docker? Does anybody have a dockerfile or image example?
Distributed Systems NSQ topology pattern on Docker containers
1.2k views Asked by Luca G. Soave At
1
There are 1 answers
Related Questions in DEPLOYMENT
- Github Pages Deployment deploys a blank page
- Django Admin Panel and Sub URLs Returning 404 Error on Deployment
- Next 14 App Router pages from dynamic routes not generating when deployed on vercel but only work on localhost
- Deployment through app engine, cloud sql database, problem connecting with server code, doesn't connect
- How to Deploy and Manage a Python Application with Systemd
- Elasticbeanstalk FastAPI application is intermittently not responding to https requests
- Duplicate GET requests - Rails & Heroku
- How to use a proxy to obtain a static IP for my Node.js application?
- Next js app throwing 404 error when deployed to vercel, even though it works fine on local
- How to deploy my shiny application (with multiple files) via Docker
- Deploying telegram bot
- How to deploy angular 17 SSR into IIS
- Route not working on refreshing the page in react deployed application
- Vercel wildcard route's src results in 404 error in Hapi.js backend
- Django deployment with GTK3
Related Questions in GO
- Go Fiber and HTMX - HX-Trigger header is changed to Hx-Trigger, which is not what HTMX is listening for
- Golang == Error: OCI runtime create failed: unable to start container process: exec: "./bin": stat ./bin: no such file or directory: unknown
- Handling both JSON and form values in POST request body with unknown values in Golang
- invalid transaction: Transaction failed to sanitize accounts offsets correctly
- Golang lambda upload image into s3 static website
- Is there a way to get a list of selected module versions, but only for modules within the pruned graph?
- Save Interface in DB golang
- ERROR: column "country" is of type text[] but expression is of type record (SQLSTATE 42804)
- Trying to update the version.go file with the release tag from GitHub actions but its failing
- How can I optimize this transposition table for connect 4 AI?
- const declaration - How to evaluate expressions at compile time?
- How add array of authors for unique user in database in Goland IDE?
- Why is the main goroutine not blocked after write in unbuffered channel?
- Insert & Retrieve from a channel in same main function throws "goroutine 1 [chan receive]: main.main() /path exit status 2" error
- Gob error when decoding array of structs: decoding into local type but received remote type
Related Questions in DOCKER
- sqlplus myusername/mypassword@ORCL not working with Oracle on Docker
- Golang == Error: OCI runtime create failed: unable to start container process: exec: "./bin": stat ./bin: no such file or directory: unknown
- Only the first SQL script gets executed inside Docker Postgres container
- Retrieve the Dockerfile configuration from the Kubernetes and also change container Java parameter?
- Polars with Rust: Out of Memory Error when Processing Large Dataset in Docker Using Streaming
- Compiling eBPF program in Docker fails due to missing '__u64' type
- AttributeError: module 'numba' has no attribute 'generated_jit'
- Phoenix in a docker dev environment - generated code can't be saved from VSCode
- Docker on Multipass VMs: Connecting worker nodes to swarm results in rcp error
- Facing error in creating image of my react+vite project . Dockerfile error
- NextJS Docker build fails: fetch failed ECONNREFUSED
- Docker container unable to make HTTPS requests to external API
- Failed to connect to your instance after deploying mern app on aws ec2 instance when i try to access frontend
- Connecting to Postgres running in a Docker container using psql
- Can't connect to local postgresql server from my docker container
Related Questions in LXC
- Why is ingress packet not getting DNAT 'edin NAT PREROUTING chain with nftables?
- LXD/LXC container has no external network access (debian 12)
- LXC broken after router malfunction
- proxmox lxc UID/GID mapping
- package installation incomplete on lxc fedora 39 container
- Unable to Compile Code in LXC BusyBox Container
- Permission denied while running shell bash command with lxc-container in jenkins
- How to specify image to lxc
- Running waydroid on Raspberry Pi 4 b
- LXC container on proxmox points to incorrect domain
- Arch Linux LXC Container unable to start
- I want to create containerd/config.toml file for local lxc containers
- LXC container with windows died
- Wazuh Indexder throws /entrypoint.sh permission denied after running `docker-compose up`
- Unable to Run NVIDIA GPU-Enabled Docker Containers Inside an LXC Container
Related Questions in NSQ
- Graceful Downscale GCE Instances
- Communicate with NSQ over a Websocket
- Get notified when an NSQD node is not available
- Acknowledge messages in NSQ
- Can I use nsq_to_file uitility with docker compose?
- How to create a channel in NSQ without consuming a message
- How to do nsqd load balancing with its sticky connections?
- NSQ cluster in Kubernetes
- After nsq.run() my python script is not executing block of code in "pynsq" package
- Inject dynamically commands into a deployment
- Attempt to reconnect to NSQ after clean close
- How to get a return value of a function in python
- depth of channel showing in nsqadmin increasing fast when producer send message to same topic via different nsqd
- How to get docker generated ip port from docker-compose
- How to connect/listen to nsqd from a webserver
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
I'll take a crack at this while I'm waiting for a few background tasks to finish.
The distributed messaging platform that @Luca G. Soave mentioned can be seen here:
I believe this question has a fatal issue at its root: a misunderstanding of what Docker containers are.
For the purposes of our discussion, let's pretend that a Docker container is just a different name for a virtual machine. The question of "Can a distributed system be built with virtual machines?" doesn't quite fit since it's really just a matter of configuration, abstraction, and coordination.
The diagram above can be recreated with each point of contact/responsibility (node) being self-contained within a Docker container or a virtual machine. i.e.:
Depending on how you set-up your Docker images, you may implement a distributed (multi-host) version of this in a number of ways. Some ideas are:
Mapping container internal ports to the same host port, and configuring your nodes to broadcast themselves as the host ip, so that when other nodes go to connect to them, they're latching onto the host's external ip at the port mapped to the container; thus connecting directly to the container.
Using a service discovery package like consul to replace the nsqlookupd in order to add additional metadata. This would be useful if you're running many containers that each internally bind to the same port (e.g. port 9090), but allow the
dockerprocess on the host to manage the random external port mappings.As this relates to Docker, there have been some recent developments in broadcasting information across hosts to related containers; which would be one way to seed your api/nsqd containers with information about the nsqlookupd containers.
I've had success using MaestroNG for small deployments, but it definitely is not a great solution for large-scale docker deployments.