分布式集群

集中式(centralization):
是指由一台主计算机组成中心节点,数据集中存储在这个中心节点中,并且整个系统的所有业务单元都集中部署在这个中心节点上,系统所有功能均有其集中处理。
集中式系统最大特点就是部署结构简单,集中式系统往往基于底层性能卓越的大型主机,因此无需考虑如何对服务进行多个节点的部署,也就不用考虑多个节点之间的分布式协作问题。

集群(cluster):
是指在多台不同的服务器中部署相同应用或服务模块,构成一个集群,通过负载均衡设备对外提供服务。

分布式(distributed):
是指在多台不同的服务器中部署不同的服务模块,通过远程调用协同工作,对外提供服务。

阿里Dubbo/HSF
京东JSF
新浪微博Motan
当当网DubboX

dubbo+zookeeper RPC
cloud:eureke+zuul+feign RESTFul

SOA:面向服务(WebService 微服务)
Springcloud: restful风格

Eureka:服务注册发现
Ribbon:客户端RestTemplate负载均衡,默认轮询
Feign:面向接口(类似WebService),客户端负载均衡
Hystrix:服务器熔断、降级
Hystrixdashboard:服务监控(先要访问下被监控服务)
Admin:监控
Zuul:网关
Config:配置中心

我们到一家小饭店,开始点菜:红烧鱼、糖醋排骨、酸辣土豆丝,现在,我们和这家饭店之间的就是用户和系统的关系。我们要求他给我们做出一顿丰盛的晚餐。我们不关心他后厨的一切事情。只要它能在短时间内提供美味的菜品就好了。

上面,我们对这个饭店提出来两个要求:上菜时间短、菜品美味。除了这些,顾客可能还有其他要求,比如菜品要干净卫生、酸辣土豆丝可以多放些辣椒等。

映射到计算机系统中,用户提出的要求就是:

上菜时间短 -> 性能
干净卫生 -> 安全性
菜品多放辣椒 -> 扩展性
菜品美味 -> 可用性

上面说的这家小饭店,只有一个厨师。就是一个集中式系统。

如果饭店内只有我们一个顾客的话,以上几条基本都可以满足的。但是,如果到了晚饭时间,突然顾客变多了,这些顾客的要求可能就没办法全都满足了。

饭店内人满为患,这家小饭店只有一个厨师的情况下,他需要保证所有菜品美味、卫生,又要保证所有菜品可以准时准备好,又要给不同用户满足定制化要求。这种挑战是极大的。

以上,映射到计算机软件中,也是一样的。随着业务量的增长,网站的高可用、易伸缩、可扩展、安全等目标就会受到极大的挑战。

集群部署:

随着饭店的生意越来越好,老板意识到只有一个厨师会存在很大问题。

首先,在客流量高峰期,一个厨师无法满足所有顾客的要求。其次,厨师变成了一个单点,就是他不能生病,一旦他生病了,整个饭店就无法营业了。 所以就可以再雇佣几个厨师就行了。

然后,为了提高饭店的待客能力。老板决定多雇佣几个厨师。

有了多个厨师了之后。店内顾客的点菜,就可以分配给后厨的多个厨师来做。
具体如何分配,这就是需要一定的策略了。可以选择分配给空闲点的厨师、也可以按顺序轮流分配。

虽然,饭店有多个厨师,但是用户并不知道这些事情,他只知道自己的点菜需求,可以得到满足就可以了。他也不需要关心到底是哪位厨师给自己做的菜。除非菜品出现了质量问题时,就需要找到指定的厨师来问责了。

以上,映射到计算机软件中,也是一样的。集中式系统只有一台计算机提供服务,集群就是有多台计算机提供同样的服务。

用户的请求通过负载均衡分配给集群中的各个机器。整个系统对于用户来说就像是一台机器在提供服务一样。

分布式部署:

在饭店雇佣了多个厨师之后,饭店的服务能力确实提升了很多。顾客也越来越多。但是,最近店内经常会有顾客投诉某个菜品的味道和自己之前吃到过的不一样了。
经过老板的仔细调查,发现是由于这家店的厨师除了要负责炒菜以外,还需要负责洗菜、切菜、备菜,甚至是刷碗。这就使得厨师没办法专注于炒菜了,他会被很多其他的琐事而牵绊,导致无法专心炒菜,影响了菜品的质量。
所以继续雇佣几个洗菜工、配菜师、洗碗工不就行了么。

这就是一种分布式的思想。

通过把一件大的事情,拆分成多个小事情,分别交给不同的人来做。

这样术业有专攻,洗菜的可以把菜洗的更干净、厨师也可以专注炒菜,把菜炒的更加美味。

以上,映射到计算机软件中,也是一样的。除了通过集群部署的方式提升系统能力外,还可以通过分布式部署的方式。

把一个大的系统拆分成多个子系统,每个子系统负责自己专注的事情,然后通过网络进行通信和协调,对用户来说,就像访问的是同一台机器一样。

随着饭店的发展,慢慢的从只有一个厨师演变成有多个厨师,进而演变成有洗菜工、配菜师、厨师等多个职位。

这个网站架构发展也类似。网站初期,只需要搭建一个集中式的单体应用就可以了,如果业务量有很大增长,先考虑增加机器,通过集群部署提升能力。接着,就可以考虑分布式了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值