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

2020-04-07 12:29:40 +08:00
 liudaqi
现在的分布式存储、分布式计算,其实都还有一个调度中心、注册中心这样的机制在协调所有的节点,状态监控等等。

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

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

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

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

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

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

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

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

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

另外区块链这一套明显不适用绝大多数场景,节点多了,每个节点需要同步,压力很大。
also24
2020-04-07 17:51:09 +08:00
楼主可以了解一下 CAP 原则
GrayXu
2020-04-07 18:00:49 +08:00
可以重新选举呀,本质上就实现了无需指定中心的目的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/660055

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX