分布式 理论

[系统设计] 分布式系统 (1) 分布式锁(1)基于Redis(setnx)实现分布式锁组件

# 1 序言 近期遇到一个问题: + 外部查询缓存了InfluxDB中物联网数据表的字段信息元数据的本地缓存(基于Google Guava Cache、及其RefreshAfterWrite(seconds, TimeUnit.SECOND))的Web接口 > 为什么会缓存 Influxdb的字段信 ......
分布式 系统 组件 Redis setnx

应用程序通过 Envoy 代理和 Jaeger 进行分布式追踪(一)

Istio 支持通过 Envoy 代理进行分布式追踪,代理自动为其应用程序生成追踪 span,只需要应用程序转发适当的请求上下文即可。Istio 支持很多追踪系统,包括 Zipkin, Jaeger,Lightstep 和 Datadog,其中 Jaeger 目前已经成为 Istio 默认的分布式追 ......
分布式 应用程序 程序 Jaeger Envoy

[系统设计] 分布式系统 (1) 分布式锁 [转载]

在日常开发工作中,我们为了保证资源操作的最终一致性,同样需要用到锁来进行操作控制。本Chat结合自己工作中的经验沉淀,来跟大家一起聊聊 分布式锁的那些事,分享一些实用内容给大家。 # 为什么会出现分布式锁? 如下图所示,一个应用被部署到多个机器上做负载均衡。为了保证一个方法或属性在高并发情况下的同一 ......
分布式 系统

深度学习框架 —— 分布式训练

现在深度学习的模型结构越来越大,参数动不动都是上亿甚至上千亿,这也对训练模型的资源量有很高的要求,显然单个机器上要训练这么大的网络是不现实的,因此学术界和工业界自然开始研究用分布式训练。也就是将一个机器学习模型任务拆分成多个子任务,并将子任务分发给多个计算节点,解决资源瓶颈。 # 1. 分布式训练概 ......
分布式 框架 深度

读发布!设计与部署稳定的分布式系统(第2版)笔记29_控制层下

