【挑战30天首通《谷粒商城》】-【第一天】03、简介-分布式基础概念

news/2024/5/20 3:51:44

文章目录

  • 课程介绍 ( 本章了解即可,可以略过)
  • 1、微服务
        • 简而言之:
  • 2、集群&分布式&节点
    • 2.1、定义
    • 2.2、示例
  • 3、远程调用
  • 4、负载均衡
        • 常见的负裁均衡算法:
  • 5、服务注册/发现&注册中心
  • 6、配置中心
  • 7、服务熔断&服务降级
        • 7.1、服务熔断
        • 7.2、服务降级
  • 8、API网关
  • one more thing
    • 废话不多说上教程:(动画教程 + 图文教程)
    • 一、动画教程
      • 激活 与 升级(至最新版本)
    • 二、图文教程

课程介绍 ( 本章了解即可,可以略过)

1、微服务
2、集群&分布式&节点
3、远程调用
4、负戟均衡
5、服务注册/发现&注册中心
6、配置中心
7、服务熔断&服务降级
8、API网关

1、微服务

微服务架构风格

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

2、集群&分布式&节点

2.1、定义

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

集群是个物理形态,分布式是个工作方式

只要是一堆机器,就可以叫集群

  • 他们是不是一起协作着干活,这个谁也不知道;《分布式系统原理与范型》定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”分布式系统(distributedsystem)是建立在网络之上的软件系统。

2.2、示例

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

  • 分布式中的每一个节点,都可以做集群
  • 而集群并不一定是分布式

3、远程调用

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

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

在这里插入图片描述

4、负载均衡

分布式系统中,A服务需要调用B服务,B服务在多台机器中都存在,A调用任意一个服务器均可完成功能
为了使每一个服务器都不要太忙或者太闲,我们可以负载均衡的调用每一个服务器,提升网站的健壮性

常见的负裁均衡算法:
  • 轮询 : 为第一个请求选择健康池中的第一个后端服务器,然后按顺序往后依次选择,直到最后一个,然后循环
  • 最小连接 : 优先选择连接数最少,也就是压力最小的后端服务器,在会话较长的情况下可以考虑采取这种方式。
  • 散列 : 根据请求源的IP 的散列(hash)来选择要转发的服务器。这种方式可以一定程度上保证特定用户能连接到相同的服务器。如果你的应用需要处理状态而要求用户能连接到和之前相同的服务器可以考虑采取这种方式

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

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

在这里插入图片描述

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

6、配置中心

配置中心用来集中管理微服务的配置信息

  • 每一个服务最终都有大量的配置
  • 每个服务都可能部署在多台机器上
  • 我们经常需要变更配置

我们可以让每个服务在配置中心获取自己的配置
在这里插入图片描述

7、服务熔断&服务降级

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

在这里插入图片描述

7.1、服务熔断

设置服务的超时,当被调用的服务经常失败到达某个值,我们可以开启断路保护机制后来的请求不再去调用这个服务。本地直接返回默认的数据

7.2、服务降级

在运维期间,当系统处于高峰期,系统资源紧张,我们可以让非核心业务降级运行降级
降级:某些服务不处理,或者简单处理【抛异常、返回 NULL、调用 Mock 数据、调用 Fallback 处理逻辑】。

8、API网关

在微服务架构中,API Gateway作为整体架构的重要组件,

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

  • 丰富的功能,帮助我们解决很多 API管理难题。

在这里插入图片描述

one more thing

程序员的烦恼

  • 为激活编程软件到处找激活码(JetBrains 全家通)
  • 苦于JetBrains 正版授权太贵而放弃
  • 学习资料贵且不成体系而躺平

关注公众号金榜探云手

你可以获得什么?

  1. JetBrains 最新激活码,永久更新(只供娱乐,切勿商用)
    公众号回复:00cs
  2. JetBrains 正版授权,全主题、全插件免费使用,一年一杯咖啡钱, 公众号回复:vip
  3. IT 技术视频共享(国内外全系列,只对粉丝开放)

付费版Idea百科全书,和Pycharm使用百科全书全部输出整理了,这些工具都掌握了对编码效率肯定是有本质上的提升,配合Github Copilot基本能让工具完成大部分开发工作,专注完成业务实现就好。

IDEA付费版使用百科全书
https://ziby0nwxdov.feishu.cn/docx/MiCfdogB4omIa9xlW50cByiGn5n

Pycharm付费版使用百科全书 https://ziby0nwxdov.feishu.cn/docx/DArFdVFQpomfUvxV7xZcCwXYn0c

废话不多说上教程:(动画教程 + 图文教程)

一、动画教程

激活 与 升级(至最新版本)

  • 激活
    请添加图片描述
  • 升级最新版本

请添加图片描述

二、图文教程

  • 点击进入

http://www.mrgr.cn/p/17138338

相关文章

数据库(MySQL)—— DML语句

数据库(MySQL)—— DML语句 什么是DML语句添加数据给全部字段添加数据批量添加数据 修改数据删除数据 什么是DML语句 在MySQL中,DML(Data Manipulation Language,数据操纵语言)语句主要用于对数据库中的数…

MongoDB索引

MongoDB索引 概述 索引支持在MongoDB中高效地执行查询。如果没有索引,MongoDB必须执行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常…

Vue2工程化介绍

Vue2项目[基于vue-cli]工程化 【一】环境搭建06-Vue-cli - 刘清政 - 博客园 (cnblogs.com)安装node 使用npm/cnpm npm换源:npm config set registry https://registry.npmmirror.com 安装vue-cli cnpm install -g @vue/cli# 安装脚手架 cnpm install -g @vue/cli # 切换目录,…

jmeter以命令行模式运行:非GUI界面

