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
- Interactive plotting with R raster: values on mouseover
- Octave Real time plotting
- draw the y-label on the top of y axis
- How to use plotyy for 2 different plots inside a subplot?
- MatLab 3-vector plot/mesh with colour-scale
- Display value of Y axis inside GUI plot
- term frequency over time: how to plot +200 graphs in one plot with Python/pandas/matplotlib?
- R: ggplot2: Unable to plot points from a data.frame
- Combine base and ggplot graphics in R figure window in different pages
- Categorical scatter plot in Matlab
Related Questions in GO
- Interactive plotting with R raster: values on mouseover
- Octave Real time plotting
- draw the y-label on the top of y axis
- How to use plotyy for 2 different plots inside a subplot?
- MatLab 3-vector plot/mesh with colour-scale
- Display value of Y axis inside GUI plot
- term frequency over time: how to plot +200 graphs in one plot with Python/pandas/matplotlib?
- R: ggplot2: Unable to plot points from a data.frame
- Combine base and ggplot graphics in R figure window in different pages
- Categorical scatter plot in Matlab
Related Questions in DOCKER
- Interactive plotting with R raster: values on mouseover
- Octave Real time plotting
- draw the y-label on the top of y axis
- How to use plotyy for 2 different plots inside a subplot?
- MatLab 3-vector plot/mesh with colour-scale
- Display value of Y axis inside GUI plot
- term frequency over time: how to plot +200 graphs in one plot with Python/pandas/matplotlib?
- R: ggplot2: Unable to plot points from a data.frame
- Combine base and ggplot graphics in R figure window in different pages
- Categorical scatter plot in Matlab
Related Questions in LXC
- Interactive plotting with R raster: values on mouseover
- Octave Real time plotting
- draw the y-label on the top of y axis
- How to use plotyy for 2 different plots inside a subplot?
- MatLab 3-vector plot/mesh with colour-scale
- Display value of Y axis inside GUI plot
- term frequency over time: how to plot +200 graphs in one plot with Python/pandas/matplotlib?
- R: ggplot2: Unable to plot points from a data.frame
- Combine base and ggplot graphics in R figure window in different pages
- Categorical scatter plot in Matlab
Related Questions in NSQ
- Interactive plotting with R raster: values on mouseover
- Octave Real time plotting
- draw the y-label on the top of y axis
- How to use plotyy for 2 different plots inside a subplot?
- MatLab 3-vector plot/mesh with colour-scale
- Display value of Y axis inside GUI plot
- term frequency over time: how to plot +200 graphs in one plot with Python/pandas/matplotlib?
- R: ggplot2: Unable to plot points from a data.frame
- Combine base and ggplot graphics in R figure window in different pages
- Categorical scatter plot in Matlab
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 # Hahtags
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
docker
process 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.