![](https://img2023.cnblogs.com/blog/3076680/202308/3076680-20230804112759115-773698620.png) # 1. 配置服务 ## 1.1. 配置服务本身就是分布式数据库 ### 1.1.1. 像ZooKeeper和et ......
分布式 笔记 系统 29

【技术积累】Linux中的命令行【理论篇】【五】

博客推行版本更新,成果积累制度,已经写过的博客还会再次更新,不断地琢磨,高质量高数量都是要追求的,工匠精神是学习必不可少的精神。因此,大家有何建议欢迎在评论区踊跃发言,你们的支持是我最大的动力,你们敢投,我就敢肝 ......
命令 理论 Linux 技术

Redis 之分布式锁的实现

## 引言 分布式锁大家应该不陌生,在很多大厂面试的时候,面试官们都很喜欢问这个问题。 我们在系统中修改已有数据时,需要先读取,然后进行修改保存,此时很容易遇到并发问题。由于修改和保存不是原子操作,在并发场景下,部分对数据的操作可能会丢失。在单服务器系统我们常用本地锁来避免并发带来的问题,然而,当服 ......
分布式 Redis

在分布式nvidia cuda-pytorch中同时使用MPI和NCCL会造成死锁——分布式pytorch的backend不能同时使用MPI和NCCL

参考原文: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/mpi.html#inter-gpu-communication-with-cuda-aware-mpi 说实话,我不太认为有人在使用分布式pytorch的时候会同时开两个 ......
分布式 同时 pytorch NCCL cuda-pytorch

读发布!设计与部署稳定的分布式系统(第2版)笔记28_控制层上

![](https://img2023.cnblogs.com/blog/3076680/202308/3076680-20230804111644939-2134490730.png) # 1. 控制层囊括所有在后台运行的成功处理生产负载的软件和服务 ## 1.1. 处理用户生产数据的那些软件,就 ......
分布式 笔记 系统 28

Redis理论基础

一、什么是Redis REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提 ......
理论 基础 Redis

【技术积累】Linux中的命令行【理论篇】【四】

博客推行版本更新,成果积累制度,已经写过的博客还会再次更新,不断地琢磨,高质量高数量都是要追求的,工匠精神是学习必不可少的精神。因此,大家有何建议欢迎在评论区踊跃发言,你们的支持是我最大的动力,你们敢投,我就敢肝 ......
命令 理论 Linux 技术

Hadoop完全分布式集群安装

# Hadoop完全分布式集群安装 >使用版本: hadoop-3.2.0 ## 安装VMware 看一下这张图,图里面表示是三个节点,左边这一个是主节点,右边的两个是从节点,hadoop集群是支持主从架构的。 不同节点上面启动的进程默认是不一样的。 ![](https://img2023.cnbl ......
分布式 集群 Hadoop

分布式概念

分布式业务系统,就是把原来用 Java 开发的一个大块系统,给拆分成多个子系统,多个子系统之间互相调用,形成一个大系统的整体。 ![](https://img2023.cnblogs.com/blog/2211217/202308/2211217-20230805180037629-11082654 ......
分布式 概念

ZooKeeper理论

一、什么是ZooKeeper ZooKeeper 是一个开源的分布式协调服务,它提供了高可用性和一致性的数据存储和协调能力。ZooKeeper 的设计目标是为分布式系统提供一个可靠的协作基础,使得应用程序可以通过它来实现分布式锁、队列、配置管理等功能。 以下是 ZooKeeper 的一些主要特点和用 ......
ZooKeeper 理论

第八章:分布式系统的麻烦

故障与部分失效 如果发生内部错误,我们宁愿电脑完全崩溃,而不是返回错误的结果,因为错误的结果很难处理。因为计算机隐藏了模糊不清的物理实现,并呈现出一个理想化的系统模型,并以数学一样的完美的方式运作。 在分布式系统中,尽管系统的其他部分工作正常,但系统的某些部分可能会以某种不可预知的方式被破坏。这被称 ......
分布式 麻烦 系统

JS语言里常见的随机函数示例,实验结果分布规律分析

在JavaScript语言里有个 Math.random() 随机函数,用于生成指定范围内的随机数。 #### Math.random()函数 根据官方的定义: **Math.random()** 函数返回一个浮点数, 伪随机数在范围[0,1),也就是说,从0(包括0)往上,但是不包括1(排除1), ......
示例 函数 规律 常见 语言

利用 docker 实现JMeter分布式压测

### 为什么需要分布式? 在工作中经常需要对一些关键接口做高QPS的压测,JMeter是由Java 语言开发,没创建一个线程(虚拟用户),JVM默认会为每个线程分配1M的堆栈内存空间。受限于单台试压机的配置很难实现太高的并发。所以,通过JMeter实现分布式,可以整合多台主机的硬件资源,实现同时对 ......
分布式 docker JMeter

pytest-xdist分布式测试原理浅析

pytest-xdist执行流程: 解析命令行参数:pytest-xdist 会解析命令行参数,获取用户指定的分发模式、进程数、主机列表等信息。 加载测试用例:pytest-xdist 会加载所有的 pytest 测试用例,包括在当前目录和子目录下的所有测试文件和测试函数。 分发测试用例:根据用户指 ......
分布式 pytest-xdist 原理 pytest xdist

微服务架构实战指南:分布式系统的设计与部署技巧

微服务架构实战指南:分布式系统的设计与部署技巧 分布式微服务架构是一种将大型应用程序划分为多个小型服务的设计方法。这种方法可以提高应用程序的可扩展性、灵活性和可靠性。以下是设计和实施分布式微服务架构时应考虑的关键要点和策略: 1、服务拆分和设计:首先需要对应用程序进行服务拆分,将其划分为小型服务。在 ......
分布式 架构 实战 技巧 指南

如果用机器学习的理论来理解人的行为,会有什么发现?

以前有人问我“书读了很多之后,但是其中内容都忘记了,那么读书的价值何在呢?” 我说:“训练数据在训练完模型之后就可以删掉了,只要权值文件和网络结构保存好即可” 死记硬背是没有用的,因为死记硬背是一种过拟合的能力,而一个好的机器学习模型应该是泛化性能比较好的,所以好的教育应该是培养一个人举一反三的能力 ......
机器 行为 理论

简述分布式链路追踪工具——Jaeger

1、简介 1.1 Jaeger是什么 Jaeger 是受到 ​ ​Dapper​​​ 和 ​ ​OpenZipkin​​​ 启发的由 ​ ​Uber Technologies​​ 作为开源发布的分布式跟踪系统,截止2023年8月3日最新稳定版本是1.47。其前端采用React语言实现,后端采用GO语 ......
链路 分布式 工具 Jaeger

集群与分布式

集群:多个人干同样一件事情 分布式:多个人干不同的事情,合起来时一件事情 两个人都是做饭,洗菜,切菜 所以他两个是一个集群 雇人洗菜,切菜,自己做饭,三个人共同干做饭一件事,这就是分布式 集群分布式系统的有点: ......
分布式 集群

分布式测试插件 pytest-xdist 使用详解

使用背景: 大型测试套件:当你的测试套件非常庞大,包含了大量的测试用例时,pytest-xdist可以通过并行执行来加速整体的测试过程。它利用多个进程或计算机的计算资源,可以显著减少测试执行的时间。 高计算资源需求:某些测试场景可能需要大量的计算资源,例如进行复杂的计算、模拟或数据处理。在这种情况下 ......
分布式 pytest-xdist 插件 pytest xdist

RabbitMQ(五)延时队列及其在分布式事务的使用场景

### RabbitMQ(五)延时队列 ​ 延时队列的使用场景: - 未支付订单,超过一段时间后,系统自动取消订单并释放占有物品 - 锁定库存一段时间后,检查订单不存在或者被取消,则解锁库存 #### 1 定时任务存在的问题 ​ 如果使用Spring Schedule定时轮询数据库,则 - 消耗系统 ......
队列 分布式 RabbitMQ 场景 事务

5.C++中类的数据成员和成员函数内存分布情况

# 5.C++中类的数据成员和成员函数内存分布情况 - 非静态成员的数据类型大小之和。 - 编译器加入的额外成员变量(如指向虚函数表的指针)。 - 为了边缘对齐优化加入的padding。 空类(无非静态数据成员)的对象的size为1, 当作为基类时, size为0。 C++类是由结构体发展得来的,所 ......
成员 函数 内存 情况 数据

git -> 分布式版本管理系统

git 是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于 2005 年以 GPL 许可协议发布。最初目的是为了更好地管理 Linux 内核开发而设计 git 是用于 Linux 内核开发的版本控制工具。与 CVS、Subversion(svn)一类的集中式版本控制工具不同,它采用了分布式版本库 ......
分布式 管理系统 版本 系统 git

分布式事务

### 1.1.事务 ​ 数据库事务(简称:事务,Transaction)是指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。 ​ **事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。** 事务拥有以下四个特性,习惯上被称为ACID特性: - * ......
分布式 事务

【Abaqus】材料行为的非均匀空间分布

设想一种情况:在有限元分析中,一个区域或者整个网格中,每个单元的材料行为都是单独的。这时在ABAQUS中应该如何设置? 两种办法: + 给每个单元创建一个集合,然后一一赋予SECTION. + 使用*Distribution关键字,实现空间分布的材料行为,再将SECTION属性赋予给单元。这一种方法 ......
行为 材料 Abaqus 空间

scrapy源码分析:redis分布式爬虫队列中,priority值越大,优先级越高

# scrapy源码分析:redis分布式爬虫队列中,priority值越大,优先级越高 # 一、背景 scrapy爬虫项目中,遇到scrapy的priority属性,搞不懂priority的值越大优先级越高,还是值越小优先级越高 ```python # 通过priority修改优先级 return ......
爬虫 优先级 队列 分布式 源码