继上次的“最终一致性“,我又来钻牛角尖了,总纠结于名词。
通常业务开发人员接触到分布式,网上的文章都是从单体架构演变为分布式来讲的,主要是业务上的拆分,感觉称之为分布式服务、微服务更恰当。
而还有分布式系统,例如分布式数据库,zk es,中间还有个分布式选主的问题。
是不是应该称前面为分布式服务,后面的为分布式系统,两者的“分布式“不一样呢?后者才是真正的分布式?
1
lhx2008 2020-04-30 12:20:46 +08:00 3
分布式只是是一种抽象,是说一个个节点之间的协作。比如公司里面有 100 个员工在做同一个项目,也可以叫分布式
系统架构的分布式,比如说微服务,解决的问题怎么统筹好各个功能组件之间的关系 单个组件内的分布式,比如说数据库,zk,es,解决的问题怎么统筹好主从节点之间的关系 |
2
opengps 2020-04-30 12:30:46 +08:00 via Android 4
你要区分的是,分布式和集群的概念~
分布式是纵向的,不同业务,不同层级的拆分,离谱登录服务,订单服务,数据库服务 集群是横向的,比如订单服务用了 10 台服务器或者虚拟机或者站点或者进程,做的是同一个服务 |
3
ybonfire 2020-04-30 12:35:53 +08:00 2
你说的将一个大的功能拆分成多个小功能这种业务上的拆分是横向上的拆分。但是一个小功能(服务)也可以有多个结点,用网关进行负载均衡。 这样也是分布式系统啊。
|
4
yeqizhang OP @ybonfire 你和楼上说的有冲突。我觉得你说的的一个小功能多个节点,更像是集群,当然你说的可能是进一步的拆分服务拆分更多小功能。
|
5
yeqizhang OP @opengps 那就是像 zk es 从外部来看称为集群更恰当(当然其实就是分布式数据库)?
|
6
littlewing 2020-04-30 13:11:12 +08:00 2
业务上所说的分布式就是把服务拆分,做负载均衡这样,大多是无状态服务
存储层面所说的分布式系统,比如分布式数据库,是基于 CAP 理论的,使用 Paxos 、raft 等一致性协议实现的,和业务上所有的分布式不一样 |
7
opengps 2020-04-30 13:18:30 +08:00 1
@yeqizhang 不用太纠结,很多广义定义,用分布式来表示分布式集群的概念
这个话题之前我啰嗦过几句 https://www.opengps.cn/Blog/View.aspx?id=413&from=v2ex |
8
yeqizhang OP @opengps 链接里面只是解释分布式和集群吧,集群也是比较像是分布式的,如果有些并发修改也是要搞分布式锁吧?之前我也到碰到集群的架构,只是简单的查询功能,最大的问题是用户 session 共享的问题。
|
10
shylockhg 2020-04-30 13:46:45 +08:00 2
shard
replica |
11
Jooooooooo 2020-04-30 14:04:35 +08:00 1
不要纠结假大空的名词, 说具体的场景和问题
|
12
yeqizhang OP @Jooooooooo OK,这个确实没问题。我一开始接触分布式这块在网上看到“分布式事务锁”这个名词,这个就太坑了,明明分布式事务和分布式锁是两个东西……
|
13
lenqu 2020-04-30 15:15:43 +08:00 1
思考一下目的,就知道意义
分布式是为了解决什么样的需求而产生呢? |
14
guyeu 2020-04-30 15:26:23 +08:00
分布式和分布式不一样嘛
架构和架构不一样嘛 人和人不一样嘛 有啥不一样 |
15
Chinsung 2020-04-30 18:02:12 +08:00 2
广义的来说,分布式你可以认为就是利用大量机器,处理问题,完成任务。
不论是垂直水平,即所谓的拆业务和集群,本质是一样的。 然后分布式就是要处理,多台机器之间协同工作会发生的问题。 大多数时候对面的,都是一致性问题的取舍,分布式锁,中心,负载均衡。 至于你所谓的分布式数据库,分布式缓存,分布式文件系统,其实大家都是一样的,本质和目的都相同,只是面向的领域不同,人家面向计算机资源管理和计算,你面向业务 crud 。 |