V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yeqizhang
V2EX  ›  程序员

分布式和分布式不一样嘛?

  •  
  •   yeqizhang · 2020-04-30 11:49:20 +08:00 · 3823 次点击
    这是一个创建于 1670 天前的主题,其中的信息可能已经有所发展或是发生改变。

    继上次的“最终一致性“,我又来钻牛角尖了,总纠结于名词。

    通常业务开发人员接触到分布式,网上的文章都是从单体架构演变为分布式来讲的,主要是业务上的拆分,感觉称之为分布式服务、微服务更恰当。

    而还有分布式系统,例如分布式数据库,zk es,中间还有个分布式选主的问题。

    是不是应该称前面为分布式服务,后面的为分布式系统,两者的“分布式“不一样呢?后者才是真正的分布式?

    第 1 条附言  ·  2020-04-30 13:20:03 +08:00
    很开心大家没有喷我的这个问题,我是非科班出身的,有这些个问题主要还是底子太差,之后肯定要系统学学,以及把英文阅读水平提高,多读读国外的文章和 paper……
    16 条回复    2020-04-30 18:34:29 +08:00
    lhx2008
        1
    lhx2008  
       2020-04-30 12:20:46 +08:00   ❤️ 3
    分布式只是是一种抽象,是说一个个节点之间的协作。比如公司里面有 100 个员工在做同一个项目,也可以叫分布式

    系统架构的分布式,比如说微服务,解决的问题怎么统筹好各个功能组件之间的关系

    单个组件内的分布式,比如说数据库,zk,es,解决的问题怎么统筹好主从节点之间的关系
    opengps
        2
    opengps  
       2020-04-30 12:30:46 +08:00 via Android   ❤️ 4
    你要区分的是,分布式和集群的概念~

    分布式是纵向的,不同业务,不同层级的拆分,离谱登录服务,订单服务,数据库服务

    集群是横向的,比如订单服务用了 10 台服务器或者虚拟机或者站点或者进程,做的是同一个服务
    ybonfire
        3
    ybonfire  
       2020-04-30 12:35:53 +08:00   ❤️ 2
    你说的将一个大的功能拆分成多个小功能这种业务上的拆分是横向上的拆分。但是一个小功能(服务)也可以有多个结点,用网关进行负载均衡。 这样也是分布式系统啊。
    yeqizhang
        4
    yeqizhang  
    OP
       2020-04-30 12:54:54 +08:00 via Android
    @ybonfire 你和楼上说的有冲突。我觉得你说的的一个小功能多个节点,更像是集群,当然你说的可能是进一步的拆分服务拆分更多小功能。
    yeqizhang
        5
    yeqizhang  
    OP
       2020-04-30 12:56:07 +08:00 via Android
    @opengps 那就是像 zk es 从外部来看称为集群更恰当(当然其实就是分布式数据库)?
    littlewing
        6
    littlewing  
       2020-04-30 13:11:12 +08:00   ❤️ 2
    业务上所说的分布式就是把服务拆分,做负载均衡这样,大多是无状态服务
    存储层面所说的分布式系统,比如分布式数据库,是基于 CAP 理论的,使用 Paxos 、raft 等一致性协议实现的,和业务上所有的分布式不一样
    opengps
        7
    opengps  
       2020-04-30 13:18:30 +08:00   ❤️ 1
    @yeqizhang 不用太纠结,很多广义定义,用分布式来表示分布式集群的概念
    这个话题之前我啰嗦过几句 https://www.opengps.cn/Blog/View.aspx?id=413&from=v2ex
    yeqizhang
        8
    yeqizhang  
    OP
       2020-04-30 13:26:53 +08:00 via Android
    @opengps 链接里面只是解释分布式和集群吧,集群也是比较像是分布式的,如果有些并发修改也是要搞分布式锁吧?之前我也到碰到集群的架构,只是简单的查询功能,最大的问题是用户 session 共享的问题。
    opengps
        9
    opengps  
       2020-04-30 13:28:07 +08:00
    @yeqizhang 任意组合,对于老站点的集群,则指责混合在一起,用户管理订单管理等等一个站点打包全带
    shylockhg
        10
    shylockhg  
       2020-04-30 13:46:45 +08:00   ❤️ 2
    shard
    replica
    Jooooooooo
        11
    Jooooooooo  
       2020-04-30 14:04:35 +08:00   ❤️ 1
    不要纠结假大空的名词, 说具体的场景和问题
    yeqizhang
        12
    yeqizhang  
    OP
       2020-04-30 14:10:33 +08:00 via Android
    @Jooooooooo OK,这个确实没问题。我一开始接触分布式这块在网上看到“分布式事务锁”这个名词,这个就太坑了,明明分布式事务和分布式锁是两个东西……
    lenqu
        13
    lenqu  
       2020-04-30 15:15:43 +08:00   ❤️ 1
    思考一下目的,就知道意义

    分布式是为了解决什么样的需求而产生呢?
    guyeu
        14
    guyeu  
       2020-04-30 15:26:23 +08:00
    分布式和分布式不一样嘛

    架构和架构不一样嘛

    人和人不一样嘛

    有啥不一样
    Chinsung
        15
    Chinsung  
       2020-04-30 18:02:12 +08:00   ❤️ 2
    广义的来说,分布式你可以认为就是利用大量机器,处理问题,完成任务。
    不论是垂直水平,即所谓的拆业务和集群,本质是一样的。
    然后分布式就是要处理,多台机器之间协同工作会发生的问题。
    大多数时候对面的,都是一致性问题的取舍,分布式锁,中心,负载均衡。
    至于你所谓的分布式数据库,分布式缓存,分布式文件系统,其实大家都是一样的,本质和目的都相同,只是面向的领域不同,人家面向计算机资源管理和计算,你面向业务 crud 。
    yeqizhang
        16
    yeqizhang  
    OP
       2020-04-30 18:34:29 +08:00 via Android   ❤️ 1
    @shylockhg 嗯,shard 针对数据来说的分片。
    一般分布式都是说 distributed
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1082 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:11 · PVG 03:11 · LAX 11:11 · JFK 14:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.