• 请不要在回答技术问题时复制粘贴 AI 生成的内容
KarlChen2015
V2EX  ›  程序员

分布式架构 是买一台高配的服务器(比如 8C16g 或 8C32g)比较好 还是买多台低配的服务器(比如 2C4g 买 4 台)

  •  
  •   KarlChen2015 · Sep 25, 2020 · 6993 views
    This topic created in 2234 days ago, the information mentioned may be changed or developed.
    Supplement 1  ·  Sep 26, 2020
    换个问法:4 个应用部署在一台机子(8C16g)好,还是部署在 4 台机子(2C4g * 4)好
    Supplement 2  ·  Sep 26, 2020
    大家不要再回答主从或者双机热备等等了,本题目和可用性无关,我只是想问问硬件部署方式
    34 replies  •  2020-09-27 09:58:29 +08:00
    KarlChen2015
    KarlChen2015
    OP
    Sep 25, 2020
    1
    这里不需要考虑主备或者负载均衡问题 因为前面的服务器不管怎么买,都是一整套系统,会基于此配置部署 2~3 套做负载均衡
    KarlChen2015
    KarlChen2015
    OP
    Sep 25, 2020
    2
    在某云上 一台 8C16g 的价格=2C4g * 4 所以硬件成本几乎一样
    duhongle
    duhongle
    Sep 25, 2020
    3
    建议多台低配都服务器,,最起码 I/O 能提升不少。。。
    cccp2020
    cccp2020
    Sep 25, 2020
    4
    多态吧,起码能容错
    linvaux
    linvaux
    Sep 25, 2020 via iPhone
    5
    买一台的话,一点都不“分布式”
    zhenjiangidc
    zhenjiangidc
    Sep 25, 2020
    6
    不要把鸡蛋放一个篮子里面,
    KarlChen2015
    KarlChen2015
    OP
    Sep 25, 2020
    7
    @duhongle I/O 多台其实是不升反降了 aws 的 IO 是根据硬盘容量计算的 单一硬盘越大 IO 越大
    coderxy
    coderxy
    Sep 25, 2020
    8
    单台你就没法保证高可用。
    shakoon
    shakoon
    Sep 25, 2020
    9
    我觉得没必要。云服务器底层都是物理机的集群,各种硬件资源都是分散的,硬盘也是接的存储,所以单个机器和多个机器不存在明显的性能差异。除非你的应用本身是不支持多线程的,那分几个机器做集群才能提高总体效率。另外,即便性能相同,集群还有一个优势就是高可用性比单机要高得多,对于重要业务来说连续性是远比性能重要的。
    reus
    reus
    Sep 25, 2020
    10
    测试一下不就知道了
    KarlChen2015
    KarlChen2015
    OP
    Sep 25, 2020
    11
    @KarlChen2015 注意是 4 个应用,是部署在 1 台高配机还是分开部署在 4 台机的问题
    ericgui
    ericgui
    Sep 25, 2020
    12
    我以为分布式就是因为一台机器不够用了才搞分布式。。。。。。。。
    opengps
    opengps
    Sep 25, 2020 via Android
    13
    如果你是分布式弹性架构,那么放心的买多台
    wangyanrui
    wangyanrui
    Sep 25, 2020 via Android
    14
    看性能损耗在哪里,才能明确到底是买什么类型
    空谈没答案
    xuanbg
    xuanbg
    Sep 25, 2020
    15
    多台√
    单台×
    mawenjian
    mawenjian
    Sep 25, 2020 via Android
    16
    现在稍微重要点的业务都得双机热备吧,如果连灾备都不用考虑,我更怀疑是否有必要用“分布式架构”。
    ArJun
    ArJun
    Sep 25, 2020
    17
    肯定优先多台吧,kvm 虚拟化下高性能不见得优势大很多
    duhongle
    duhongle
    Sep 25, 2020
    18
    @KarlChen2015 AWS 中的硬盘我不知道什么情况。。。阿里云上,SSD 云盘 买的越大(数据磁盘大于 60G )性能越好。。。但是高效云盘中,我们测试 Kafka 集群。。。多台部署 ECS 使用高效云盘,处理能力提升还是比价明显的。。
    Lockeysama
    Lockeysama
    Sep 25, 2020
    19
    多台吧,至少挂掉一台的时候,不至于全部服务不可用(服务有主备模式之类的就更香了)
    whileFalse
    whileFalse
    Sep 25, 2020
    20
    每个服务只跑一个实例?
    chenzheyu
    chenzheyu
    Sep 25, 2020
    21
    数据库之类的一定要大,性能牛逼的。像 nginx 跟 php-fpm 之类的随意拓展的无所谓啊
    misaka19000
    misaka19000
    Sep 25, 2020
    22
    肯定多台
    brendanliu
    brendanliu
    Sep 25, 2020
    23
    分布式建议多台
    fancyhan
    fancyhan
    Sep 25, 2020
    24
    2C6g,四台放在不同机房,最好跨一个服务商
    rainbirda
    rainbirda
    Sep 25, 2020
    25
    分布式架构最少的两台吧,保证可用性,为啥不整 2 台 4C8G?
    cominghome
    cominghome
    Sep 25, 2020
    26
    看需求,普通 Java 应用的话,实例拆越小越好,2c4g 跑一个进程正好
    asuraa
    asuraa
    Sep 25, 2020
    27
    反正我们的 k8s 是 8h16g 的节点
    jerryshao
    jerryshao
    Sep 26, 2020
    28
    我的理解是这一套搭在不同地域或者同一区域的不同可用区然后前面加负载均衡。

    可以自己先做一下测试,比如在一个可用区启动 2 个 2C4G 和一个 8C16G,给前面两个 50%的负载,后面一个 50%的负载。不断增加请求,看看 CPU,内存,硬盘吞吐等等指标的情况,找一下性能瓶颈再决定单机还是多机。

    前两个月也可以先用 on demand 看看,太着急包年买可能会造成浪费。
    lsnl8480
    lsnl8480
    Sep 26, 2020
    29
    os 的基础损耗差不多在 0.5v 左右,资源不多的话,不建议分太多虚拟机,计算资源都浪费在 os 损耗上了。
    KarlChen2015
    KarlChen2015
    OP
    Sep 26, 2020
    30
    @mawenjian 我可能标题写的不够清楚,我的意思是多个应用部署在一台机子上 还是部署在多台机子上的问题,比如 4 个应用部署在一台机子或者四台机子上,再基于此部署方式作双机(部署两套)负载均衡
    KarlChen2015
    KarlChen2015
    OP
    Sep 26, 2020
    31
    @Lockeysama 你没 get 我的提问...
    KarlChen2015
    KarlChen2015
    OP
    Sep 26, 2020
    32
    @rainbirda 你没 get 我的提问...
    young1lin
    young1lin
    Sep 27, 2020
    33
    一台机器上更方便,如果其他应用内存不够了,刚好有一个应用不常用,使用内存或者 cpu 资源少,可以这么做。
    多台机器增加了部署以及运维的成本,而且耗流量。
    当然,如果你要完全隔离所有应用的资源,那当我没说。
    Lockeysama
    Lockeysama
    Sep 27, 2020
    34
    @KarlChen2015 各有优势劣势,从运维来说:多台机子运维成本增加是必然的,但是是故障恢复的时候,程序设计的合理的话,多台恢复比一台的要简单些(不太可能多台同时 GG,只要恢复其中故障的一两个就行);从网络角度来说:服务程序间通信,在一台内总是比多台内更稳定可靠快速的(如果现在体量没那么大的话,这些差别根本不重要);个人是比较习惯用多台低配这种方案的,觉得按照这种方式去优化架构的话,之后业务增长了,去做服务横向扩展这些的时候,能避免掉一些坑(主要是网络通信问题)。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1555 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 141ms · UTC 15:17 · PVG 23:17 · LAX 07:17 · JFK 10:17
    ♥ Do have faith in what you're doing.