什么是分布式?——分布式的基本概念

news2024/11/15 10:31:07

目录

1、微服务

2、集群&分布式&节点

3、远程调用

4、负载均衡

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

6、配置中心

7、服务熔断&服务降级

8、API 网关


1、微服务

微服务架构风格,就像是把一个 单独的应用程序 开发为 一套小服务 ,每个 小服务 运行在 进程 中,并使用轻量级机制通信,通常是 HTTP API 。这些服务围绕业务能力来构建,并通过完全自动化部署机制来独立部署。这些服务使用不同的编程语言书写,以及不同数据存储技术,并保持最低限度的集中式管理。
简而言之:拒绝大型单体应用,基于业务边界进行服务微化拆分,各个服务独立部署运行。

2、集群&分布式&节点

集群是个物理形态,分布式是个工作方式。
只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道;
《分布式系统原理与范型》定义:
“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”
分布式系统(distributed system)是建立在网络之上的软件系统。
分布式是指将不同的业务分布在不同的地方
集群指的是将几台服务器集中在一起,实现同一业务
例如: 京东是一个分布式系统,众多业务运行在不同的机器 ,所有业务构成一个大型的 务集群 。每一个小的业务,比如用户系统,访问压力大的时候一台服务器是不够的。我们就应该将用户系统部署到多个服务器,也就是每一个业务系统也可以做集群化
分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。
节点:集群中的一个服务器

3、远程调用

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

4负载均衡

分布式系统中, A 服务需要调用 B 服务, B 服务在多台机器中都存在, A 调用任意一个服务器均可完成功能。
为了使每一个服务器都不要太忙或者太闲,我们可以负载均衡的调用每一个服务器,提升网站的健壮性。
常见的负载均衡算法:
轮询: 为第一个请求选择健康池中的第一个后端服务器,然后按顺序往后依次选择,直到最后一个,然后循环。
最小连接: 优先选择连接数最少,也就是压力最小的后端服务器,在会话较长的情况下可以考虑采取这种方式。
散列: 根据请求源的 IP 的散列(hash)来选择要转发的服务器。这种方式可以一定程度上保证特定用户能连接到相同的服务器。如果你的应用需要处理状态而要求用户能连接到和之前相同的服务器,可以考虑采取这种方式。

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

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

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

6、配置中心

每一个服务最终都有大量的配置,并且每个服务都可能部署在多台机器上。我们经常需要变更配置,我们可以让每个服务在配置中心获取自己的配置。
配置中心用来集中管理微服务的配置信息

7、服务熔断&服务降级

在微服务架构中,微服务之间通过网络进行通信,存在相互依赖,当其中一个服务不可用时,有可能会造成雪崩效应。要防止这样的情况,必须要有容错机制来保护服务。
1)、服务熔断
  • 设置服务的超时,当被调用的服务经常失败到达某个阈值,我们可以开启断路保护机制,后来的请求不再去调用这个服务。本地直接返回默认的数据
2)、服务降级
  • 在运维期间,当系统处于高峰期,系统资源紧张,我们可以让非核心业务降级运行。降级:某些服务不处理,或者简单处理【抛异常、返回 NULL、调用 Mock 数据、调用 Fallback 处理逻辑】。

8API 网关

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/740115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于springboot+Redis的前后端分离项目(七)-【黑马点评】

🎁🎁资源文件分享 链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwdeh11 提取码:eh11 发布笔记,点赞,点赞排行 达人探店1、达人探店-发布探店笔记2、 达人探店-查看探店笔记3、 达人探店-点赞功…

dvwa靶场通关(八)

第八关:SQL Injection (Blind) low 这一关是盲注, 所以不能用联合查询了,只能靠一点一点手动盲猜了 这里用到length和substr函数 先猜数据库名长度 1 and length(database())1# 用bp抓包,发送到爆破 选择攻击位置 库名长度应该…

ModaHub魔搭社区:向量数据库Zilliz Cloud向量搜索和查询教程(二)

目录 批量搜索 基于条件搜索 查询 批量搜索 Zilliz Cloud 支持在单个请求中同时指定多个查询向量来进行批量搜索。大多数情况下,批量搜索比单向量搜索效率更高,因为批量搜索的总延时会比逐一执行单向量搜索的累计延时要低。 您可以迭代数据集中的行,并以行为单位发送…

【UGUI学习笔记】Canvas

文章目录 组件介绍CanvasRender ModeOverlayCameraWorld Space Canvas ScalerReference Pixels Per UnitUI Scale ModeGraphic RaycasterBlocking Object Canvas Grope UGUI2.0官方文档 一些基础对应控件的Attribute的含义: Canvas相当于Android的Panel,…

二十二、数据运算

目录 一、算术运算 二、比较运算 三、汇总运算 1、count非空值计数 2、sum求和 3、mean求均值 4、max求最大值 5、min求最小值 6、median求中位数 7、mode求众数 8、var求方差 9、std求标准差 10、quantile求分位数 四、相关性运算 一、算术运算 算术运算就是基本…

