![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式
文章平均质量分 83
jy02268879
这个作者很懒,什么都没留下…
展开
-
【十二】SpringCloud整合seata分布式事务 AT模式
一、先启动注册中心这里使用注册中心eurekahttps://blog.csdn.net/jy02268879/article/details/100176361二、seata-server服务端启动及其配置下载seata-server服务端代码:https://github.com/seata/seata/releases要跑在Linux上就下载seata-server-1.4.1.tar.gz我这里是跑在windows上做个测试,所以下的seata-server-1.4...原创 2021-03-19 18:30:53 · 810 阅读 · 0 评论 -
[分布式事务-TCC] 2. TCC的异常场景及应对机制【转】
本文转自[分布式事务-TCC] 2. TCC的异常场景及应对机制文章导航TCC的异常场景 幂等处理 产生原因 应对策略 空回滚 产生原因 应对策略 资源悬挂 产生原因 应对策略 三种异常总结 幂等 空回滚 资源悬挂 共通点 TCC的异常场景在分布式系统中,随时随地都需要面对网络超时,网络重发和服务器宕机等问题。所以分布式事务框架作为搭载在分布式系统之上的一个框架型应用也绕不开这些问题。具体而言,有以下常见问题:幂等处理 空回滚.转载 2020-09-06 17:13:32 · 710 阅读 · 0 评论 -
【二十八】redis之Cluster集群间通信Gossip协议
一、Gossip 在Redis-Cluster中如何作用redis集群之间采用的Gossip协议进行通信。redis集群中每台机器上都保存了一份元数据,如果有节点出现了元数据变更会不断的新的元数据发给其他节点,让其他节点也进行元数据变更。这个跟zookeeper很不一样,ZK集群的元数据是集中式的,且是强一致性,主要由Leader外带提供写操作。在分布式系统中,需要提供维护节点元数据信息的机制,所谓元数据是指:节点负责哪些数据、主从属性、是否出现故障等状态信息。常见的元数据维护方式分为:集中原创 2020-08-01 15:53:17 · 1163 阅读 · 0 评论 -
【六】zookeeper 服务器选举与ZAB协议
一、服务器启动时期的Leader选举假设Server1 (myId 1)这台启动了,它是无法进行Leader选举的,要等到Server2 (myId 2)启动后,这两台机器能够进行相互通信,每台机器试图找到一个Leader,于是进入Leader选举流程1.每个Server会发出一个投票由于是初始情况,因此对于Server1和Server2来说,都会将自己作为Leader服务器来进行投票。每次投票包含的最基本的元素是:所推举的服务器的myid和ZXID。我们以(myid,ZXID)的形式来表示原创 2020-08-01 15:22:47 · 241 阅读 · 0 评论 -
序列化之protobuf
protobuf的编码及序列化介绍我觉得这两篇还可以深入 ProtoBuf - 编码深入 ProtoBuf - 序列化源码解析一、简介protobuf为Google开发的高性能序列化和反序列化工具官方文档给出的定义和描述:protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ .原创 2020-08-01 15:52:06 · 444 阅读 · 0 评论 -
【七】Spring cloud Ribbon原理笔记
一、简介Ribbon是Netflix出品的一套负载均衡组件,提供了许多Rule规则从负载列表中选取合适的server实例。当实例出现问题时候,Riibbon本身具有自动移除问题实例的功能。二、核心组件组成部分 职能 Server Server 作为服务实例的表示,会记录服务实例的相关信息,如:服务地址,所属zone,服务名称,实例ID等 ServerList 维护着一组Server实例列表,在应用运行的过程中,Ribbon通过ServerList中的服务实例供负载均原创 2020-08-01 15:55:20 · 648 阅读 · 0 评论 -
分布式一致性算法之Paxos
2pc、3pc、paxos、raft都是解决分布式系统中的一致性问题的。一、两个类型的一致性(操作原子性与副本一致性)1.2pc、3pc协议用于保证属于多个数据分片上的操作的原子性。这些数据分片可能分布在不同的服务器上,2PC、3PC协议保证多台服务器上的操作要么全部成功,要么全部失败。2.Paxos协议用于保证同一个数据分片的多个副本之间的数据一致性。当这些副本分布到不同的数据中心时。Raft协议解决Paxos的实现难度关于2PC 3PC:分布式事务之2pc、3pc关于:分布式之flp、转载 2020-05-14 18:05:12 · 466 阅读 · 1 评论 -
分布式事务之2pc、3pc
2pc、3pc、paxos、raft都是解决分布式系统中的一致性问题的。一、两个类型的一致性(操作原子性与副本一致性)1.2pc、3pc协议用于保证属于多个数据分片上的操作的原子性。这些数据分片可能分布在不同的服务器上,2PC、3PC协议保证多台服务器上的操作要么全部成功,要么全部失败。2.Paxos协议用于保证同一个数据分片的多个副本之间的数据一致性。当这些副本分布到不同的数据中心时。Raft协议解决Paxos的实现难度二、2PCTwo-Phase Commit,两阶段提交1.阶段原创 2020-05-14 11:01:13 · 716 阅读 · 0 评论 -
分布式之cap、base理论、flp不可能原理、一致性问题、共识算法
一、CAP理论CAP理论:在一个分布式系统中,最多只能满足C、A、P中的2个。CAP含义:C:Consistency 一致性:同一数据的多个副本是否实时相同。all nodes see the same data at the same timeA:Availability 可用性:一定时间内,系统能返回一个明确的结果 则称为该系统可用。Reads and writes always succeedP:Partition tolerance 分区容错性:分布式系统在遇到某节点或网络分区原创 2020-05-13 14:01:48 · 1645 阅读 · 0 评论 -
【二十五】分布式锁(redlock、redis、zookeeper)
一、分布式锁必须保证的特性 互斥 无死锁 容错 阻塞与非阻塞 可重入二、如何使用redis实现分布式锁 获取锁 SET key random_val NX PX 30000 释放锁 if redis.call("get", KEYS[1]) == ARGV[1] then ...原创 2020-04-28 12:08:21 · 646 阅读 · 0 评论 -
【十九】Spring Boot之分布式事务(JTA、Atomikos、Druid、Mybatis)
一、介绍1.分布式、本地事务1.本地事务:普通事务。只能保证在一个数据库上的操作ACID。JDBC事务就是本地事务,通过connection对象管理。2.分布式事务:两个及以上数据库源的事务(由每台数据库的本地事务组成的), 使事务可以跨越多个数据库。比如,A库的a1表和B库的b1表,在一个事务中,如果B库的b1表回滚了,A库的a1表也要回滚。JTA事务支持分布式事务。JTA...原创 2018-11-23 16:47:24 · 4906 阅读 · 2 评论 -
【十九】redis之Cluster数据分布概述(分布式存储系统中,数据分布算法简介.顺序分布、普通hash、一致性hash、虚拟槽)
redis cluste在3.0中有了。数据分布1.顺序分布对比分布方式 特点 典型产品 哈希分布 数据分散度高 键值分布业务无关 无法顺序访问 支持批量操作 一致性哈希Memcache Redis Cluster 其他缓存 顺序分布 数据分散度易倾斜 键值...原创 2018-08-07 21:06:29 · 1896 阅读 · 0 评论 -
【二十三】redis之缓存穿透、缓存击穿、缓存雪崩及解决方案
一、缓存穿透概念:一次请求发现数据在缓存和DB中都没有。通常是恶意攻击比如:请求一个数据的ID为-1解决方案:1.拦截不合法请求可考虑使用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitMap中,一个一定不存在的数据会被这个bitMap拦截掉,从而避免底层存储系统的查询压力。2.设置短期空缓存比如:请求一个数据的ID为-1,读了缓存发现没有,读了数据库发...原创 2020-04-23 17:03:54 · 149 阅读 · 0 评论 -
【二十四】redis之缓存与数据的一致性(DTP)
分布式的数据库保证数据一致性,如果有分布式事务是最好,或者XA这种分布式事务也挺好。但是这里说的可以粗暴的理解成redis作为缓存使用的时候如何保证redis和mysql中数据的一致性。一、读操作读操作都没什么大的分歧,一般都是先读redis,redis没有就读mysql,然后把读出来的数据写到redis中。二、先删除redis,再更新mysql即使写mysql失败了,也没关系...原创 2020-04-26 14:57:21 · 279 阅读 · 0 评论