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

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

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

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

    10 分钟看懂分布式事务

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

    1K50发布于 2018-04-17
  • 来自专栏xingoo, 一个梦想做发明家的程序员

    【插件开发】—— 10 JFace开发详解

    address; 6 public int getId() { 7 return id; 8 } 9 public void setId(int id) { 10 8 import org.eclipse.jface.viewers.LabelProvider; 9 import org.eclipse.jface.viewers.ListViewer; 10 = new int[]{SWT.LEFT,SWT.LEFT,SWT.LEFT,SWT.LEFT}; 9 for(int i=0;i<columnNames.length;i++){ 10 8 import org.eclipse.jface.viewers.LabelProvider; 9 import org.eclipse.jface.viewers.TreeViewer; 10 StyleRange(0,12,null,null,SWT.BOLD)); 8 viewer.changeTextPresentation(style, true); 9 10

    3.4K50发布于 2018-01-18
  • 来自专栏苏三说技术

    10分布式ID,真香!

    前言 分布式ID,在我们日常的开发中,其实使用的挺多的。 有很多业务场景在用,比如: 分布式链路系统的trace_id 单表中的主键 Redis中分布式锁的key 分库分表后表的id 今天跟大家一起聊聊分布式ID的一些常见方案,希望对你会有所帮助。 10位的机器标识,10位的长度最多支持部署1024个节点 12位的计数序列号,序列号即一系列的自增id,可以支持同一节点同一毫秒生成多个ID序号,12位的计数序列号支持每个节点每毫秒产生4096个ID序号 最近整理了一份10万字的面试宝典,可以免费送给大家,获取方式加我微信:su_san_java,备注:面试。 它内部有一套机制解决机器时钟回拨的问题: 如果你想知道美团Leaf的更多细节,可以看看Github地址:https://github.com/Meituan-Dianping/Leaf 9 Tinyid Tinyid是滴滴用Java开发的一款分布式

    83510编辑于 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.1K90发布于 2018-01-05
  • 来自专栏phodal

    分布式开发规范治理​

    从这个角度来看,只是讨论分布式系统,可能有一些单薄。但是呢,我们在写规范,针对的是系统吗?难道不是团队中的开发人员?所以,我们所想的治理的是分布式协作的规范性问题。 开发态。即结合开发过程中的工具(如 IDE、Git、CLI),将规范内置到开发流程中。典型的有 Git Hooks、IDE 插件等。 测试态。 分布式场景下的规范 现在,让我们回到先前我们定义的分布式场景,思考一下如何在这种场景下,构建规范工具化? 当然了,它更多的是在测试态、开发态来解决问题。理想情况下,应该包含 IDE 插件,在开发时能提醒开发人员,系统架构有哪些问题。 指标模型:架构适应度函数 虽然,我们可以构建一个基于“分布式”场景的规范,但是从某种意义上来说,这些规范是一种约束。对于开发人员来说,我们需要一种更好的指导指标,而不是我们破坏了哪些规则。

    97510编辑于 2022-03-08
  • 来自专栏程序员小航

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

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

    1K11发布于 2021-07-09
  • 来自专栏java达人

    分布式系统模式10-Request Pipeline

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

    72310发布于 2021-01-05
  • 来自专栏捡田螺的小男孩

    Redis分布式锁的10个坑

    日常开发中,经常会碰到秒杀抢购等业务。为了避免并发请求造成的库存超卖等问题,我们一般会用到Redis分布式锁。 但是使用Redis分布式锁,很容易踩坑哦~ 本文田螺哥将给大家分析阐述,Redis分布式锁的10个坑~ 1. 10.Redis主从复制导致的坑 实现Redis分布式锁的话,要注意Redis主从复制的坑。 (假设锁自动失效时间为10秒,则超时时间一般在5-50毫秒之间,我们就假设超时时间是50ms吧)。如果超时,跳过该master节点,尽快去尝试下一个master节点。 (如上图,10s> 30ms+40ms+50ms+4m0s+50ms) 如果取到了锁,key的真正有效时间就变啦,需要减去获取锁所使用的时间。

    1.9K20编辑于 2022-12-29
  • 来自专栏写代码和思考

    Android开发(10) 动画(Animation)

    1.准备一个animation对象,改对象可以看作是个动画对象,它描述(封装)了什么样式的动画。 我们可以在代码里手动创建这些对象,对应的4个animaiton对象类:

    82900发布于 2020-03-16
  • 来自专栏罗西的思考

    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.4K40发布于 2021-11-25
  • 来自专栏腾讯云大数据与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表,做到写入负载均衡

    13310编辑于 2025-06-03
  • 来自专栏鸿蒙开发笔记

    OpenHarmony 实战开发——分布式DeviceProfile

    三、DeviceProfile的典型业务流程分布式 DeviceProfile 基于分布式软总线、分布式数据管理、分布式 Profile 等技术特性,构建统一的设备信息管理机制。 图 2 展示了两个设备的分布式 DeviceProfile 及其内部业务流程。图2 分布式DeviceProfile在介绍业务流程之前,先让我们来认识一下图 2 中涉及到的几个模块。 CS 负责采集本设备的设备信息;ㆍ HiChain:设备互信认证服务,管理设备的可信群组;ㆍ 分布式数据管理服务:DeviceProfile 通过分布式数据管理服务插入、更新、查询、删除及同步设备信息。 `1.OpenHarmony开发基础2.OpenHarmony北向开发环境搭建3.鸿蒙南向开发环境的搭建4.鸿蒙生态应用开发白皮书V2.0 & V3.05.鸿蒙开发面试真题(含参考答案) 6.TypeScript 入门学习手册7.OpenHarmony 经典面试题(含参考答案)8.OpenHarmony设备开发入门【最新版】9.沉浸式剖析OpenHarmony源代码10.系统定制指南11.

    32020编辑于 2025-04-11
  • 来自专栏夕阳醉了

    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) 选项设置一个特定的键作为锁,并设置锁的过期时间。 无论选择哪种方案,都需要考虑锁的安全性、原子性、续约和释放等问题,以确保在分布式环境中共享资源的安全访问。

    61051编辑于 2023-10-16
  • 来自专栏测试开发干货

    【简历优化平台开发教程-10

    技术栈,目前我计划是分为python系和java系,这二者实际上,在工作中95%的工作都是相同的,尤其是简历上,很难体现出差别。

    28740编辑于 2023-08-14
  • 来自专栏Java架构师必看

    2020-10_开发经验集

    Maven 如何配置 HTTP 代理 在企业开发,有很多公司考虑到网络安全都会使用内网,一些刚到公司的小伙伴装完环境后会发现,因为连不上外网导致Maven库下不下来,这个时候就需要在Maven中配置代理

    39920发布于 2021-03-22
  • 来自专栏Sign

    精灵之息 开发日志(10

    这个文章系列叫“面向数据开发游戏”,但感觉名字没起好。 名字给人感觉像是给自己定了个kpi,或者没有主见完全根据数据走。 这是不是有点违背了“独立精神”呢?

    42640发布于 2021-08-24
  • 来自专栏OpenFPGA

    FPGAHDL 开发10 条规则

    HDL 开发10 条规则 编写良好的、可移植的、可重用的 HDL 代码,使设计能够以所需的频率实现,这绝对是一个挑战。 为此,许多(不是大多数)专业组织都有编码标准。 但是,如果你是专业开发 FPGA,或者是作为爱好者,都应该有一些基本的编码规则。当你来到项目的后端并且必须实现时序收敛时,遵守这些基本规则可以节省大量时间和精力。 为此,我开始思考我的 HDL 开发10 大规则是什么?? 状态机——只是单个进程。忘记关于组合部分和顺序部分的学校和课程。所有状态机都应该是单个进程。 这些是我的 HDL 开发的前 10 条(好吧,12 条规则)。我很想知道如果是你,你会考虑添加哪些规则?

    60220编辑于 2023-02-14
  • 来自专栏java一日一条

    Python开发10个小贴士

    列表推导式 你有一个list:bag = [1, 2, 3, 4, 5] 现在你想让所有元素翻倍,让它看起来是这个样子:[2, 4, 6, 8, 10] 大多初学者,根据之前语言的经验会大概这样来做 ? 初始化列表 假如你要一个是10个整数0的列表,你可能首先想到: ? 换个方式吧: ? 看,多优雅。 注意:如果你列表包含了列表,这样做会产生浅拷贝。 举个例子: ? Oops! 10. tab键还是空格键 长时间来看,将tab和空格混在一起会造成灾难,你会看到IndentationError: unexpected indent。

    64520发布于 2018-09-18
  • 来自专栏罗西的思考

    深度学习分布式训练框架 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.5K20发布于 2021-07-08
领券