Dubbo——5. Dubbo的 spi 思想 Dubbo——5. Dubbo的 spi 思想前言 这篇文章取自这篇博客,作为整理和收录,方便后续查阅。 spi 是啥? spi,简单来说,就是 service provider interface ,说白了是什么意思呢,比如你有个接口,现在这个接口有 3 个实现类,那么在系统运行的时候对这个接口到底选择哪个实现类呢?这就需要 spi 了,需要根据指定的配置或者是默认的配置,去找到对应的实现类 2020-10-25 Dubbo
分布式系统设计——4. 分布式锁 分布式系统设计——4. 分布式锁前言 这篇文章取自这篇博客,作为整理和收录,方便后续查阅。 Redis 分布式锁 官方叫做 RedLock 算法,是 Redis 官方支持的分布式锁算法。 这个分布式锁有 3 个重要的考量点: 互斥(只能有一个客户端获取锁) 不能死锁 容错(只要大部分 Redis 节点创建了这把锁就可以) Redis 最普通的分布式锁 第一个最普通的实现方式,就是在 2020-10-25 分布式
分布式系统设计——3. RPC 框架简单设计 分布式系统设计——3. RPC 框架简单设计前言 这篇文章取自这篇博客,作为整理和收录,方便后续查阅。 举个栗子,说个最简单的回答思路: 上来你的服务就得去注册中心注册吧,你是不是得有个注册中心,保留各个服务的信息,可以用 zookeeper 来做,对吧。 然后你的消费者需要去注册中心拿对应的服务信息吧,对吧,而且每个服务可能会存在于多台机器上。 接着你就该发起一次请求了,咋发起?当然是基 2020-10-25 分布式
分布式系统设计——2. 接口请求顺序性 分布式系统设计——2. 接口请求顺序性前言 这篇文章取自这篇博客,作为整理和收录,方便后续查阅。 其实分布式系统接口的调用顺序,也是个问题,一般来说是不用保证顺序的。但是有时候可能确实是需要严格的顺序保证。给大家举个例子,你服务 A 调用服务 B,先插入再删除。好,结果俩请求过去了,落在不同机器上,可能插入请求因为某些原因执行慢了一些,导致删除请求先执行了,此时因为没数据所以啥效果也没有;结 2020-10-25 分布式
分布式系统设计——1. 接口幂等性 分布式系统设计——1. 接口幂等性前言 这篇文章取自这篇博客,作为整理和收录,方便后续查阅。 一个分布式系统中的某个接口,该如何保证幂等性?这个事儿其实是你做分布式系统的时候必须要考虑的一个生产环境的技术问题。啥意思呢? 你看,假如你有个服务提供一些接口供外部调用,这个服务部署在了 5 台机器上,接着有个接口就是付款接口。然后人家用户在前端上操作的时候,不知道为啥,总之就是一个订单不小心 2020-10-25 分布式
Dubbo——4. Dubbo负载均衡策略 Dubbo——4. Dubbo负载均衡策略前言 这篇文章取自这篇博客,作为整理和收录,方便后续查阅。 dubbo 负载均衡策略RandomLoadBalance 默认情况下,dubbo 是 RandomLoadBalance ,即随机调用实现负载均衡,可以对 provider 不同实例设置不同的权重,会按照权重来负载均衡,权重越大分配流量越高,一般就用这个默认的就可以了。 算法思想很简单。 2020-10-25 Dubbo
单点登录的三种实现方式 Dubbo——3. Dubbo序列化协议前言 这篇文章取自这篇博客,作为整理和收录,方便后续查阅。 序列化,就是把数据结构或者是一些对象,转换为二进制串的过程,而反序列化是将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程。 dubbo 支持不同的通信协议 dubbo 协议 默认就是走 dubbo 协议,单一长连接,进行的是 NIO 异步通信,基于 hessian 作为序列 2020-10-23 Dubbo
Dubbo——2. Dubbo工作原理 Dubbo——2. Dubbo工作原理前言 这篇文章取自这篇博客,作为整理和收录,方便后续查阅。 dubbo 工作原理 第一层:service 层,接口层,给服务提供者和消费者来实现的 第二层:config 层,配置层,主要是对 dubbo 进行各种配置的 第三层:proxy 层,服务代理层,无论是 consumer 还是 provider,dubbo 都会给你生成代理,代理之间进行网络通信 第 2020-10-23 Dubbo
Dubbo——1. 引入Dubbo Dubbo——1. 引入Dubbo前言 这篇文章取自这篇博客,作为整理和收录,方便后续查阅。 为什么要进行系统拆分?如何进行系统拆分?拆分后不用 dubbo 可以吗? 其实为啥会这样呢?这就是因为整个大行业技术发展的原因。 早些年,印象中在 2010 年初的时候,整个 IT 行业,很少有人谈分布式,更不用说微服务,虽然很多 BAT 等大型公司,因为系统的复杂性,很早就是分布式架构,大 2020-10-23 Dubbo
AddTwoNumbers 题目介绍两数相加 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 123输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -&g 2020-10-23 Leetcode