首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏java学习java

    redis分布式锁(2

    index2获取了lock index2线程获取到了cpu的资源,开始执行方法 uuid=v2 set(lock,uuid); index1执行删除,此时会把index2的lock删除 index1 因为已经在方法中了 index1已经比较完成了,这个时候,开始执行 删除的index2的锁!  { //1 声明一个uuid ,将做为一个value 放入我们的key所对应的值中 String uuid = UUID.randomUUID().toString(); //2 redisTemplate.opsForValue().setIfAbsent(locKey, uuid,3,TimeUnit.SECONDS); 总结 加锁 使用lua释放锁 重试 为了确保分布式锁可用

    48340编辑于 2022-11-13
  • 来自专栏写代码和思考

    Redis 分布式2

    分布式锁就是一个解决方案。 “分布式锁”是用来解决分布式应用中“并发冲突”的一种常用手段,实现方式一般有基于zookeeper及基于redis二种 自己写一个简单的 redis分布式锁 加锁时 加锁时使用 set 命令,使用 加锁执行命令 所以伪代码如下 if (random_value .equals(redisClient.get(resource_name))) { del(key) } 因为判断和解锁是2个独立的操作,不具有原子性

    51020编辑于 2022-09-29
  • 来自专栏罗西的思考

    PyTorch 分布式(2) ----- DataParallel(上)

    [源码解析] PyTorch 分布式(2) ----- DataParallel(上) 目录 [源码解析] PyTorch 分布式(2) ----- DataParallel(上) 0x00 摘要 0x01 ['CUDA_VISIBLE_DEVICES'] = "2,7",这样 device_ids[0]对应的就是物理上第2号卡,device_ids[1]对应的就是物理上第7号卡。 也可以在运行时临时指定,比如:CUDA_VISIBLE_DEVICES='2,7' Python train.py。 0xFF 参考 PyTorch 源码解读之 torch.optim:优化算法接口详解 pytorch(分布式)数据并行个人实践总结——DataParallel/DistributedDataParallel Pytorch的nn.DataParallel PyTorch 源码解读之分布式训练了解一下?

    1.4K31发布于 2021-11-11
  • 来自专栏Java开发者杂谈

    分布式改造剧集2---DIY分布式

    这一集我们接着继续DIY分布式锁。 第二集:分布式锁DIY 探索之路 ​ 由于业务互斥的需要,当前项目中实现了一个内存锁。 网上给出的分布式锁的实现方案一般有三种: 利用数据库的for update行锁 利用Redis的setnx 利用zookeeper的分布式一致性算法 ​ 考虑到尽量不增加新的应用部署,那么先排除2、 本地服务实现锁等待以及减少Hessian调用: 如第2点所说,我们的锁等待特性不能在内存锁的Hessian服务中实现,只能通过本地服务中实现。 ---- 展望 ​ 分布式锁的实现就到这里,其实现的本质在于将分布式转变成非分布式。这里也可以说我是钻了"分布式"的空子? ​ 那么既然分布式锁的最终实现也是通过内存锁实现的,且利用了主节点的特性。 严格上来讲这个是分布式改造剧集1应该实现的功能 ---- 后续 ​ 好了,分布式锁的改造暂且到此。可以看到其实分布式其实并没有我们想象的这么复杂,分布式技术也没有特别地遥不可及。

    54270发布于 2018-06-13
  • 来自专栏罗西的思考

    PyTorch 分布式 Autograd (2) ---- RPC基础

    [源码解析] PyTorch 分布式 Autograd (2) ---- RPC基础 目录 [源码解析] PyTorch 分布式 Autograd (2) ---- RPC基础 0x00 摘要 0x01 PyTorch分布式其他文章如下: 深度学习利器之自动微分(1) 深度学习利器之自动微分(2) [源码解析]深度学习利器之自动微分(3) --- 示例解读 [源码解析]PyTorch如何实现前向传播(1 如何实现后向传播 (4)---- 具体算法 [源码解析] PyTorch 分布式(1)------历史和概述 [源码解析] PyTorch 分布式(2) ----- DataParallel(上) [ 源码解析] PyTorch 分布式(3) ----- DataParallel(下) [源码解析] PyTorch 分布式(4)------分布式应用基础概念 [源码解析] PyTorch分布式(5) def my_add(t1, t2): return torch.add(t1, t2) def worker0(): # On worker 0: # Setup the autograd

    1.6K50发布于 2021-12-01
  • 来自专栏yuyy.info技术专栏

    【笔记】分布式缓存(1-2)

    300分钟吃透分布式缓存——陈波 分布式缓存 01 业务数据访问性能太低怎么办? 缓存的定义 狭义缓存 加速CPU数据交换的存储器。 广义缓存 数据高速交换的存储介质,加速数据访问。 参考 300分钟吃透分布式缓存 02 如何根据业务来选择缓存模式和组件?

    55030编辑于 2023-03-27
  • 来自专栏小白晋级大师

    分布式系统架构2:服务发现

    1.概念服务发现指的是分布式系统中,服务实例动态注册自己的信息到注册中心,其他服务能发现这些实例的位置,实现服务间通信。为什么需要服务发现?对于分布式应用来说,服务发现不是可选项,而是必须的。 2.组成由注册中心和消费者组成注册中心Service Registry:服务实例将自己的元数据(IP、端口、健康状态等)注册到注册中心。 本身需要具备高可用性,通常通过分布式一致性协议(如Raft、Paxos)来保证数据的一致性和可靠性。比如:Netflix Eureka,它提供了一个用于注册和查询服务实例的 REST API。

    44110编辑于 2024-12-16
  • 来自专栏书山有路勤为径

    2.ROS基础-分布式通信

    --------------------------------------------分界线--------------------------------------------- ROS是一种分布式软件框架 ,节点之间通过松耦合的方式进行组合 如何实现分布式多机通信 (1)设置IP地址,确保底层链路的联通 两台计算机上分别设置对方的IP地址和计算机名,确保计算机的底层数据通信没有问题。 通过ifconfig查看本地IP地址 把两个IP地址和计算机名分别设置到对方的文件里面sudo vi /etc/hosts 在两台计算机上分别使用Ping命令测试网络是否联通 确定两台计算机联通 (2

    1.2K30发布于 2019-03-15
  • 来自专栏java学习java

    谷粒商城:分布式基础概念(2

    集群&分布式&节点  集群是个物理形态,分布式是个工作方式。 只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道; 《分布式系统原理与范型》定义: “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统” 分布式系统(distributed 分布式是指将不同的业务分布在不同的地方。 集群指的是将几台服务器集中在一起,实现同一业务。  例如:京东是一个分布式系统,众多业务运行在不同的机器,所有业务构成一个大型的业务集群。 我们就 应该将用户系统部署到多个服务器,也就是每一个业务系统也可以做集群化 分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。 本地直接返回默认 的数据 2)、服务降级 a. 在运维期间,当系统处于高峰期,系统资源紧张,我们可以让非核心业 务降级运行。

    33640编辑于 2022-11-15
  • 来自专栏小四的技术文章

    分布式事务之2PC

    前言 分布式事务出现的场景那自然是分布式系统中,在传统的单体系统中,一般数据库就只有一个,所有数据表都存放在一个库中,一般涉及到事务的操作, 我们直接使用本地事务就可以,但是在分布式系统中,由于数据表可能在同一台服务器上的不同库里 ,也可能存在不同服务器的库里,所以就出现了分布式 事务,分布式的解决方案有多种,例如2PC,3PC,TCC等,今天主要来说一下2PC事务的思想。 2PC阶段解释 2PC指的是两阶段提交,整个事务流程分为两个阶段,分别为Prepare阶段和Commit阶段,Prepare为预提交阶段,它不会提交事务,Commit阶段才是真正的提交 事务的阶段,2PC 思考 我们从2PC的整个流程中可以看出其实会有一些问题。 资源是会被锁住的,那么其他事务就会被阻塞,直到当前事务完成后 才轮到下一个事务执行,这在高并发的情况下显然不行,如果事务不耗时还好说,如果事务很耗时,那么就无法忍受了,不过我们得清楚一点,如果 系统中引入了分布式事务

    63410编辑于 2022-07-26
  • 来自专栏IT乾坤

    分布式ID系列(2)——UUID适合做分布式ID吗

    426655440000 xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 上面的以数字 M开头的四位表示 UUID 版本,目前UUID的规范有5个版本,M可选值为1, 2, version 2:0010。DCE 安全的 UUID。该版本在规范中并没有仔细说明,因此并没有具体的实现。 version 3:0011。基于名字空间 (MD5)。 variant 2:11xx。为早期微软 GUID 预留。 variant 3:111x。为将来扩展预留。目前暂未使用。 id: 如果需求是只保证唯一性,那么UUID也是可以使用的,但是按照上面的分布式id的要求, UUID其实是不能做成分布式id的,原因如下: 首先分布式id一般都会作为主键,但是安装mysql官方推荐主键要尽量越短越好 ,UUID每一个都很长,所以不是很推荐 既然分布式id是主键,然后主键是包含索引的,然后mysql的索引是通过b+树来实现的,每一次新的UUID数据的插入,为了查询的优化,都会对索引底层的b+树进行修改

    2.1K40发布于 2019-08-22
  • 来自专栏roseduan写字的地方

    实现分布式 kv—2 raft leader 选举

    上一篇文章讲到了实现一个简单的单机版 kv,如果不熟悉的话可以先回顾一下: 实现分布式 kv—1 Standalone KV 从本篇文章起,就要基于 raft 构建分布式 kv 了。 raft 是一个分布式一致性算法,主要保证的是在分布式系统中,各个节点的数据一致性。 这篇文章暂时只介绍第一个 Leader 选举问题,对应的是 TinyKV 中的 Project 2aa 部分。 advances the internal logical clock by a single tick. func (r *Raft) tick() { // Your Code Here (2A Follower 状态 如果赞成票超过节点数的 1/2,那么竞选成功 如果竞选成功,需要变更自己的状态为 Leader,然后向其他节点发送一个 MsgAppend 消息,附带一个空的数据 Entry,

    62320编辑于 2021-12-27
  • 来自专栏最新最全的大数据技术体系

    DolphinScheduler2.x 伪分布式部署

    DolphinScheduler2.x 伪分布式部署 DolphinScheduler 部署说明 1 软硬件环境要求 1.1 操作系统版本要求 操作系统 版本 Red Hat Enterprise Linux 2.1 单机模式 单机模式(standalone)模式下,所有服务均集中于一个 StandaloneServer 进程中,并且 其中内置了注册中心 Zookeeper 和数据库 H2 。 通常可配置 2~3 个 Master ,若干个 Worker 。由于集群资源有限,此处配置一个 Master,一个 Worker ,集群规划如下。 (2)需部署数据库,支持 MySQL(5.7+)或者 PostgreSQL(8.2.15+)。 (3)需部署 Zookeeper(3.4.6+)。 (4)节点需安装进程树分析工具psmisc。 (1)创建数据库 (2)创建用户 *注:* 若出现以下错误信息,表明新建用户的密码过于简单。

    67000编辑于 2024-05-26
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析:dtm分布式事务(2

    在分析了qs的大致源码后golang源码分析:dtm分布式事务(1),我们分析下dtm-example的源码结构,每个例子都是类似的。

    60410编辑于 2023-03-01
  • 来自专栏罗西的思考

    PyTorch 分布式(2) --- 数据加载之DataLoader

    [源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader 目录 [源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader 0x00 摘要 0x01 前情回顾 2.4.7 用户获取data 2.4.8 小结 2.5 Pipleline 0xFF 参考 0x00 摘要 为了更好的介绍参数服务器Paracel的数据加载,我们临时插入两篇PyTorch的数据加载,主要是从分布式的角度进行切入 本文只算是开胃甜点,后续会有专门系列分析PyTorch分布式。 --------SSP控制协议实现 [源码解析] PyTorch 分布式(1) --- 数据加载之DistributedSampler 0x01 前情回顾 关于数据加载,上回书我们说到了 DistributedSampler 主进程和子进程通过这2~3个 queue 联系了起来,从而达到解耦合和加速的作用。

    2.1K40发布于 2021-08-23
  • 来自专栏罗西的思考

    Dynomite 分布式存储引擎 之 DynoJedisClient(2)

    [源码分析] Dynomite 分布式存储引擎 之 DynoJedisClient(2) 0x00 摘要 上文我们介绍了 NetFlix Dynomite 客户端 DynoJedisClient 的 4.1.1 策略分类 Java驱动程序提供了几个RetryPolicy实现: RetryNTimes:保证一个操作可以被重试最多 N times,RetryNTimes (2) 意味着在放弃之前,最多 2 + 1 = 3 重试; RunOnce:从不建议重试,始终建议重新抛出异常; 4.1.2 策略使用 具体在执行命令时,我们可以看到,驱动会透明的尝试其他节点并在后台调度重新连接死亡节点: 获取重试策略 : Pool 2]| | | | | +------------ 如何监控底层机架状态; 我们接下来引出 基于 DynoJedisClient 的 分布式延迟队列 Dyno-queues ,看看它是如何实现的。

    1.1K10发布于 2021-03-02
  • 来自专栏罗西的思考

    TensorFlow 分布式环境(2)---Master 静态逻辑

    [源码解析] TensorFlow 分布式环境(2)---Master 静态逻辑 目录 [源码解析] TensorFlow 分布式环境(2)---Master 静态逻辑 1. 总述 2. 业务实现 Master 类 6.1 创建 6.2 定义 6.3 功能 0xFF 参考 在具体介绍 TensorFlow 分布式的各种 Strategy 之前,我们首先需要看看分布式的基础:分布式环境。 2. 图 2 同进程 master 操作 我们看看不同进程的情况。 [腾讯机智] TensorFlow源码解析(1): 创建会话 05tensorflow分布式会话 第八节,配置分布式TensorFlow TensorFlow 分布式(Distributed TensorFlow

    91620编辑于 2022-05-09
  • 来自专栏Golang开发

    Hadoop(2)——HDFS(分布式文件系统)

    System官方地址http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html 非常巨大的分布式文件系统 export PATH=$HADOOP_HOME/bin:$PATH 执行source .bash_profile让环境变量生效 文件结构 [root@maste hadoop]# tree -d -L 2

    69520发布于 2019-05-28
  • 来自专栏罗西的思考

    并行分布式框架 Celery 之架构 (2)

    [源码解析] 并行分布式框架 Celery 之架构 (2) 0x00 摘要 Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。 上文 [源码解析] 并行分布式框架 Celery 之架构 (1) 中,我们大致介绍了 Celery 的概念,用途和架构,现在回忆 Celery 的架构图如下: +-----------+ 对于 Consumer 来说, 1 是基本功能,这些功能组成了一个简单的非强壮的消息队列框架; 2 一般重要,可以实现一个高级一点的功能; 3 属于附加功能,同时也属于一点分布式的功能。 分布式计算框架spark就是使用这种方式。 4.3.1 分发代码 业界分发代码的代表是 Spark。Spark的思想比较简单:挪计算不挪数据。那怎么去描述这个计算呢? 我们从负载均衡,容灾恢复,worke之间交互这三个角度来看看 Celery 如何实现分布式

    1.2K10发布于 2021-04-01
  • 来自专栏罗西的思考

    TensorFlow 分布式之 ParameterServerStrategy V2

    [源码解析] TensorFlow 分布式之 ParameterServerStrategy V2 目录 [源码解析] TensorFlow 分布式之 ParameterServerStrategy V2 (1) --- 总体架构 [源码解析] TensorFlow 分布式环境(2)---Master 静态逻辑 [源码解析] TensorFlow 分布式环境(3)--- Worker 静态逻辑 [源码解析 ] TensorFlow 分布式环境(4) --- WorkerCache [源码解析] TensorFlow 分布式环境(5) --- Session [源码解析] TensorFlow 分布式环境( 7) --- Worker 动态逻辑 [源码解析] TensorFlow 分布式环境(8) --- 通信机制 [翻译] 使用 TensorFlow 进行分布式训练 [源码解析] TensorFlow 分布式 1.2 集群 无论选择何种API( Model.fit 或自定义训练循环),TensorFlow 2中的分布式训练都会涉及如下概念:一个"集群" 有若干个"作业(job)",每个作业可能包括一个或多个

    1.6K20编辑于 2022-05-15
领券