分布式可以完全去中心吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liudaqi
V2EX    问与答

分布式可以完全去中心吗?

  •  
  •   liudaqi 2020-04-07 12:29:40 +08:00 4626 次点击
    这是一个创建于 2061 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在的分布式存储、分布式计算,其实都还有一个调度中心、注册中心这样的机制在协调所有的节点,状态监控等等。

    如果这个调度中心宕机了,还是会导致整个分布式系统彻底挂掉啊
    31 条回复    2020-04-08 09:26:07 +08:00
    cmdOptionKana
        1
    cmdOptionKana  
       2020-04-07 12:31:42 +08:00
    多中心
    opengps
        2
    opengps  
       2020-04-07 12:33:16 +08:00 via Android
    调度中心为了不当机,本身会做成副本多活的,如果都挂了显然系统也会挂
    liudaqi
        3
    liudaqi  
    OP
       2020-04-07 12:34:10 +08:00
    @cmdOptionKana 多中心的实现,也需要有一个更上一层的均衡系统吧
    liudaqi
        4
    liudaqi  
    OP
       2020-04-07 12:39:40 +08:00
    @opengps 副本多活之间是怎么协调谁主谁备?主挂了什么时候顶上,是不是还要再套一层监控?
    jie170601
        5
    jie170601  
       2020-04-07 12:42:02 +08:00 via Android
    在客户端中预设好几个中心,一个连不上连另一个呢,类似区块链的种子节点,web 服务没想到啥好办法,
    opengps
        6
    opengps  
       2020-04-07 12:42:23 +08:00 via Android   1
    @liudaqi 说白了无论如何都需要一个总入口,这个入口:
    要么在网络负载均衡处,
    要么在 dns 负载均衡处。

    然后才是带有主备属性的中心服务,一般来说备节点都是只同步但不工作的
    des
        7
    des  
       2020-04-07 12:45:12 +08:00 via Android   1
    参考一下 dht
    lyog
        8
    lyog  
       2020-04-07 12:51:13 +08:00 via iPhone   1
    @liudaqi 现在的架构就是去中心化的,你的理解有误。可以了解下 zk 的选举制度,并不是非得有上一级才能协调主备
    laobingge
        9
    laobingge  
       2020-04-07 13:03:26 +08:00 via Android
    可以借鉴区块链的机制,技术上是可以做到的,就是每个节点都有全部信息的副本,虽然更加安全可靠,但这样会降低效率和增加成本,尤其当节点数量越来越多的时候。

    因此,集中还是分布,没有绝对的优劣,更多是种平衡,不同阶段两者的比例需要做相应的调整。
    lhx2008
        10
    lhx2008  
       2020-04-07 13:12:00 +08:00 via Android   1
    调度中心就是 zk 这种嘛,出问题了的话,业务会有影响,但是也可以在业务侧做一些保护措施,包括缓存的机制。

    然后 zk 本身是多点的,稳一点肯定是同城异地的多个副本,全部挂掉的几率比较小

    完全无中心也是有的,就是一种无主的策略,比如区块链,或者其他一些比较高效的共识算法来做,但是最大的问题是冲突是基本上必然发生的。
    lhx2008
        11
    lhx2008  
       2020-04-07 13:15:42 +08:00
    @lhx2008 #10 比如 Cassandra,但是我对这个还不是太了解
    liudaqi
        12
    liudaqi  
    OP
       2020-04-07 13:20:24 +08:00   1
    @jie170601 是的,区块链里维护了一些核心 ip 列表,web 没有客户端就不好实现了

    @des 大致看了下 dht,还是要在一个协调系统内部才能运作

    @lyog ZooKeeper 选举机制还是解决的内部问题,这和区块链的思路本质上是一致的(只是选举的策略不同)?

    @laobingge 也觉得区块链的分布式,是牺牲了效率换来的。
    @lhx2008 区块链也不算完全无中心,毕竟还是维护了一些核心 ip 吧,当然最核心 50%算力策略当然理论上是公平的。
    nicebird
        13
    nicebird  
       2020-04-07 15:57:46 +08:00
    无主可以做,太麻烦。所以选择有主+选举。
    Takuron
        14
    Takuron  
       2020-04-07 16:01:06 +08:00 via Android
    应该说分布式的目的是去中心化,一个真正意义上的分布式系统是还剩一个机器都能运转的。
    但这是理想情况,真正意义上的去中心化会造成浪费(看看隔壁的虚拟货币),所以实际过程中大家都不太愿意做成真正的“去中心化”
    tms
        15
    tms  
       2020-04-07 16:34:40 +08:00
    我理解是由于成本和效率的考量,真正的完全去中心化没太有必要。只要把挂掉的概率降低到可容忍水平就行了。
    optional
        16
    optional  
       2020-04-07 16:37:29 +08:00 via iPhone
    无中心的也有啊 ,基于 gossip 协议的分布式
    passerbytiny
        17
    passerbytiny  
       2020-04-07 17:04:41 +08:00 via Android
    出于负载均衡或业务分析的目的,把集中在一起的任务(横向或纵向)拆分成多个分离的任务,这才是分布式,去中心化既不是分布式的目的,也不是它的手段。去中心化是为了更进一步的负载均衡或高可用性,分布式是它的必要条件。
    legiorange
        18
    legiorange  
       2020-04-07 17:48:43 +08:00
    服务治理基本上是去中心化,说白了也就是多中心,单一职责。

    通过运维框架监控这些中心,横向纵向拓展,多模式发布,你这个肯定就解决了。

    另外区块链这一套明显不适用绝大多数场景,节点多了,每个节点需要同步,压力很大。
    also24
        19
    also24  
       2020-04-07 17:51:09 +08:00 via Android
    楼主可以了解一下 CAP 原则
    GrayXu
        20
    GrayXu  
       2020-04-07 18:00:49 +08:00
    可以重新选举呀,本质上就实现了无需指定中心的目的
    HunterPan
        21
    HunterPan  
       2020-04-07 18:03:07 +08:00
    现在大公司几乎都是多中心 主主互备
    ArJun
        22
    ArJun  
       2020-04-07 18:07:12 +08:00
    区块链吧
    wangkun025
        23
    wangkun025  
       2020-04-07 18:09:48 +08:00
    我一直觉得比特币就是。
    silenzio
        24
    silenzio  
       2020-04-07 19:02:54 +08:00
    正好在做 p2p 网络, 说下个人理解

    首先要明确"去中心"要去到什么程度
    100 个节点组成的网络, 只有一个调度服务器, 它挂了, 网络瘫痪, 那这个调度服务器就是中心, 就没有实现去中心化
    如果有 5 台调度服务器, 占了整个网络的 5%, 它就不再是中心了, 也就是去中心化
    5 台调度服务器, 用 etcd (k8s)做主备
    数据库, 自带主备
    网关, 前面有 nginx, nginx 自带
    p2p 网络, 跟调度服务器一样, 100 个节点的网络配置 5 个种子节点, 去中心化

    你说万一 5 个都挂了怎么办?
    第一 配置看门狗尝试自动恢复
    第二 5 个节点都挂了 运维都没反应过来 可以开除了好吧
    victor97
        25
    victor97  
       2020-04-07 19:15:39 +08:00 via Android
    核心也是去中心化的,也就是分布式的一致性服务 /协议。例如 etcd,zookeeper
    andylsr
        26
    andylsr  
       2020-04-07 19:27:14 +08:00 via Android
    完全去中心并不是不行,只是网络数据同步会产生数据洪流,然后就变成可用性和一致性的取舍问题,cassandra 是个好东西
    lty1993
        27
    lty1993  
       2020-04-07 19:32:26 +08:00
    @opengps 网络负载均衡可以 Anycast,不过端到端的 HA 实现成本还是太高了,根据实际业务需要去决定到底怎么实现吧
    vindurriel
        28
    vindurriel  
       2020-04-07 21:01:20 +08:00 via iPhone
    调度中心本身可以多活 基于 raft 等协议 参考 zookeeper 和 etcd 的实现 不过这样的系统很慢 CAP 原则里选了 C 而不是 A
    twl007
        29
    twl007  
       2020-04-07 21:02:46 +08:00 via iPhone
    Ceph 设计去中心化的 但是你看看 trade off 我并不觉得某些场景下去中心化是个好选择
    mumbler
        30
    mumbler  
       2020-04-07 21:14:21 +08:00 via Android
    中心化是为了效率,比特币就完全去中心化,每小时全球最多交易 90 个,银行体系则无上限
    zhchyu999
        31
    zhchyu999  
       2020-04-08 09:26:07 +08:00
    分布式和一致性是两个方向啊
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5103 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 08:17 PVG 16:17 LAX 00:17 JFK 03:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86