back-end developer 后端开发的一些常识

通俗易懂版

1. 通信协议

1.1 RPC (Remote Procedure Call)

客观解释: RPC是一种协议,允许程序通过网络在不同的计算机上调用函数,就像调用本地函数一样。RPC隐藏了网络通信的复杂性,使得远程服务调用看起来像是本地调用。

现实例子: 就像你在家里需要一个专业修理工来修理你的电脑。你打电话给维修公司(RPC调用),详细说明问题(发送请求)。维修工来你家(远程执行)并修理电脑(执行任务)。这过程就像你在同一城市范围内找人修电脑一样方便,实际上可能维修工来自其他城市(远程服务器)。

1.2 WebSocket

客观解释: WebSocket是一种全双工通信协议,允许客户端和服务器之间进行实时双向通信。与HTTP的请求-响应模式不同,WebSocket保持连接打开,使得数据可以在客户端和服务器之间即时传输。

现实例子: 想象你和朋友在电话里实时聊天(WebSocket连接),而不是像发短信一样发送消息然后等待回复(HTTP请求)。你们可以同时说话(双向通信),而且连接一直保持打开状态,直到你们挂断电话。

2. 数据格式

2.1 JSON (JavaScript Object Notation)

客观解释: JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时易于机器解析和生成。它通常用于客户端与服务器之间的数据传输。

现实例子: 假设你在网上购物。你在浏览器上选择商品并下单。浏览器会将你的订单信息(如商品名称、价格、数量)转换成JSON格式(打包成一个轻便的小包裹),然后发送给服务器。服务器接收到这个包裹后,解包并处理你的订单。

3. 消息队列

3.1 MQ (Message Queue)

客观解释: 消息队列是一种在不同系统或组件之间传递消息的机制,确保消息的可靠传递和处理。它通过队列存储消息,消费者可以异步处理这些消息。

现实例子: 想象你是一家餐厅的厨师。服务员(生产者)将订单(消息)放在一个传送带上(消息队列),你(消费者)从传送带上取下订单并制作食物。即使有很多订单,传送带确保所有订单都能依次处理,不会遗漏。

3.2 Kafka

客观解释: Kafka是一种分布式流处理平台,专为高吞吐量和低延迟的消息传递设计。它可以用于构建实时数据管道和流应用程序。Kafka将消息存储在主题中,并允许多个消费者订阅和处理这些消息。

现实例子: 想象你是一家大型快递公司的调度员。客户(生产者)将包裹(消息)送到不同的分发中心(Kafka集群)。各个配送员(消费者)从分发中心领取包裹并进行配送。即使有大量包裹同时到达,各个分发中心能够高效地处理和分发包裹。

4. 分布式系统

4.1 分布式系统

客观解释: 分布式系统是由多个独立的计算机组成的系统,这些计算机通过网络协同工作,表现得像是一个单一的系统。分布式系统提高了系统的可靠性、可扩展性和性能。

现实例子: 想象你在一个图书馆找一本书。这个图书馆有很多分馆,每个分馆都有不同的书籍(分布式节点)。当你需要某本书时,系统会自动在所有分馆中查找,并告诉你哪家分馆有这本书。即使某个分馆关闭,你仍然可以在其他分馆找到书籍。

5. 数据存储

5.1 Redis

客观解释: Redis是一种开源的内存中数据结构存储,用作数据库、缓存和消息代理。它支持多种数据结构,如字符串、哈希、列表、集合等,提供高性能的读写操作。

现实例子: 想象你是一家快餐店的收银员。你有一本笔记本(Redis),记录了每种食物的库存情况(数据存储)。因为笔记本就在你手边,所以你可以快速查找和更新库存(高性能读写)。如果某种食物卖光了,你可以立刻记下来,避免再卖出。

6. 容器化技术

6.1 Docker

客观解释: Docker是一种容器化技术,允许开发人员将应用程序及其所有依赖项打包成一个标准化的单元(容器),可以在任何环境中运行。Docker简化了应用程序的部署和管理。

现实例子: 假设你要搬家。你把所有的家用物品(应用程序及其依赖)打包进一个个箱子(容器)。无论你搬到哪儿(不同的计算环境),只要打开箱子,里面的物品都能立刻使用,不需要重新整理(配置环境)。

7. 容器编排

7.1 Kubernetes (K8s)

客观解释: Kubernetes是一种开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。它提供了负载均衡、自动恢复、滚动更新等功能,确保应用的高可用性和可扩展性。

现实例子: 想象你是一家快递公司的调度员。你有一队送货员(容器),每个人都能送货(运行应用)。当订单量增加时,你可以增加更多送货员(扩展容器),当某个送货员生病时,你可以立即派其他人顶替(自动恢复)。你还能根据需求调整送货员的工作区域(负载均衡),确保每个区域的订单都能及时处理。

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

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

相关文章

WAIC | 上海人形机器人创新中心 | 最新演讲 | 详细整理

前言 笔者看了7月4号的人形机器人与具身智能发展论坛的直播,并在7月5日到了上海WAIC展会现场参观。这次大会的举办很有意义,听并看了各家的最新成果,拍了很多照片视频,部分演讲也录屏了在重复观看学习 稍后会相继整理创立穹彻智…

算法系列--分治排序|归并排序|逆序对的求解

一.基本概念与实现 归并排序(mergeSort)也是基于分治思想的一种排序方式,思路如下: 分解:根据中间下标mid将数组分解为两部分解决:不断执行上述分解过程,当分解到只有一个元素时,停止分解,此时就是有序的合并:合并两个有序的子区间,所有子区间合并的结果就是原问题的解 归并…

第一节 网络安全概述

