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 best solutions below
Related Questions in DEPLOYMENT
- Can I deploy multiple instances of my application on the same windows phone?
- Deploy enterprise (in-house) application on windows phone without developer unlocking the phone?
- uninitialized constant ActiveMerchant::Billing::CreditCard::Validateable (NameError) - in Spree shop
- How to Continuously Develop and Deploy an Access 2010 Database Application
- Efficient way of organizaing mail sending from Rails app
- Deployment over GPRS to embedded devices
- Weblogic 12c web application not start properly after server reboot
- Deployment in Weblogic 10.3, how to change properties
- Deployed Version of MVC Site Not Working
- Laravel 5 on shared hosting getting internal server error
- Integration between Java Applets and .Net dll
- Capistrano Rails deploy with new migration files
- EF Code First - Multiple Application Versions Sharing A Database
- Docker: How to create a stack, multiple images or one base image?
- Slow wpf startup due to publish policy... maybe
Related Questions in GO
- How do I get all the attributes of an XML element using Go?
- Type cast custom types to base types
- Why are Revel optional func parameters in controller not working? CRUD code redundancy
- Streaming commands output progress
- single ampersand between 2 expressions
- golang goroutine use SSHAgent auth doesn't work well and throw some unexpect panic
- How do I do a literal *int64 in Go?
- Emulating `docker run` using the golang docker API
- How to print contents of channel without changing it
- Golang time zone parsing not returning the correct zone on ubuntu server
- Is os.File's Write() threadsafe?
- How to get the pointer of return value from function call?
- How do I represent an Optional String in Go?
- Fibonacci in Go using channels
- Boltdb-key-Value Data Store purely in Go
Related Questions in DOCKER
- Docker, redirecting to virtualbox port
- Collect only from STDERR when using Docker syslog logging driver
- How can I create a docker image from the current system?
- Moving Docker Containers Around
- How can I test with serverspec that Jenkins is running in a jenkins docker container?
- How to deploy django 1.8 on Elastic Beanstalk using Docker
- Emulating `docker run` using the golang docker API
- Where are docker images and containers stored when we use it with Windows?
- docker compose, vagrant and insecure Repository
- Commit data in a mysql container
- oh-my-zsh installation returns non zero code
- Use custom docker binary in CoreOS
- Can I use docker image ubuntu 14.04 if my host is 12.04?
- Hide/obfuscate environmental parameters in docker
- How to add initial users when starting a RabbitMQ Docker container?
Related Questions in LXC
- LXC: Is there a way to setup nameserver on container config?
- Exec is not supported by the lxc driver: how to get around this?
- The second command doesn't run as root
- Is it possible to read messages passed over stdout from within a Docker container? (without `docker logs`)
- Kernel configurations for lxc
- Ubuntu 14.01 Host / Ubuntu 14.01 Container; Postfix does not send mail; telnet does not connect to outside host
- How to programmatically monitor if a docker container exited?
- Should you install nginx inside docker?
- lxc container can't use nfc usb device
- has the linux kernel support sctp protocol in container of LXC/docker yet?
- Distributed Systems NSQ topology pattern on Docker containers
- How i can get the current state of a lxc container with python?
- lxc-start: Invalid argument - failed to clone
- Dockerfile : not able to use add to map local file to container
- Building a container with debootstrap
Related Questions in NSQ
- How to send the message back to the sender with messaging architecture?
- How to sync the database with the microservices (and the new one)?
- Distributed Systems NSQ topology pattern on Docker containers
- Acknowledge messages in NSQ
- NSQ cluster in Kubernetes
- Is the TimerThread cause DeadLock happend?
- Which --broadcast-address should i set in nsqd param?
- why nsqlookupd package use Context?
- Running NSQ in Docker
- pynsq: backing off for 'n' seconds
- pynsq: Reader object has no attribute 'finish'
- pynsq: Giving up RDY count
- How to connect/listen to nsqd from a webserver
- How to do nsqd load balancing with its sticky connections?
- Golang and NSQ (bitly)
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)
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?
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.