分布式基础概念

这篇具有很好参考价值的文章主要介绍了分布式基础概念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 微服务

微服务架构风格,就是把一个单体架构按照业务拆分成多个服务模块,每个模块之间独立部署运行、互不影响,并使用轻量级机制通信,通常是 HTTP API。

2. 集群&分布式&节点

集群是个物理形态,分布式是个工作方式。
只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道;

《分布式系统原理与泛型》定义:

“分布式系统是若干独立计算机的集合, 这些计算机对于用户来说就像单个相关系统”,分布式系统(distributed system)是建立在网络之上的软件系统。

分布式是指不同的业务分布在不同的地方。
集群指的是将几台服务器集中在一起,实现同一业务。

例如:京东是一个分布式系统,众多业务运行在不同的机器,所有业务构成一个大型的业务集群。每个小的业务,比如用户系统,访问压力大的时候一台服务器是不够的。我们就应该将用户系统部署到多个服务器,也就是每个业务系统也可以做集群化。用户会感觉他是在使用一个系统,而不是在使用一堆计算机。

分布式中的每一个节点(节点:集群中的一个服务器),都可以做集群。而集群并不一定是分布式的。

3. 远程调用

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

SpringCloud 中使用 HTTP+JSON 的方式完成远程调用,因为HTTP 和 JSON 天然地支持跨平台。

分布式基础概念

4. 负载均衡

负载均衡的意思是,A服务发送请求给B服务,B服务为了保证集群中的每个机器能够处理的请求数量尽可能均匀一些,从而做出的一些操作,就是负载均衡算法。

常见的负载均衡算法:

  • 轮询:第一个请求选择交给连接池中第一个后端服务器去处理,然后依次往后选择,直到最后一个,然后循环。
  • 最小连接:优先选择连接数最少,也就是压力最小的服务器,在会话比较长的情况下,可以考虑采取这种方式。
  • s散列:根据请求源的 IP地址 的散列(hash)来选择要转发的服务器。同一个IP地址(即同一个用户)的请求,都会被传到相同的服务器。如果你的应用需要处理状态而要求用户能连接到和之前相同的服务器,可以考虑采用这种方式。

5. 服务注册/发现&注册中心

A服务调用B服务,A服务并不知道当前在哪几台服务器上有B服务,哪些服务器是正常的,哪些服务器是下线的。解决这个问题可以引入注册中心:

分布式基础概念

如果某些服务下线,我们其他人可以实时地感知到其他服务的状态,从而避免不可用的服务。

6. 配置中心

每一个服务最终都有大量的配置,并且每个服务都可能部署在多台机器上。但是我们经常需要变更配置,所以可以设计一个配置中心,让服务器自动去配置中心获取自己的配置。

分布式基础概念

7. 服务熔断&服务降级

在微服务架构中,微服务之间通过网络进行通信,存在相互依赖,当其中一个服务不可用时,有可能连锁效应地造成所有的服务都不可用,从而造成雪崩效应。要防止这样的情况,必须要有容错机制来保护服务。

分布式基础概念

1)服务熔断
a. 设置服务的超时,当被调用的服务经常失败到达某个阈值,我们可以开启断路保护机制,后面的请求不再去调用这个服务。本地直接返回默认的数据。
2)服务降级
b. 在运维期间,当系统处于高峰期,系统资源紧张,我们可以让非核心业务降级运行,比如:双十一的时候,会让非核心业务降级,将腾出来的其服务器资源用到更重要的地方。降级:某些服务不处理,或者简单处理(抛异常、返回NULL、调用Mock数据、调用 Fallback 处理逻辑)

8. API网关

API Gateway 抽象了微服务中都需要的公共功能,同时提供了客户端负载均衡、服务自动熔断、灰度发布、统一认证、限流流控、日志统计等丰富的功能,帮助我们解决很多 API 管理难题。

本项目是采用前后端分离,需要通过 HTTP 进行通信,当请求从客户端发送到服务器的期间,HTTP请求会先经过网关,这个网关就相当于安检入口,检查请求是否合法,如果合法,就可以放行。当请求量暴增的时候,网关也能够让请求以恒定速度放行。文章来源地址https://www.toymoban.com/news/detail-467442.html

分布式基础概念