* `-n`:表示非GUI模式运行:命令行模式运行jmeter脚本 * `-t`:要执行的jmeter脚本(JMX):a.默认执行当前路径下的脚本,b.或执行指定路径下的脚本 * `-l`:生成结果文件(JTL):a.默认在当前路径下生成JTL文件,b.或在指定路径下生成JTL文件 * `-e`:生成HTML报告 * `-o`…

音视频开发3 视频基础,图片基础

图片像素(Pixel) 一张图片是由多少个 像素 构成的。 例如一张图片是由60x50组成的。 位深度 bit depth RGB表示法 红(Red)、绿(Green)、蓝(Blue) 除了24bit,常见的位深…

【强训笔记】day15

NO.1 代码实现&#xff1a; #include<iostream> #include<cmath>using namespace std; typedef long long ll;int main() {ll x;cin>>x;ll asqrt(x);ll x1a*a,x2(a1)*(a1);if(x-x1<x2-x) cout<<x1<<endl;else cout<<x2<<endl;r…

79. 单词搜索-c++

给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。…

直播产品实习生实习体验报告,笔灵AI生成模版分享

实习体验报告&#xff1a;直播产品实习生 如果有不同的岗位需要写的话可以去笔灵生成一下 网址&#xff1a;https://ibiling.cn/scene/inex?fromcsdnsx 一、实习背景我是XXX&#xff0c;作为一名直播产品实习生&#xff0c;我在XX公司进行了为期X个月的实习。在这段时间里&…

ICode国际青少年编程竞赛- Python-1级训练场-for循环练习

ICode国际青少年编程竞赛- Python-1级训练场-for循环练习 1、 for i in range(3):Dev.step(4)Dev.turnLeft()2、 for i in range(3):Dev.step(2)Dev.turnRight()Dev.step(2)Dev.turnLeft()3、 for i in range(3):Dev.step(2)Dev.turnRight()Dev.step(2)Dev.turnLeft()4、 for…

RocketMQ 事件驱动:云时代的事件驱动有啥不同?

本文深入探讨了云时代 EDA 的新内涵及它在云时代再次流行的主要驱动力,包括技术驱动力和商业驱动力,随后重点介绍了 RocketMQ 5.0 推出的子产品 EventBridge,并通过几个云时代事件驱动的典型案例,进一步叙述了云时代事件驱动的常见场景和最佳实践。前言: 从初代开源消息队…

wangEditor富文本编辑器与layui图片上传

记录&#xff1a;js 显示默认的wangEditor富文本编辑器内容和图片 <style>body {background-color: #ffffff;}.layui-form-select dl{z-index:100000;} </style> <div class"layui-form layuimini-form"><div class"layui-form-item"…

rust将json字符串直接转为map对象或者hashmap对象

有些时候我们还真的不清楚返回的json数据里面到底有哪些数据&#xff0c;数据类型是什么等&#xff0c;这个时候就可以使用批处理的方式将json字符串转为一个对象&#xff0c;然后通过这个对象的get方法来获取json里面的数据。 pub async fn test_json(&self) {let json_st…

干货!DNS 解析在网络传输中有什么意义?

首先我们先说说什么是DNS解析? DNS解析是将域名解析为对应的IP地址的过程。DNS它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS解析的过程就是寻找哪个IP地址对应你所输入的网址,然后将网页内容返回给用户。DNS解析需要域名服务器来完成,…

python爬虫学习------scrapy第三部分(第三十一天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

PyTorch的安装与使用

本文介绍了热门AI框架PyTorch的conda安装方案,与简单的自动微分示例。并顺带讲解了一下PyTorch开源Github仓库中的两个Issue内容,分别是自动微分的关键词参数输入问题与自动微分参数数量不匹配时的参数返回问题,并包含了这两个Issue的解决方案。技术背景 PyTorch是一个非常常…

DirectAU论文阅读笔记

Towards Representation Alignment and Uniformity in Collaborative Filtering论文阅读笔记 Abstract 现存的问题: ​ 现有的研究主要集中在设计更强大的编码器(如图神经网络)来学习更好的表示。然而,很少有人努力致力于研究CF中表示的期望属性,这对于理解现有CF方法的基…

树莓派4b测量光照强度

1.BH1750光照强度连接图 2. BH1750工作原理 BH1750的通讯过程 第1步:发送上电命令。 发送的过程和第2步基本一致,把测量命令(0x10)改成上电命令(0x01)。第2步:发送测量命令。 下面图片上的例子,ADDR引脚是接GND的,发送的测量命令是“连续高分辨率测量(0x10)”。 发送数据…

土壤墒情自动监测站解析

TH-TS400土壤墒情自动监测站是一种用于自动检测土壤墒情的仪器。它的主要作用包括实时监测土壤墒情的变化情况&#xff0c;包括土壤含水量、温度等指标&#xff0c;并提供实时数据。这种设备主要用于农业、林业、地质等方面&#xff0c;有助于防止土壤干旱和涝灾害的发生&#…

rabbitmq开启ssl

官网:https://www.rabbitmq.com/docs/management#multiple-listeners生成证书openssl req -newkey rsa:2048 -nodes -keyout rsa_private.key -x509 -days 365 -out cert.crt //一次性生成私钥和证书2.使用 已有RSA 私钥生成自签名证书openssl req -new -x509 -days 365 -ke…

seo伪原创文章工具,批量生成文章效率更高

在seo优化工作中&#xff0c;网站更新文章是每个seo人员必做的工作&#xff0c;每天定时定点的更新文章有利于网站的排名&#xff0c;但是长期需要写文章也会让seo人员陷入写作困境&#xff0c;如是&#xff0c;很多seo人员也都有自己的解决方法&#xff0c;他们会选择用seo伪原…