Boundless Hackathon @Stanford 主题黑客松活动闭幕,一文回顾

由 Stanford Blockchain Accelerator、Zebec Protocol、 Nautilus Chain、Rootz Lab 共同主办了“ Boundless Hackathon Stanford ” 主题的黑客松活动在 7 月 1 日正式落下帷幕。 本次黑客松活动旨在帮助更多的优质开发者参与到 Web3 世界的发展中,以推动链上设施的…

【优选算法题练习】day3

文章目录 一、15. 三数之和1.题目简介2.解题思路3.代码4.运行结果 二、18. 四数之和1.题目简介2.解题思路3.代码4.运行结果 三、209. 长度最小的子数组1.题目简介2.解题思路3.代码4.运行结果 总结 一、15. 三数之和 1.题目简介 15. 三数之和 给你一个整数数组 nums &#xff…

Python---文件与文件夹操作(你想了解的基本都在这)

前言: 计算机操作系统是以文件为单位对数据进行管理的。文件是指存储在某种介质上的数据集合。文件在存储介质上的位置是由驱动器名称、文件夹以及文件名来定位的。Python具有强大的文件处理功能,如文件的创建、打开、文件内容的写入、读出文件中的内容…

初级嵌入式软件工程师养成记(学习路线+学习资源+实战项目汇总)

我的圈子: 高级工程师聚集地 我是董哥,高级嵌入式软件开发工程师,从事嵌入式Linux驱动开发和系统开发,曾就职于世界500强企业! 创作理念:专注分享高质量嵌入式文章,让大家读有所得! …

【Nginx07】Nginx学习:HTTP核心模块(四)错误页面与跳转

Nginx学习:HTTP核心模块(四)错误页面与跳转 最最核心的部分学习完了,但其实还有更多的内容要等待着我们探索。今天我们先来看到的就是关于错误页面的设置以及 301、302 跳转相关的内容。这两块内容都有一个特点,那就是…

基于51单片机+SHT30设计的环境温度与湿度检测设备(IIC模拟时序)

一、项目介绍 当前文章介绍基于51单片机和SHT30传感器设计的环境温度与湿度检测设备。设备采用IIC模拟时序通信协议,能够实时监测环境的温度和湿度,并将数据通过LCD显示屏显示出来;可以广泛应用于室内环境监测、气象观测、农业温室监测等领域…

路径规划算法:基于白冠鸡优化的路径规划算法- 附代码

路径规划算法:基于白冠鸡优化的路径规划算法- 附代码 文章目录 路径规划算法:基于白冠鸡优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法…

leetcode 74. 搜索二维矩阵(java)

搜索二维矩阵 leetcode 74. 搜索二维矩阵题目描述抽象BST代码演示 抽象BST leetcode 74. 搜索二维矩阵 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/search-a-2d-matrix 题目描述 给你一个满足下述两条属性的 m x n 整…

033、TiDB特性_AUTO_INCREMENT

自增列 实现原理使用限制相关参数示例 实现原理 每一个自增列使用一个全局可见的键值对用于记录当前已分配的最大ID为了降低分布式系统分配自增ID的网络开销,每个TiDB节点会缓存一个不重复的ID段当前预分配的ID段使用完毕,或重启,都会重新再…

【数据结构导论】第 6 章:查找

目录 一、基本概念 二、静态查找表 (1)顺序表上的查找 —— 顺序查找 ① 过程 ② 算法 ③ 算法分析 (2)有序表上的查找 —— 二分查找 ① 二分查找思想 ② 二分查找过程 ③ 二分查找算法 ④ 示例 ⑤ 算法分析 &#…

CentOS系统内核升级(在线 离线)

centos7.x默认内核版本3.10.x,在安装docker时,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。所以建议大家升级到最新的稳定内核版本。 在线升级 1. 查看当前内核版本 uname -sr Linux 3.10…

python脚本编译成exe方式进行交付

Python自动化办公越来越方便,我们经常也会利用python来写一些自动化的小脚本,例如批量处理文档,自动发送邮件等等。 也许是平时吹得牛比较多,有一天秦医生就问起我说能不能给她写一个自动化处理生信数据的小脚本。 这当然是毫无问…

Stable Diffusion - 扩展插件 (Extensions) 功能的配置与使用

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131576762 Prompt: (masterpiece, top quality, best quality, ((standing in centre)), ((1girl, black hair)), ((upper body, symmetrical com…

视频无损放大修复工具:Topaz Video AI对Mac和Windows的系统要求

Topaz Video AI是一款基于人工智能技术的视频增强软件,旨在提供高质量的视频修复、增强和转换功能。它可以通过智能算法和图像处理技术,改善视频的清晰度、稳定性、降噪效果,还能进行视频转码和格式转换。 Mac:Topaz Video AI fo…

[pyqt5]designer设计界面设计工具栏上图标和文字同时显示

打开设计师界面 右侧先选择toolBar然后去属性找到toolButtonStyle设置对应选项即可。