- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
其中一个 Docker 示例用于配置了 Memcached 的容器。我想知道为什么有人会想要这个而不是配置了 Memcached 的 VM?我猜想在同一主机下运行多个 memcached docker 容器是没有意义的,唯一真正的优势是在 docker 容器中“启动”memcached 堆栈与通过 VM 进行 Memcached 相比的速度优势.这个对吗?
另外,如何在 docker 容器中设置 memcached 使用的内存?如果在一个主机下有两个或多个带有 Memcached 的 docker 容器,这将如何工作? (我再次假设两个或更多没有意义)。
最佳答案
I'm wondering why one would want this versus a VM configured with Memcached?
安全性:如果有人破坏了 memcached 并在文件系统上安装了木马,没关系——当你启动一个新的 memchached 时,文件系统会被丢弃。
隔离:您可以硬限制每个容器以防止它使用过多的 RAM。
标准化:目前,每个应用程序/数据库/缓存/负载均衡器都必须记录要安装什么、要配置什么以及要运行什么。没有标准(也不缺少人偶、厨师等工具)。但是这些工具非常复杂,并不是真正独立于操作系统(尽管他们声称),并且从开发到部署都具有相同的复杂性。
使用 docker,一切都只是一个以 run BLAH
开头的容器。如果您的应用程序有 5 层,那么您只需运行 5 个容器,顶部还有一点点编排。开发人员永远不需要“查看容器”,除非他们在该层进行开发。
资源:您可以在普通 PC 上启动 1000 个 docker 容器,但启动 100 个 VM 会遇到麻烦。限制是 CPU 和 RAM。 Docker 容器只是“增强的”chroot 中的进程。在 VM 上,有几十个后台进程(cron、logrotation、syslog 等),但对于 docker,没有额外的进程。
I'm guessing that it would make no sense to have more than one memcached docker container running under the same host
这取决于。在某些情况下,您希望将 RAM 分成小块而不是全局。 (即假设您想将 20% 的缓存用于缓存用户,将 40% 的缓存用于缓存文件等)
此外,大多数分片方案都难以扩展,因此人们通常从许多“虚拟”分片开始,然后在需要时扩展到物理分片。因此,您可能会从您的应用开始了解大约 20 个 memcached 实例(根据对象 ID 选择)。起初,所有 20 个都运行在一个物理服务器上。但后来您将它们拆分到 2 个服务器 (10/10),然后拆分到 5 个服务器 (4/4/4/4),最后拆分到 20 个物理服务器(每个服务器 1 个内存缓存)。因此,您只需移动虚拟机而不更改您的应用,就可以将您的应用扩展 20 倍。
the only real advantage is speed advantage of "spinning up" the memcached stack in a docker container vs Memcached via a VM. Is this correct?
不,这只是一个轻微的附带好处。见上文。
Also, how does one set the memory to be used by memcached in the docker container?
在docker run
命令中,使用-m
即可。
How would this work if there were two or more docker containers with Memcached under one host? (I'm assuming again that two or more would not make sense).
同样的方式。如果您没有设置内存限制,那么它完全就像在主机上运行 2 个 memcached 进程一样。 (如果一个填满内存,两个都会出现内存不足的错误。)
关于linux - Docker 容器对 memcached 实例有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17934328/
如果函数定义顺序不对,Jslint 将指出错误。 显然 jslint 是严格的,但我想知道将函数按顺序排列是否有任何好处。 我的意思是在调用它们之前定义它们。 最佳答案 函数定义(和 var 语句)被
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我注意到Flask tutorial涉及到点的使用。看起来它只是用于在本地创建一个轮子,这将使服务器上的设置变得更容易,但作为一个网络开发新手,我很好奇:是否有人真的会一路将他们的网站上传到像 PyP
我一直在阅读有关 jquery live event 的内容,但仍然有点困惑?使用它有什么好处? http://docs.jquery.com/Events/live 我知道它与绑定(bind)类似,
这是我的故事:我已将我的应用迁移到 AndroidX,因为我需要从网上找到的库中获取一些新功能。 问题:我目前遇到了一些问题,因为我现在需要为 Cordova 开发一个插件来实现该应用程序的一部分。
在使用 RAD 或一般不使用单元测试时使用依赖注入(inject)是否有任何好处? 最佳答案 是的,有以下几个好处: 减少依赖 减少依赖携带 更多可重用代码 更多可测试代码 更具可读性的代码 更多引用
我目前正在构建一个通过 MSI Windows Installer 分发的产品。我们的客户正在使用不同的形式(例如我们在他们自己的 MSI 中)集成该产品,使用 Bootstrap /链接器(如 Wi
有人声称 Scala 的类型系统是图灵完备的。我的问题是: 这有正式的证据吗? 简单的计算在 Scala 类型系统中会是什么样子? 这对 Scala 这种语言有什么好处吗?与没有图灵完备类型系统的语言
我开始尝试使用 React,我注意到我正在制作的简单应用程序全部使用 JS。我的 html 页面只是一个空的 body 标签! 所以我有几个问题,因为我是这个框架的新手。 我的整个应用程序应该基本上都
我们有一个相当大的基于 Windows 的 1.1 .NET 应用程序,我们正在考虑升级到 2.0。我们考虑更新的主要原因是我们可以利用 Visual Studio 2008 进行项目的持续开发,以及
我有一个页面,其中内置了基于 ajax 的分页。分页用于页面中的“评论”功能。根据 Google 的网站管理员博客,具有 rel="next"和 rel="prev"值有利于 SEO。 我在头部添加了
我是一名优秀的程序员,十分优秀!