多个程序安装在一台服务器好还是分开安装好
发布网友
发布时间:2023-05-11 05:05
我来回答
共1个回答
热心网友
时间:2024-11-23 19:47
理论上是独立部署最好。但实际情况吧看公司机器资源。不从实际情况考虑的架构都是耍流氓。redis主要耗内存。但生产环境中cpu,网络,磁盘都是要考虑的问题,而且我们的资源是有限的。
可以肯定的是最好不要和数据库在同一个节点部署。数据库需要单独部署。为什么这样说呢? 一个原因是因为数据库太重要了。我们不能因为redis的问题导致数据库被牵连。另一个原因。redis作为缓存,本身就是为了减少直接连库的压力。结果部署在一个节点上。数据库实例的压力是小了。但这个节点整体访问量,IO,cpu,内存并没有减小多少。甚至是增加了。因为一次请求要吗访问数据库,要吗访问redis,但现在都在一个节点上, 所以总量并没有减小。而redis自身还会淘汰数据,这其中又是一波耗节点资源的操作。
从另一个理想的角度考虑,我希望我的数据库实例挂了,能从redis中获取数据。我的redis挂了,能从数据线中获取数据。这样尽量保证业务正常。要实现这个目标,数据库和redis必须在不同的节点上。如果在同一个节点。而这个节点挂了。我们就没有取数据的地方了。
生产环境,中间件之间可以混合部署。比如redis,mq可以在同节点混合部署。业务项目之间可以混合部署。但业务不要和中间件部署到同节点。数据库独立节点部署。
redis最好也不要和其他的耗内存大户混合部署,如elasticsearch 这种的。
如果没有中间件节点。那就选个业务访问量少的节点混合部署吧,总之不要选数据库节点。除非这个数据库节点是冷备节点