![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式
文章平均质量分 91
东境物语
这个作者很懒,什么都没留下…
展开
-
分布式系统的SLA如何定义
SLA(Service-Level Agreement)服务等级协议,是指系统服务提供者(Provider)对客户(Customer)的一个可量化的服务承诺,常见于大型分布式系统中,用于衡量系统服务是否稳定健康的常见方法。转载 2022-10-18 20:15:00 · 2175 阅读 · 1 评论 -
Raft协议是如何实现数据一致性的
Raft协议是一种强一致性、去中心化、高可用的分布式协议,它是用来解决分布式一致性问题的,相对于大名鼎鼎的Paxos协议,Raft协议更容易理解,并且在性能、可靠性、可用性方面是不输于Paxos协议的。许多中间件都是利用Raft协议来保证分布式一致性的,例如Redis的sentinel,CP模式的Nacos的leader选举都是通过Raft协议来实现的。今天就和大家一起探讨一下Raft协议的实现原理。转载 2022-09-29 18:38:06 · 1830 阅读 · 0 评论 -
Seata 分布式事务实践和开源详解
本文整理自蚂蚁金服技术专家、分布式事务 Seata 发起者之一张森(花名:绍辉)在GIAC全球互联网架构大会的分享。详细讲解了在分布式架构演进中,蚂蚁金服面对的跨服务、跨数据库的业务数据一致性问题以及应对措施,并分享了分布式事务 Seata 的 AT、TCC、Saga 和 XA 四种模式。Seata:https://github.com/seata/seata一、自研分布式事务解决数据一致性问题1.1 分布式事务问题产生原因1.1.1 数据库的水平拆分蚂蚁金服的业务数据库起初是单库单..转载 2020-09-02 18:23:20 · 917 阅读 · 0 评论 -
分布式跟踪系统Pinpoint
Pinpoint是用 Java 编写的APM(应用性能管理)工具,用于大规模分布式系统。在Dapper之后,Pinpoint提供了一个解决方案,以帮助分析系统的总体结构以及分布式应用程序的组件之间是如何进行数据互联的。 安装agent是无侵入式的 对性能的影响最小(只增加约3%资源利用率) 支持的模块: JDK 6+ Tomcat 6/7/8, Jet...转载 2020-01-08 14:55:43 · 436 阅读 · 0 评论 -
全链路监控(一):方案概述与比较
0 问题背景随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。全链路监控组件就在这样的问题背景下产...转载 2019-12-11 20:08:22 · 1068 阅读 · 0 评论 -
分布式事务——消息最终一致性方案
前言随着分布式服务架构的流行与普及,原来在单体应用中执行的多个逻辑操作,现在被拆分成了多个服务之间的远程调用。虽然服务化为我们的系统带来了水平伸缩的能力,然而随之而来挑战就是分布式事务问题,多个服务之间使用自己单独维护的数据库,它们彼此之间不在同一个事务中,假如A执行成功了,B执行却失败了,而A的事务此时已经提交,无法回滚,那么最终就会导致两边数据不一致性的问题;尽管很早之前就有基于两阶段提交...转载 2019-09-18 10:42:34 · 185 阅读 · 0 评论 -
你应该知道的RPC原理
在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。 而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会遇到两个问题:1)要搭建一个新服务,免不了需要依赖他人的服务,而现在他人的服务都在远端,怎么调用?2)其它...转载 2019-09-12 15:01:44 · 160 阅读 · 0 评论 -
阿里巴巴混沌测试工具ChaosBlade
ChaosBlade 是什么?ChaosBlade 是一款遵循混沌工程实验原理,提供丰富故障场景实现,帮助分布式系统提升容错性和可恢复性的混沌工程工具,可实现底层故障的注入,特点是操作简洁、无侵入、扩展性强。(git地址:https://github.com/chaosblade-io/chaosblade)ChaosBlade 基于 Apache License v2.0 开源协议,目前...转载 2019-09-11 16:55:17 · 8529 阅读 · 0 评论 -
AI时代的全链路监控(阿里)
全链路监控从业务的视角出发,监控整个业务流程的健康状况,无需多个系统切换,直观看到全局和上下游,方便快速发现、定位问题。今天,我们一起来看看阿里基础设施技术团队在这方面的实践经验。背景近年来,随着阿里新业务、新技术的快速发展,传统的业务总量“监控大盘”已经越来越不能满足监控需求,主要表现在以下几个方面:缺乏全局视角:“监控大盘”主要反映的是单个业务或应用的运行状态,缺少全局的业务视角能...转载 2019-09-11 18:01:30 · 1537 阅读 · 0 评论 -
使用Prometheus+Grafana搭建监控系统(一)
1.前言在线上业务中经常遇到服务器负载过高问题,由于没有监控,一直没发现,直到业务方反馈网站打开速度慢,才能发现问题。这样显得开发很被动。因那次考虑研究搭建一套监控系统了。本身对于spring boot应用,可以使用spring boot admin进行监控,但是发现不够全面,调研了一段时间,发现Prometheus+Grafana还是可以监控,如下是系统流程图。image....转载 2019-09-06 17:32:48 · 574 阅读 · 0 评论 -
分布式环境下定时任务单点运行
场景提供接口服务的API负载均衡在了7台机器上,要保证定时任务只在一台机器上跑,因为有些定时任务不能同时进行,并且多台机器同时执行定时任务也浪费资源,下面来讲讲如何实现定时任务单点运行。方案一:根据机器的IP来限制因为部署服务的7台机器ip是已知的,那么就可以通过ip来限制哪台机器上的应用可以跑定时任务,获取本服务器或者客户端ip方法,请移步至: Java获取客户端、本机IP @...转载 2019-08-06 10:02:23 · 834 阅读 · 0 评论 -
什么是RPC
一个阳光明媚的早晨,老婆又在翻看我订阅的技术杂志。“老公,什么是RPC呀,为什么你们程序员那么多黑话!”,老婆还是一如既往的好奇。“RPC,就是Remote Procedure Call的简称呀,翻译成中文就是远程过程调用嘛”,我一边看着书,一边漫不经心的回答着。“啥?你在说啥?谁不知道翻译成中文是什么意思?你个废柴,快给我滚去洗碗!”“我去。。。”,我如梦初醒,我对面坐着的可不是一个程...转载 2019-01-28 11:17:03 · 382 阅读 · 0 评论 -
微服务系列:RPC框架的实现原理,及RPC架构组件详解
RPC的实现原理也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。比如说,A服务器想调用B服务器上的一个方法:Employee getEmployeeByName(String fullName)整个调用过程,主要经历如下几个步骤:1、建立通信...转载 2019-06-21 21:03:19 · 780 阅读 · 0 评论 -
zookeeper的原理和应用
场景一有这样一个场景:系统中有大约100w的用户,每个用户平 均有3个邮箱账号,每隔5分钟,每个邮箱账需要收取100封邮件,最多3亿份邮件需要下载到服务器中(不含附件和正文)。用20台机器划分计算的压力,从 多个不同的网路出口进行访问外网,计算的压力得到缓解,那么每台机器的计算压力也不会很大了。通过我们的讨论和以往的经验判断在这场景中可以实现并行计算,但我们还期望能对并行计...转载 2019-06-21 20:07:07 · 203 阅读 · 0 评论 -
ZooKeeper会话超时(dubbo自动剔除坏节点原理)
dubbo的provider结点如果挂了,自动剔除原理:zk的临时节点,会话保持原理。在ZK中,很多数据和状态都是和会话绑定的,一旦会话失效,那么ZK就开始清除和这个会话有关的信息,包括这个会话创建的临时节点和注册的所有Watcher。1、会话概述在ZooKeeper中,客户端和服务端建立连接后,会话随之建立,生成一个全局唯一的会话ID(Session ID)。服务器和客户端之间维持的...转载 2019-06-21 18:17:18 · 6646 阅读 · 0 评论 -
eureka和zookeeper的区别
作为服务注册中心,Eureka比Zookeeper好在哪里著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。4.1 Zookeeper保证CP当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分...转载 2019-06-21 15:55:21 · 143 阅读 · 0 评论 -
SpringBoot2.0.6集成Dubbo(注解形式)
springboot集成dubbo有多种方式,这里介绍一种比较新的不用xml的方式分享给大家,用到依赖dubbo-spring-boot-starter项目环境:win10+jdk1.8+zookeeper3.4.13+springboot2.0.6zookeeper的安装和配置不了解的,读者大人请自行百度。项目运行前,首先启动zookeeper的zkServer.cmd。项目结构...转载 2019-06-20 15:39:14 · 396 阅读 · 0 评论 -
ETCD 简介 + 使用
随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐渐为开发人员所关注。在云计算时代,如何让服务快速透明地接入到计算集群中,如何让共享配置信息快速被集群中的所有机器发现,更为重要的是,如何构建这样一套高可用、安全、易于部署以及响应快速的服务集群,已经成为了迫切需要解决的问题。etcd为解决这类问题带来了福音,本文...转载 2019-06-05 18:04:09 · 213 阅读 · 0 评论 -
分布式事务的四种解决方案
简述分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。解决方案在分布式系统中,要实现分布式事务,无外乎那几种解决方案。一、两阶段提交(2PC)两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者是否要真...转载 2019-06-05 16:20:58 · 1575 阅读 · 2 评论 -
分布式事物--本地消息表
本地消息表这种实现方式的思路,其实是源于 ebay,后来通过支付宝等公司的布道,在业内广泛使用。其基本的设计思想是将远程分布式事务拆分成一系列的本地事务。如果不考虑性能及设计优雅,借助关系型数据库中的表即可实现。举个经典的跨行转账的例子来描述。第一步伪代码如下,扣款 1W,通过本地事务保证了凭证消息插入到消息表中。第二步,通知对方银行账户上加 1W 了。那问题来了,如何通知到对...原创 2019-05-27 20:55:06 · 3606 阅读 · 0 评论 -
分布式事务--本地消息表(定时轮询扫描)
场景如下:订单系统收到第三方支付平台支付成功的通知后,需要进行1:更新订单的状态为已支付2:扣减商品库存订单库:订单表order:orderID、userID、status商品库:商品库存表productStock:productStockID、productID、stock出库单outStockBill:outStockBillID、orderID、stock正常...转载 2019-05-27 20:31:04 · 2029 阅读 · 0 评论 -
RPC框架
背景随着企业 IT 服务的不断发展,单台服务器逐渐无法承受用户日益增长的请求压力时,就需要多台服务器联合起来构成「服务集群」共同对外提供服务。 同时业务服务会随着产品需求的增多越来越肿,架构上必须进行服务拆分,一个完整的大型服务会被打散成很多很多独立的小服务,每个小服务会由独立的进程去管理来对外提供服务,这就是「微服务」。 当用户的请求到来时,我们需要将用户的请求分散到多个服务去各自处理...转载 2019-05-23 17:39:29 · 305 阅读 · 0 评论 -
分布式全局唯一ID生成策略
为什么分布式系统需要用到ID生成系统在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据库的分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求;特别一点的如订单、骑手、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。概括下来,业务系统对I...转载 2019-05-09 17:01:42 · 230 阅读 · 0 评论 -
分布式锁的几种实现方式
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致...转载 2019-04-24 18:39:46 · 197 阅读 · 0 评论 -
Apache Curator入门实战
Curator是Netflix公司开源的一个Zookeeper客户端,与Zookeeper提供的原生客户端相比,Curator的抽象层次更高,简化了Zookeeper客户端的开发量。注意:curator的版本必须匹配服务器上安装zookeeper的版本,使用curator的版本必须匹配服务器上安装zookeeper的版本,本人使用的是zookeeper的最新稳定版3.4.9(最新不稳定版...转载 2019-04-24 16:46:28 · 373 阅读 · 0 评论 -
zookeeper安装教程
zookeeper有单机、伪集群、集群三种部署方式,可根据自己对可靠性的需求选择合适的部署方式。下边对这三种部署方式逐一进行讲解。一、单机安装1.1 下载进入要下载的版本的目录,选择.tar.gz文件下载下载链接:http://mirror.bit.edu.cn/apache/zookeeper/1.2 安装使用tar解压要安装的目录即可,以3.4.5版本为例这里以解压...转载 2019-01-30 17:58:22 · 847 阅读 · 0 评论 -
基于Zookeeper的分布式锁
什么是Zookeeper?Zookeeper是一种提供配置管理、低延迟同时还要保持一致性和可用性,实际上非常困难。因此zookeeper提供了这些功能,开发者在zookeeper之上构建自己的各种分布式系统。虽然zookeeper的实现比较复杂,但是它提供的模型抽象却是非常简单的。Zookeeper提供一个多层级的节点命名空间,每个节点都用一个以斜杠(/)分隔的路径表示,而且每个节点都有父...转载 2019-04-24 14:51:07 · 168 阅读 · 0 评论