Consul介绍 Posted on 2020-04-14 | In Spring Cloud Words count in article: 1.4k | Reading time ≈ 6 Consul介绍简介Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。Consul是分布式的、高可用的、 可横向扩展的。它具备以下特性: 服务发现: Consul提供了通过DNS或者HTTP接口的方式来注册服务和发现服务。一些外部的服务通过Consul很容易的 ... Read more »
Eureka介绍 Posted on 2020-04-14 | In Spring Cloud Words count in article: 730 | Reading time ≈ 2 Eureka介绍产生的背景一般我们自己的服务之间互相调用的时候,直接就在配置文件中配置被调用的服务地址。然后服务读取配置文件,发起调用。调用关系可以简化为下图: 这样的调用会存在一些不小的问题: 服务B如果挂了的话,服务A即时调用不同 如果后续再新增了N多服务器的话,服务A每个服务都要维护一个调 ... Read more »
RAFT协议介绍 Posted on 2020-04-14 | In Spring Cloud Words count in article: 2.6k | Reading time ≈ 9 RAFT协议介绍RAFT协议是一种用于管理复制日志的一致性算法,其功能与Paxos相同类似,但其算法结构和Paxos算法不同,在设计Raft算法时设计者就将易于理解作为其目标之一,这使得Raft算法易于构建实际的系统,大幅度减少了工程化的工作量,也方便开发者此基础上进行扩展。 工作模式RAFT工作模 ... Read more »
各种服务发现框架对比 Posted on 2020-04-14 | In Spring Cloud Words count in article: 1.6k | Reading time ≈ 5 各种服务发现框架对比当前比较流程且常用的框架大体上有4个。Consul、Eureka、Zookeeper和Etcd。它们都解决了服务注册和服务发现问题。其中Eureka满足CAP中的AP,Consul、Etcd和Zookeeper满足了CAP中的CP。 EurekaEureka是在Java语言上,基 ... Read more »
熔断、降级和限流之间的区别 Posted on 2020-04-14 | In Spring Cloud Words count in article: 1.2k | Reading time ≈ 3 熔断、降级和限流之间的区别当我们的系统整体访问量突然剧增,大量的请求在瞬间涌入,或者某个下游服务突然异常,大量请求调用阻塞又或者在可预见的将来,几天内比如,会有一波流量的高峰(比如双十一)。这个时候,我们要怎么做才能保证系统正常提供功能,或者说,最低要求,如何保证系统核心业务能正常提供功能? 这种情 ... Read more »
Redis的几种部署架构 Posted on 2020-04-13 | In 数据库 Words count in article: 3.6k | Reading time ≈ 12 Redis的几种部署架构单例部署Redis单例部署,采用单个Redis节点部署架构,没有备用节点实时同步数据,不提供数据持久化和备份策略,适用于数据可靠性要求不高的纯缓存业务场景。 这个方案优点是: 架构简单,部署方便; 高性价比:缓存使用时无需备用节点(单实例可用性可以用supervisor或 ... Read more »
分布式ID生成-SnowFlake实现 Posted on 2020-04-12 | In 分布式 Words count in article: 684 | Reading time ≈ 3 分布式ID生成-SnowFlake实现SnowFlake原理Twitter的snowflake算法解决了分布式系统生成全局ID的需求,生成64位的Long型数字. 它是把64位分成各个部分,分别代表: 第一位不使用,预留 接下来的41位表示毫秒时间 5位数据中心ID 5位worker的ID 最后1 ... Read more »
分布式事务入门 Posted on 2020-04-12 | In 分布式 Words count in article: 6.2k | Reading time ≈ 20 分布式事务入门什么是分布式事务要理解分布式事务,先看看什么是事务? 事务是指是程序中一系列严密的逻辑操作,而且所有操作必须全部成功完成,否则在每个操作中所作的所有更改都会被撤消。可以通俗理解为 (ALL OR NOTHING):就是把多件事情当做一件事情来处理,好比大家同在一条船上,要活一起活,要完 ... Read more »
分布式锁的几种实现方式 Posted on 2020-04-12 | In 分布式 Words count in article: 3.4k | Reading time ≈ 12 分布式锁的几种实现方式为什么需要分布式锁在许多场景中,有些操作是只能被执行一次的,比如,用户消费之后的通知短信,发送多了,会招致投诉。在单机场景下,可以使用并发API或者锁解决,但是在分布式场景中,就没有那么简单了。 分布式场景是多进程场景,相同服务的不同实例可能都不知道对方的存在,这个时候要确保只 ... Read more »
MySQL中的索引及其实现 Posted on 2020-04-12 | In MySQL Words count in article: 2k | Reading time ≈ 6 MySQL中的索引及其实现索引,在MySQL中也叫做键(Key)是存储引擎用于快速找到记录的一种数据结构。在MySQL中,存储引擎用类似的方法使用索引,其现在索引中找到对应值,然后根据匹配的索引记录找到对应的数据行。 索引可以包含一个或多个列的值。如果索引包含多个列,那么列的顺序也十分重要,因为My ... Read more »