为了账号安全,请及时绑定邮箱和手机立即绑定

集群架构中,服务器有必要各司其职吗?即分为数据库服务器,内存服务器,图片服务器等

集群架构中,服务器有必要各司其职吗?即分为数据库服务器,内存服务器,图片服务器等

守候你守候我 2019-03-21 18:15:30
项目背景:读大于写,大概是4:1的比例吧,用户量百万以上,并发4000左右(可高可低,高可到10K,低为1K)几台服务器的性能都差不多,并且负载均衡基本都可以平均分给每台服务器我是让他们通过负载均衡直接一对一面对用户呢(即ABCD都可以被直接访问)。还是让他们各司其职呢(假设A,B为内存服务器,C为数据库,D为图片处理服务器),让他们一层一层接受用户访问。给个建议吧
查看完整描述

7 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

我是感觉分开不好,你都分开,随便一个服务器崩了你程序就崩了,程序首先要保证的是稳定性,至于一个服务器跑多个程序增加服务器复杂性,是看你怎么部署的问题,单项服务在服务器上其实不相关的,排错什么做好日志就可以了,你四台做分布式+均衡,你的服务扩展和转移都是比较容易的,你都做成单台的,就不具备分布式系统的扩张性,性能碰到瓶颈了,你必须架构大改,改成分布式。总体来说,我认为第一种方案比第二种灵活很多

查看完整回答
反对 回复 2019-04-21
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

对于题主反馈的服务量级,应该往分离的方式做.

主要有两个考虑:

  • 不同类型服务对于机器各项资源的要求和消耗不同,可以按需定制机器。这点楼上有其他同学说过了;

  • 进一步的,不同服务放在一起特别是可能会有潜在影响的服务部署在一起,会提高系统的维护成本和不稳定性;举个极端的例子,你会考虑把测试环境和生产环境部署在一起吗,调整测试环境参数影响生产环境真是最不应该发生的事情。

进一步的,有人提到,部署在多处,实际上要应付多点出问题的情景。这个我觉得正好说反了

  • 首先,业务层总是不能假设服务层安全稳定,需要对服务层失效有容忍甚至熔断机制

  • 其次,所有服务放在一台机器上,如果单机挂了(例如磁盘满内存满cpu爆等情况)那就所有服务全挂。分散的话只是个别服务损伤。

  • 还有个运维成本的考虑,早期可能web server和后端服务都放在一起的。后期流量和压力上来之后,肯定还是分工和专业化的方向去做了。

以上主要是个人理解,请参考~


查看完整回答
反对 回复 2019-04-21
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

有必要。服务器当然要各司其职了。服务器要分布式部署。面对流量压力横向扩展。甚至还需要灾备服务器。 一台服务器挂了,还有其他服务器补上。


查看完整回答
反对 回复 2019-04-21
?
互换的青春

TA贡献1797条经验 获得超6个赞

最好分开
你这个应用是不断成长的
现在已经到了这个阶段了
即使你现在不分开
将来也会分开。

查看完整回答
反对 回复 2019-04-21
  • 7 回答
  • 0 关注
  • 570 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号