5分钟搞懂分布式基础概念

01.分布式基础概念

1、微服务

拒绝大型单体应用,基于业务边界进行服务微化拆分,各个服务独立部署运行

2、集群、分布式、节点

集群

  • 是一种物理形态
  • 将几台服务器集中在一起,实现同一业务

分布式

  • 是一种工作方式
  • 若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统
  • 将不同的业务分布在不同的地方

节点

  • 集群中的一个服务器

3、远程调用

分布式系统中,各个服务可能处于不同主机,但是服务之间不可避免的需要互相调用,我们称为远程调用。

SpringCloud中使用HTTP+JSON的方式完成远程调用。

4、负载均衡

A服务调用B服务,B服务部署在多台机器,A发送请求到任意一个服务器均可完成调用。

为了使每台服务器不至于忙于处理请求,可以将请求均衡到每一个服务器,提升网站的可用性。

负载均衡算法:

  • 轮询:请求依次按顺序分发到不同的可用服务器执行,循环分发请求。
  • 最小连接:分发请求到连接数最少的服务器。场景:处理请求用时较长的场景。
  • 散列:根据用户请求的IP地址的散列(hash)来选择要转发的服务器。场景:需要处理状态而要求用户能连接到相同服务器。

5、服务注册、服务发现、注册中心

A服务调用B服务、C服务,但是A服务不知道B、C服务所在的服务器是正常还是下线,注册中心可以帮助解决。

注册中心实时知道哪些服务正常,哪些服务下线,也能记录新增的正常服务。服务之间调用不需要去判断哪些服务正常,注册中心会告诉服务有效的调用地址。

服务注册:服务将自己的IP和端口报告给注册中心的过程。

服务发现:查询可用微服务列表及其网络地址的机制。

注册中心:集中记录每个服务的地址,注册和注销服务。

服务检查:检查已注册的服务,如发现某服务长时间无法访问,则会从注册中心移除该服务。

6、配置中心

每个服务都有大量配置,更新一个配置,需要同步到每个服务,如何修改每个服务的配置呢?

每个服务从配置中心获取配置,自动更新自己的配置。

7、服务熔断、服务降级

下单场景:用户下单了一个商品,客户端调用订单服务来生成预付款订单,订单服务调用商品服务查看下单的哪款商品,商品服务调用库存服务判断这款商品是否有库存,如有库存,则可以生成预付款订单。

雪崩场景:

  • 第一次滚雪球:库存服务不可用(如响应超时等),库存服务收到的很多请求都未处理完,库存服务将无法处理更多请求。
  • 第二次滚雪球:因商品服务的请求都在等库存服务返回结果,导致商品服务调用库存服务的很多请求未处理完,商品服务将无法处理其他请求,导致商品服务不可用
  • 第三次滚雪球:因商品服务不可用,订单服务调用商品服务的的其他请求无法处理,导致订单服务不可用。
  • 第四次滚雪球:因订单服务不可用,客户端将不能下单,更多客户将重试下单,将导致更多下单请求不可用。

服务熔断:

设置服务的超时,当被调用的服务某段时间内失败率达到某个阈值,则对该服务开启短路保护,后来的请求不调用这个服务,直接返回默认的数据。

服务降级:

对非核心业务降级运行:某些服务不处理,或者简单处理(抛异常、返回Null、返回Mock数据)

8、API网关

  • 抽象了微服务中都需要的公共功能
  • 提供了负载均衡、自动熔断、灰度发布、统一认证、限流、日志统计功能

公众号

原文地址:https://www.cnblogs.com/jackson0714/p/12651156.html

时间: 2024-08-08 03:50:16

5分钟搞懂分布式基础概念的相关文章

01. SpringCloud实战项目-五分钟搞懂分布式基础概念

SpringCloud实战项目全套学习教程连载中 PassJava 学习教程 简介 PassJava-Learning项目是PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. PassJava 是一款Java面试刷题的开源系统,可以用零碎时间利用小程序查看常见面试题,夯实Java基础. PassJava 项目可以教会你如何搭建SpringBoot项目,Spring Cloud项目 采用流行的技术,如 SpringBoot.MyBatis.Redis. MySql. Mon

一分钟搞懂 分布式与集群

小饭店原来只有一个厨师,切菜洗菜备料炒菜全干. 后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,两个厨师的关系是集群. 为了让厨师专心炒菜,把菜做到极致,再请了个配菜师负责切菜,备菜,备料 ...  厨师和配菜师的关系是分布式. 一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群. 一个配菜师因故请假了,但是其余的配菜师还是该啥就干啥,只是没请假的配菜师任务均匀的加量了,但他们的任务和职责是不变的,这是集群. 集群:多个人在一起作同样的事 . 分布式 :多个人

