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

    分布式系统学习10分布式事务

    这是小卷对分布式系统架构学习的第13篇文章,今天学习面试中高频问题:分布式事务,为什么要用分布式事务,分布式事务的实现方案有哪些,方案对比优缺点 1.知识体系 1.为什么要用分布式事务 单体架构时,以本地事务为例 而随着业务的增长,系统转变为分布式系统,原有的单体架构也拆分为多个微服务。 下单场景需要在多个服务间操作,需要保证所有操作都能成功,保证整个下单流程的数据一致性,就需要用到分布式事务了 2.理论 分布式理论的CP -> 刚性事务 遵循ACID,对数据要求强一致性 分布式理论的AP Confirm需满足幂等性,保证一个分布式事务只成功一次; Cancel阶段:取消操作,释放Try阶段预留的业务资源,需要幂等性; 4.2 Saga事务 Saga可以看做一个异步的、利用队列实现的补偿事务 Seata框架 开源的分布式事务解决方案,提供了AT、TCC、SAGA、XA事务模式,不需要自己手动实现分布式事务,直接使用框架就行 有以下几个角色: TC (Transaction Coordinator

    36700编辑于 2025-01-26
  • 来自专栏林欣哲

    10 分钟看懂分布式事务

    什么是分布式事务 问题的引出 先看一张图,一个电商平台的架构图。 对于用户来说的一个创建订单的过程,背后很可能跨越了多个应用服务。 单一数据库可以简单的使用事务来保证一致性,但是分布式的问题则需要分布式的事务来控制数据的一致性。 分布式事务的产生的原因 数据库分库分表 由于单表的数据量巨大导致的分库分表,则会涉及到多个数据库的一致性问题。 应用SOA化 业务的服务化。 多个业务中心有各自的数据库,也会涉及多个数据库的一致性问题 事务的ACID特性 分布式事务本质也是一个事务,则需要满足ACID特性。 参考资料 分布式最终一致方案梳理,Bright Moon ‘ s Blog,https://www.cnblogs.com/BrightMoon/p/5622618.html 深入理解分布式事务,高并发下分布式事务的解决方案

    1.1K50发布于 2018-04-17
  • 来自专栏苏三说技术

    10分布式ID,真香!

    前言 分布式ID,在我们日常的开发中,其实使用的挺多的。 有很多业务场景在用,比如: 分布式链路系统的trace_id 单表中的主键 Redis中分布式锁的key 分库分表后表的id 今天跟大家一起聊聊分布式ID的一些常见方案,希望对你会有所帮助。 在Java中可以通过UUID的randomUUID方法获取唯一字符串: import java.util.UUID; /** * @author 苏三 * @date 2024/9/13 上午10 10位的机器标识,10位的长度最多支持部署1024个节点 12位的计数序列号,序列号即一系列的自增id,可以支持同一节点同一毫秒生成多个ID序号,12位的计数序列号支持每个节点每毫秒产生4096个ID序号 最近整理了一份10万字的面试宝典,可以免费送给大家,获取方式加我微信:su_san_java,备注:面试。

    93810编辑于 2024-09-18
  • 来自专栏函数式编程语言及工具

    Akka(10): 分布式运算:集群-Cluster

    用Akka开发同一版本的分布式程序可以在任何硬件环境中运行,这样我们就可以确定以Akka分布式程序作为标准的编程方式了。    在上面两篇讨论里我们介绍了Akka-Remoting。 Akka-Cluster是基于Akka-Remoting之上的新一代分布式运算环境,所以Remoting已经成为了Akka-Cluster的内部支持功能,在生产环境中的分布式运算应该尽量使用Akka-Cluster 让编程人员可以更轻松自然的实现分布式编程。当然,更重要的是相对Akka-Remoting而言,Akka-Cluster提供了一整套更安全、更高效的分布式运算环境。 最终目的是能够把一个大型程序分割成多个子程序,然后部署到很多JVM上去实现程序的分布式并行运算。 由于在单一机器上就可以配置多个节点形成一个集群,我们开发的分布式程序可以在单机或多机群上运行,不同的只是如何部署和配置集群环境。

    2.2K90发布于 2018-01-05
  • 来自专栏捡田螺的小男孩

    Redis分布式锁的10个坑

    为了避免并发请求造成的库存超卖等问题,我们一般会用到Redis分布式锁。但是使用Redis分布式锁,很容易踩坑哦~ 本文田螺哥将给大家分析阐述,Redis分布式锁的10个坑~ 1. 我们一起来看下Redisson底层原理图吧: 只要线程一加锁成功,就会启动一个watch dog看门狗,它是一个后台线程,会每隔10秒检查一下,如果线程一还持有锁,那么就会不断的延长锁key的生存时间 10.Redis主从复制导致的坑 实现Redis分布式锁的话,要注意Redis主从复制的坑。 (假设锁自动失效时间为10秒,则超时时间一般在5-50毫秒之间,我们就假设超时时间是50ms吧)。如果超时,跳过该master节点,尽快去尝试下一个master节点。 (如上图,10s> 30ms+40ms+50ms+4m0s+50ms) 如果取到了锁,key的真正有效时间就变啦,需要减去获取锁所使用的时间。

    2.1K20编辑于 2022-12-29
  • 来自专栏java达人

    分布式系统模式10-Request Pipeline

    来源: https://martinfowler.com/articles/patterns-of-distributed-systems/

    81010发布于 2021-01-05
  • 来自专栏程序员小航

    Redisson 分布式锁源码 10:读写锁

    前言 Redisson 还支持可重入读写锁,允许在分布式场景下,同时有多个读锁和一个写锁处于加锁状态。

    1.1K11发布于 2021-07-09
  • 来自专栏罗西的思考

    PyTorch 分布式(10)------DistributedDataParallel 之 Reducer静态架构

    [源码解析] PyTorch 分布式(10)------DistributedDataParallel之Reducer静态架构 目录 [源码解析] PyTorch 分布式(10)------DistributedDataParallel (1)------历史和概述 [源码解析] PyTorch 分布式(2) ----- DataParallel(上) [源码解析] PyTorch 分布式(3) ----- DataParallel(下 ) [源码解析] PyTorch 分布式(4)------分布式应用基础概念 [源码解析] PyTorch分布式(5) ------ DistributedDataParallel 总述&如何使用 [源码解析 ] PyTorch分布式(6) ---DistributedDataParallel -- 初始化&store [源码解析] PyTorch 分布式(7) ----- DistributedDataParallel 0xFF 参考 pytorch分布式系列3——分布式训练时,torch.utils.data.distributed.DistributedSampler做了什么?

    1.5K40发布于 2021-11-25
  • 来自专栏夕阳醉了

    Redis从入门到放弃(10):分布式

    分布式系统中,实现对共享资源的安全访问是一个关键问题。Redis作为一种高性能的内存数据库,提供了多种方式来实现分布式锁,以解决多个节点之间对共享资源的并发访问问题。 本文将介绍五种Redis分布式锁的解决方案及其原理、应用场景以及Java代码的实现步骤。 SET lock_name arbitrary_lock_value NX EX 10 在上面的命令中,NX 与 SETNX 中的含义相同,而 EX 10 表示 TTL 为 10 秒。 SET lock_name client_id NX EX 10 3.1、原理 当节点需要获取锁时,它通过 SET 命令的 (NX EX) 选项设置一个特定的键作为锁,并设置锁的过期时间。 无论选择哪种方案,都需要考虑锁的安全性、原子性、续约和释放等问题,以确保在分布式环境中共享资源的安全访问。

    70751编辑于 2023-10-16
  • 来自专栏腾讯云大数据与AI专家服务

    存在写分布式表数量超10

    【健康度判断】存在集群写分布式表数目大于10张表,为非健康值查询sqlSELECT count(*) AS count FROM clusterAllReplicas({cluster_name} , system.distribution_queue) GROUP BY hostname() ORDER BY count DESC LIMIT 1【可能风险】写放大:分布式表写入时会在本地节点生成临时数据 ,会产生写放大,所以会对CPU及内存造成一些额外消耗; 增加merge负担:分布式表写的临时block会把原始block根据sharding_key和weight进行再次拆分,会产生更多的block 高频写入易触发Too many parts错误,导致写入阻塞写入分布式表时,若某个分片节点故障,部分数据可能丢失(因分布式表本身不存储数据)【建议】通过CLB直接写local表,做到写入负载均衡

    17610编辑于 2025-06-03
  • 来自专栏腾讯云原生团队

    今天,分享10+篇分布式云技术干货!

    前言 分布式云作为一种新型的云计算服务,其意味着对于公有云、私有云和混合云的一种延展和聚集。在业界来看,分布式云形态本就是传统云形态和概念的深化,云上的用户可以运营在分布式云上。 分布式云是对用户更友好、更高效的云。 云原生分布式云中心 TDCC 云原生分布式云中心(Tencent Kubernetes Engine Distributed Cloud Center,TDCC) 是腾讯面向多云多集群场景的应用管理平台 ,支持用户将云原生化的应用扩展到分布式云,全局视角统一管理和运维分布式云资源,轻松地将业务发布至全球,一次部署处处运行。 【腾讯云原生】收集了关于分布式云系列干货文11篇,帮助你更好了解“分布式云”,一定要收藏哦!

    1.3K60编辑于 2022-03-30
  • 来自专栏罗西的思考

    深度学习分布式训练框架 horovod (10) --- run on spark

    [源码解析] 深度学习分布式训练框架 horovod (10) --- run on spark 目录 [源码解析] 深度学习分布式训练框架 horovod (10) --- run on spark 本系列其他文章如下: [源码解析] 深度学习分布式训练框架 Horovod (1) --- 基础知识 [源码解析] 深度学习分布式训练框架 horovod (2) --- 从使用者角度切入 [源码解析] 深度学习分布式训练框架 horovod (3) --- Horovodrun背后做了什么 [源码解析] 深度学习分布式训练框架 horovod (4) --- 网络基础 & Driver [源码解析] 深度学习分布式训练框架 horovod (5) --- 融合框架 [源码解析] 深度学习分布式训练框架 horovod (6) --- 后台线程架构 [源码解析] 深度学习分布式训练框架 horovod (7) --- DistributedOptimizer [源码解析] 深度学习分布式训练框架 horovod (8) --- on spark [源码解析] 深度学习分布式训练框架 horovod

    2.6K20发布于 2021-07-08
  • 来自专栏搜云库技术团队

    通过10张图介绍,分布式架构如何演进!

    二、分布式架构的应用 1、分布式文件系统 例如:出名的有 Hadoop 的 HDFS, 还有 google的 GFS , 淘宝的 TFS 等; 2、分布式缓存系统 例如:memcache , hbase , mongdb 等; 3、分布式数据库 例如:mysql, mariadb, postgreSql 等; 4、分布式webService 5、分布式计算 以分布式mysql数据库中间件mycat 为例 通过对MyCat的学习,加深分布式系统架构的理解,以及分布式相关的技术,分布式一致性ZooKeeper服务, 高可用HAProxy/keepalived等相关应用。 7、“分布式文件”系统 和 “分布式数据库” ? 横向拆分:将复用的业务拆分出来,独立部署为分布式服务,新增业务只需要调用这些分布式服务 横向拆分需要识别可复用的业务,设计服务接口,规范服务依赖关系。 10分布式服务 ?

    76910发布于 2019-10-17
  • 来自专栏潜行前行

    10分钟说透Saga分布式事务

    开篇 随着微服务架构的兴起,越来越多的公司会在实际场景中遇到分布式事务的问题。特别是在金融应用场景,几个跨进程的应用共同完成一个任务,就更离不开分布式事务的参与。 而对于分布式事务而言,2PC、TCC也是经常被提到了,不过在面对长业务流程,并且很难进行TCC改造的场景,会选择使用Saga分布式事务。 今天会给大家介绍Saga实现分布式事务的内容: Saga的分布式解决方案 Saga处理事务一致性 Saga分布式事务协调 Saga的分布式解决方案 随着互联网的快速发展,原来的单体应用已经很难支撑大流量高并发的请求了 图1 单体到分布式的系统架构过渡 在进行分布式部署之后,会存在多个服务共同完成一个事务操作,并且这些服务彼此都存在于不同的服务器或者网络环境,服务之间需要通过网络远程协作完成事务称之为分布式事务。 鉴于此类业务场景的分布式事务处理,提出了Saga分布式处理模式。Saga是一种“长事务的解决方案”,更适合于“业务流程长、业务流程多”的场景。

    14.8K33发布于 2021-06-25
  • 来自专栏【腾讯云开发者】

    10分钟搞定!Golang分布式ID集合

    导语 | 本文是基于最近对Golang分布式ID的相关讨论,希望本文内容可以对相关技术感兴趣的开发者提供一点经验和帮助。

    2K10编辑于 2022-08-26
  • 来自专栏数据和云

    YH10:分布式存储解决方案zData

    ,研发出一套分布式存储解决方案 zData. 高达超百万IOPS,吞吐量超过10GB/s。 ? ? zData方案以下面两种形态为企业提供优质服务: 分布式存储管理软件zData Light Storage zData Light Storage 充分利用基于x86服务器的内部直连式存储来创建虚拟的、 在基准测试下,三个存储节点的zData架构,可以实现近 100万 IOPS,以及超过10GB/s的吞吐量。 现在基于zData的PaaS平台,能够低成本、低要求的实现数据库的部署、运维和扩展,通过zData分布式存储管理软件将资源池化,实现资源的按需分配和灵活回收。 ?

    1.9K40发布于 2018-03-07
  • 来自专栏福大大架构师每日一题

    2020-10-29:使用redis实现分布式限流组件...

    2020-10-29:使用redis实现分布式限流组件,要求高并发场景同一IP一分钟内只能访问100次,超过限制返回异常,写出实现思路或伪代码均可。 福哥答案2020-10-29: 简单回答: 固定窗口:string。key存ip,value存次数。 滑动窗口:list。key存ip,value=list,存每次访问的时间。 *** 评论里有解决方案 2020-10-29:使用redis实现分布式限流组件,要求高并发场景同一IP一分钟内只,如何回答呢? 2020-10-29:使用redis实现分布式限流组件,要求高并发场景同一IP一分钟内只能访问100次,超过限制返回异常,写出实现思路或伪代码均可。

    48010发布于 2020-10-29
  • 来自专栏嘘、小点声

    python网络爬虫(10分布式爬虫爬取静态数据

    作者说是简单的分布式爬虫(hh),在书中有详细的说明和注解。 这里只是补漏和梳理。 因为进程传递参数的问题,搞了几天还是放弃了在WIndows上跑,换用了Linux。 数据接收与分发网址,需要分布式进程。分布式进程需要使用队列Queue。这里一定是multiprocessing中的导入的队列。网址分发、数据接收分别使用一个队列。 new_urls.txt rm -rf old_urls.txt python3 control/NodeManager.py &> log/control.log & for ((i=1;i<=10 ;i++)) do python3 spider/SpiderWork.py &>log/spider$i.log & done 启动主节点,然后启动10个从节点。

    84040发布于 2019-07-31
  • 来自专栏Python小屋

    Win10+Python3.6配置Spark创建分布式爬虫

    介绍Spark在Win 10系统中的的安装、配置以及在分布式爬虫中的使用,Python版本为3.6.8。 Spark安装、配置和使用请参考《Python程序设计开发宝典》“第12章 多任务与并行处理:线程、进程、协程、分布式、GPU加速”(董付国著,清华大学出版社,2017.10),京东:https://item.jd.com

    1.1K10发布于 2019-12-13
  • 10分钟带你彻底搞懂分布式链路跟踪

    这时候,我们就需要引入分布式服务跟踪机制,并借助于一定的工具,来实现微服务架构下的服务监控。 分布式服务跟踪基本原理首先,我们先来分析一下分布式服务跟踪机制的基本原理,这里,你需要先理解两个基本概念: Trace Id 和 Span Id。 这两个概念是对服务跟踪最高层次的抽象,也是掌握分布式服务跟踪原理的基础。Trace Id 和 Span IdTrace IdTrace Id 即跟踪 ID。 在分布式架构中,每个请求会生成一个全局的唯一性 ID,通过这个 ID 可以串联起整个调用链,也就是说请求在分布式系统内部流转时,系统需要始终保持传递该唯一性 ID,直到请求返回。 对于服务 A 而言,cs 是 11:10:44,cr 是 11:10:55,也就说该次服务请求经由服务 A 的整个调用链路时间是 11s(11:10:44-11:10:55)。

    10.6K26编辑于 2025-02-04
领券