到了这里,关于分布式基础概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 二、Hadoop分布式系统基础架构

            分布式体系中,会存在众多服务器,会造成混乱等情况。那如何让众多服务器一起工作,高效且不出现问题呢? 在大数据体系中,分布式的调度主要有2类架构模式: ~去中心化模式 ~中心化模式         没有明确的中心,众多服务器之间基于特定的规则进行同步

    2024年02月05日
    浏览(31)
  • 聊聊分布式架构01——http通信基础

    目录 web通信的简单结构 网络通信基础TCP/IP TCP/IP 通信传输流 HTTP中的三剑客 负责传输的IP协议 确保可靠性的TCP协议 SYN攻击(SYN Flood Attack) 四次挥手 负责域名解析的DNS服务 基于 TCP 协议实现通信 TCP 协议的通信过程 Web通信的简单结构 Web 使用一种名为 HTTP(HyperText Transfer Pr

    2024年02月07日
    浏览(26)
  • 分布式事务 --- 理论基础、Seata架构、部署

    本地事务,也就是传统的 单机事务 。在传统数据库事务中,必须要满足四个原则:    分布式事务 ,就是指不是在单个服务或单个数据库架构下,产生的事务,例如: 跨数据源的分布式事务 跨服务的分布式事务 综合情况    在数据库水平拆分、服务垂直拆分之后,一个业

    2024年02月02日
    浏览(30)
  • pytorch 分布式 Node/Worker/Rank等基础概念

    分布式训练相关基本参数的概念如下: Definitions Node  - A physical instance or a container; maps to the unit that the job manager works with. Worker  - A worker in the context of distributed training. WorkerGroup  - The set of workers that execute the same function (e.g. trainers). LocalWorkerGroup  - A subset of the workers in the worker g

    2024年02月02日
    浏览(32)
  • 单体架构 微服务架构 分布式 微服务通信方式 网关与nginx

    单体架构 优点:架构简单,维护成本低 缺点:各个模块耦合度太高,当对一个模块进行更新修改时,会影响到其他模块,要一起进行修改。当存在性能瓶颈的时候,需要对整个服务进行扩容,不能有针对性的扩容,如一个程序的主要功能时其中某个服务,要对其增加机器,

    2024年02月10日
    浏览(34)
  • 9.4. 分布式与微服务架构

    在本章节中,我们将介绍分布式系统和微服务架构的基本概念。分布式系统解决了单体应用面临的可扩展性、高可用性等问题,而微服务架构进一步提升了系统的可维护性和灵活性。 9.4.1. 分布式系统基本概念 分布式系统是由多个独立的计算节点组成的系统,这些节点通过网

    2024年02月08日
    浏览(32)
  • 一文轻松读懂微服务、集群、分布式的概念和区别

    微服务:  它是Martin Fowler在2014年首次提出的一个概念,微服务是一种架构风格,可以说是一种处理问题的思想,通过这种思想可以将原来一个复杂的系统拆分成多个子系统,多个子系统之间是相互独立的,有自己独立的进程,可以单独部署,每个子系统(微服务)都只关注实现自己的业务

    2024年04月28日
    浏览(19)
  • 微服务【分布式架构&认识微服务&SpringCloud】第1章

    目录 1,认识微服务 1.1,单体架构 1.2,分布式架构 1.3,微服务 1.4,SpringCloud 1.5,总结 💂 个人主页:  爱吃豆的土豆 🤟 版权:  本文由【爱吃豆的土豆】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助、 欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 🏆 人

    2023年04月08日
    浏览(27)
  • 微服务架构学习与思考(13):分布式配置中心

    微服务架构系列文章集合:https://www.cnblogs.com/jiujuan/p/17307285.html 用编程语言编写应用项目时,一般都会有项目的配置文件。比如用 java 编写项目,有一个 properties 的配置文件,会把一些配置信息写入到该文本文件中,例如数据库相关的配置信息。 这也体现了软件设计的一个原

    2024年02月06日
    浏览(31)
  • 分布式、服务化的ERP系统架构设计

    ERP 之痛        曾几何时,我混迹于电商、珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP)。作为一个ERP系统,系统主要功能模块无非是订单管理、商品管理、生产采购、仓库管理、物流管理、财务管理等等。作为一个管理系统,大家的一般开发习惯就是使用

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包