搞懂分布式技术7:负载均衡概念与主流方案

搞懂分布式技术7:负载均衡概念与主流方案 负载均衡的原理 原创: 刘欣 码农翻身 4月23日 这是1998年一个普通的上午. 一上班,老板就把张大胖叫进了办公室,一边舒服地喝茶一边发难:"大胖啊,我们公司开发的这个网站,现在怎么越来越慢了? " 还好张大胖也注意到了这个问题,他早有准备,一脸无奈地说: "唉,我昨天检查了一下系统,现在的访问量已经越来越大了,无论是CPU,还是硬盘.内存都不堪重负了,高峰期的响应速度越来越慢." 顿了一下,他试探地问道:"老

搞懂分布式技术1:分布式系统的一些基本概念

搞懂分布式技术1:分布式系统的一些基本概念 1.分布式 小明的公司又3个系统:系统A,系统B和系统C,这三个系统所做的业务不同,被部署在3个独立的机器上运行,他们之间互相调用(当然是跨域网络的),通力合作完成公司的业务流程. 将不同的业务分部在不同的地方,就构成了一个分布式的系统,现在问题来了,系统A是整个分布式系统的脸面,用户直接访问,用户访问量大的时候要么是速度巨慢,要么直接挂掉,怎么办? 由于系统A只有一份,所以会引起单点失败... 2.集群(Cluster) 小明的公司不差钱,就多买几台

搞懂分布式技术13:缓存的那些事

搞懂分布式技术13:缓存的那些事 缓存和它的那些淘汰算法们 为什么我们需要缓存? 很久很久以前,在还没有缓存的时候--用户经常是去请求一个对象,而这个对象是从数据库去取,然后,这个对象变得越来越大,这个用户每次的请求时间也越来越长了,这也把数据库弄得很痛苦,他无时不刻不在工作.所以,这个事情就把用户和数据库弄得很生气,接着就有可能发生下面两件事情: 1.用户很烦,在抱怨,甚至不去用这个应用了(这是大多数情况下都会发生的) 2.数据库为打包回家,离开这个应用,然后,就出现了大麻烦(没地方去存储数据

搞懂分布式技术20:消息队列因何而生

搞懂分布式技术20:消息队列因何而生 消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之一. 当今市面上有很多主流的消息中间件,如老牌的ActiveMQ.RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify.MetaQ.RocketMQ等. 本文不会一一介绍这些消息队列的所有特性,而是探讨一下自主开发设计一个消息队列时,你需要思考和设计的重要方面.过程中我们会参考这些成熟消息队列的很多重

搞懂分布式技术17,18:分布式事务总结

搞懂分布式技术17:浅析分布式事务 众所周知,数据库能实现本地事务,也就是在同一个数据库中,你可以允许一组操作要么全都正确执行,要么全都不执行.这里特别强调了本地事务,也就是目前的数据库只能支持同一个数据库中的事务.但现在的系统往往采用微服务架构,业务系统拥有独立的数据库,因此就出现了跨多个数据库的事务需求,这种事务即为"分布式事务".那么在目前数据库不支持跨库事务的情况下,我们应该如何实现分布式事务呢?本文首先会为大家梳理分布式事务的基本概念和理论基础,然后介绍几种目前常用的分布式事

搞懂分布式技术10:LVS实现负载均衡的原理与实践

搞懂分布式技术10:LVS实现负载均衡的原理与实践 浅析负载均衡及LVS实现 原创: fireflyc 写程序的康德 2017-09-19 负载均衡 负载均衡(Load Balance,缩写LB)是一种网络技术,它在多个备选资源中做资源分配,以达到选择最优.这里有三个关键字: 网络技术,LB要解决的问题本质上是网络的问题,所以它实际上就是通过修改数据包中MAC地址.IP地址字段来实现数据包的"中转": 资源,这里的资源不仅仅是计算机也可以是交换机.存储设备等: 最优,它则是针对业务而言

搞懂分布式技术2:分布式一致性协议与Paxos,Raft算法

搞懂分布式技术2:分布式一致性协议与Paxos,Raft算法 2PC 由于BASE理论需要在一致性和可用性方面做出权衡,因此涌现了很多关于一致性的算法和协议.其中比较著名的有二阶提交协议(2 Phase Commitment Protocol),三阶提交协议(3 Phase Commitment Protocol)和Paxos算法. 本文要介绍的2PC协议,分为两个阶段提交一个事务.并通过协调者和各个参与者的配合,实现分布式一致性. 两个阶段事务提交协议,由协调者和参与者共同完成. 角色 XA概