一.网络空间安全 网络空间:一个由信息基础设施组成相互依赖的网络。 ---- 海陆空天(大海、陆 地、天空、航天) 通信保密阶段 ---- 计算机安全 ----- 信息系统安全 ----- 网络空间安全 计算机安全:开始秉持着“严于律己&#x…

C语言 指针和数组—指针数组及其在字符串处理中的应用

目录 问题的提出 问题的解决 回头看——指针、数组及其他类型的混合 指针数组与指向数组的指针 字符串的排序 问题的提出 问题的解决 回头看——指针、数组及其他类型的混合  基本数据类型  int 、 long 、 char 、 short 、 float 、 double……  数组是一种从…

os.makedirs

官方说明文档🔗:Link 解释下面的代码: os.makedirs(os.path.join(args.output_dir,sample_images), exist_okTrue)os.makedirs():这是一个用于递归创建目录的Python函数。如果中间级目录(目录链中的所有目录&#xff…

The IsA relationship and HasA relationship

Why you should worry about that? or not. Is-A (Inheritance) Represents an “is-a-kind-of” hierarchy between classes. A subclass (child class) inherits attributes and methods from its superclass (parent class). Subclasses can specialize or override inh…

设计模式之模版方法

模版方法介绍 模版方法(Template Method)模式是一种行为型设计模式,它定义了一个操作(模板方法)的基本组合与控制流程,将一些步骤(抽象方法)推迟到子类中,使得子类可以在…

旅游 | 西岳华山

得到了再失去, 总比从来没有得到更伤人。 ——胡赛尼《追风筝的人》 目录 旅游 | 西岳华山00 | 旅游导图01 | 旅游路线02 | 必带行李03 | 旅游费用3.1 门票3.2 索道价格3.2.1 北峰索道(单程)3.2.1 西峰索道(单程) 3.3 …

掌握 IPython 历史的艺术:%dhist 命令的深度指南

掌握 IPython 历史的艺术:%dhist 命令的深度指南 在 IPython 的交互式探索中,历史命令是我们最宝贵的资源之一。%dhist 命令是 IPython 提供的一个强大工具,它允许用户浏览、搜索和重新执行历史中的命令。本文将深入探讨 %dhist 命令的使用方…

【UE5.1】Chaos物理系统基础——03 炸开几何体集

目录 步骤 一、通过径向向量将几何体集炸开 二、优化炸开效果——让破裂的碎块自然下落 三、优化炸开效果——让碎块旋转起来 四、优化炸开效果——让碎块旋转的越来越慢 步骤 一、通过径向向量将几何体集炸开 1. 打开上一篇中(【UE5.1】Chaos物理系统基础—…

Spring IOC基于XML和注解管理Bean

IoC 是 Inversion of Control 的简写,译为“ 控制反转 ”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出 松耦合、更优良的程序。 Spring 通过 IoC 容器来管理所有 Java 对象…

如何从 Windows 11/10/8.1/8/7 恢复已删除的视频

意外删除了视频或格式化了 SD 卡/硬盘?没有备份已删除的视频?别担心,我们有解决方案来恢复 Windows 11、10 中已删除的视频并处理这种糟糕的情况。 但在了解如何恢复已删除的视频和视频恢复应用程序之前,请知道 Windows 会为您提…

ARMv8寄存器详解

文章目录 一、ARMv8寄存器介绍二、通用寄存器三、 PSTAE寄存器四、特殊寄存器五、系统寄存器 一、ARMv8寄存器介绍 本文我来给大家介绍一下ARMv8的寄存器部分,ARMv8中有34个寄存器,包括31个通用寄存器、一个栈指针寄存器SP(X31),一个程序计数器寄存器PC…

Apache Drill 2万字面试题及参考答案

目录 什么是Apache Drill? Apache Drill的主要特点是什么? Apache Drill如何实现对复杂数据的查询? 描述Apache Drill的数据存储模型。 为什么Apache Drill被称为自服务的SQL查询引擎? Apache Drill支持哪些类型的数据源? 解释Apache Drill中的“schema discovery”…

Transformer前置知识:Seq2Seq模型

Seq2Seq model Seq2Seq(Sequence to Sequence)模型是一类用于将一个序列转换为另一个序列的深度学习模型,广泛应用于自然语言处理(NLP)任务,如机器翻译、文本摘要、对话生成等。Seq2Seq模型由编码器&#…

《框架封装 · 统一异常处理和返回值包装》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

贪心算法-以高校科研管理系统为例

1.贪心算法介绍 1.算法思路 贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行,根据某个优化测度,每一 步都要确保能获得局部最优解。每一步只考虑一 个数据,其选取应该满足局部优化的条件。若下 一个数据和部分最优解连在一起…

JavaEE初阶-网络原理1

文章目录 前言一、UDP报头二、UDP校验和2.1 CRC2.2 md5 前言 学习一个网络协议,最主要就是学习的报文格式,对于UDP来说,应用层数据到达UDP之后,会给应用层数据报前面加上UDP报头。 UDP数据报UDP包头载荷 一、UDP报头 如上图UDP的…

Kubernetes(K8s) kubectl 常用命令

文章目录 一、常用命令1.1 kubectl describe 命令 二、kubectl 命令中的简写三、Helm3.1 常用命令:3.2 遇到的问题3.2.1 cannot re-use a name that is still in use 四、Containerd 一、常用命令 检查 k8s 各节点状态,确保k8s集群各节点状态正常&#x…

概率基础——矩阵正态分布matrix normal distribution

矩阵正态分布-matrix normal distribution 定义性质应用 最近碰到了这个概念,记录一下 矩阵正态分布是一种推广的正态分布,它应用于矩阵形式的数据。矩阵正态分布在多维数据分析、贝叶斯统计和机器学习中有广泛的应用。其定义和性质如下: 定…