分布式
葩_
这个作者很懒,什么都没留下…
展开
-
ribbon学习笔记(三)RibbonLoadBalancerClient的execute是怎么执行的?如何获得一个ILoadBalancer
一、先看下整体代码public <T> T execute(String serviceId, LoadBalancerRequest<T> request) throws IOException { return execute(serviceId, request, null);}public <T> T execute(String serviceId, LoadBalancerRequest<T> request, Object hint原创 2020-07-23 15:53:59 · 1922 阅读 · 1 评论 -
ribbon学习笔记(二)LoadBalancerInterceptor的处理逻辑
上一篇讲到,Ribbon与Spring-Cloud整合以后,会给RestTemplate加上一个LoadBalancerInterceptor的拦截器,那么现在就来看看LoadBalancerInterceptor里面的逻辑吧~话不多说,先上代码:package org.springframework.cloud.client.loadbalancer;import java.io.IOException;import java.net.URI;i原创 2020-07-23 14:37:40 · 1206 阅读 · 0 评论 -
ribbon学习笔记(一)通过@LoadBalanced查询Ribbon是如何与SpringCloud整合的
首先用过Ribbon的都知道,要想在Spring-Cloud中使用Ribbon,需要在RestTemplate Bean上加入@LoadBalanced注解。那么我们可以先看看@LoadBalanced(代码如下)。package org.springframework.cloud.client.loadbalancer;import java.lang.annotation.Documented;import java.lang.annotation原创 2020-07-23 10:15:57 · 319 阅读 · 0 评论 -
分布式_分布式事务_强事务(CP)_两阶段提交协议
一、两阶段提交协议 第一阶段:提交请求阶段/投票阶段 两阶段协议就是通过两次协商来完成一个事务操作。一般第一个事务的发起方叫做 协调者(Coordinator)。第一步,协调者会通知其他系统,我们要执行一个事务啦。其他系统这时会通知协调者自己是否准备好执行事务。如果都可以执行,则进入第二步。如果有一个系统说自己不能执行事务,则整个分布式事务回滚。上图: 上图表示了投票阶段所有系统的操作过原创 2020-06-12 15:49:39 · 651 阅读 · 0 评论 -
分布式_单机事务_ACID理论
一、ACID原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)二、原子性(Atomicity) 原子性:同一个事务中,多个操作要么同时成功,num等于0;要么只要有一个操作失败,那么整个事务回滚,num回到等于10的状态。三、 一致性(Consistency) 一致性:指的是数据的一致性,如上图,如果事务执行成功,那么num最后原创 2020-06-12 14:31:29 · 248 阅读 · 0 评论 -
分布式_CAP理论学习
一、CAPConsistency 【kənˈsɪstənsi】 (一致性)Availability 【əˌveɪlə’bɪləti】(可用性)Partition Tolerance 【pɑːˈtɪʃn ˈtɒlərəns】(分区容错性)二、Consistency一致性 一致性说的是当一个相同的请求访问不同的节点时,要么读取到的都是最新的数据,要么读取失败。继续上图: 当然在分布式系统中是有可能发生一个或原创 2020-06-10 11:04:48 · 212 阅读 · 0 评论 -
分布式_分布式ID生成方案(阿里面试题,实时思考出来的)
一、前言 刚好前段时间面试阿里被问到了这个问题,这里就聊聊吧~~二、雪花(SnowFlake)算法 记得当时被面试官问到这个问题的时候,还不知道有雪花算法这个东西。就说了下自己的想法。首先想到了肯定要有一个时间戳,为了确保精度,决定使用纳秒。然后想到肯定是多台服务器一起产生id,为了区分机器,想到了用机器编码区分。接着在一想,如果和阿里一样有多个机房,每个机房的机器编码可能重复,那就在加一个机房号吧。有原创 2020-06-03 13:54:14 · 487 阅读 · 0 评论