-
Dubbo与SpringCloud的Ribbon、Hystrix、Feign的优劣势比较
在微服务架构中,分布式通信、分布式事务、分布式锁等问题是亟待解决的几个重要问题。 Spring Cloud是一套完整的微服务解决方案,基于 Spring Boot 框架。确切的说,Spring Cloud是一个大容器(而不是一个框架),它可以将通过集成一些好的微服务框架,从而简化开发者的代码量。 Dubbo 是阿里开源的分布式通信框架,专注于通信服务治理,类似于Spring Cloud中 Ri…- 5.9k
- 0
-
深度剖析RPC框架的核心设计
做过分布式服务端的Java工程师,随着对技术底层的认知的加深,都会或多或少的会去想: 一个RPC框架需要考虑的问题有哪些,如何来解决?下面我们围绕RPC通信框架,从如何实现这个角度做一个剖析,以及每个环节能做什么? RPC框架简介 单体应用时代只有内外网通信,并没有服务间通信的诉求,随着单机服务性能下降,进入多服务分布式的时代后Rpc 框架才应运而生。通信Rpc犹如生活中电网基建一样,是分布式服务…- 3.8k
- 0
-
分布式事务详解(一文搞懂)
在如今的分布式盛行的时代,分布式事务永远都是绕不开的一个话题,今天就谈谈分布式事务相关的一致性与实战解决方案。 01 为什么需要分布式事务 由于近十年互联网的发展非常迅速,很多网站的访问越来越大,集中式环境已经不能满足业务的需要了,只能按照业务为单位进行数据拆分(包含:垂直拆分与水平拆分),以及按照业务为单位提供服务,从早期的集中式转变为面向服务架构的分布式应用环境。 举一个典型的例子,阿…- 3k
- 0
-
如何从0到1设计一个类Dubbo的RPC框架
之前分享了如何从0到1设计一个消息队列中间件,今天谈谈“如何从0到1设计一个Dubbo的RPC框架”,重点考验: 你对RPC框架的底层原理掌握程度。 以及考验你的整体RPC框架系统设计能力。 RPC和RPC框架 1.RPC(Remote Procedure Call) 即远程过程调用, 主要解决远程通信间的问题,不需要了解底层网络的通信机制。 2.RPC框架 RPC框架…- 5.6k
- 0
-
详解分布式一致性ACID、CAP、BASE,以及区别
在阿里Java面试环节,经常会问CAP、BASE等相关的分布式理论,其实这些名词主要还是来自于分布式的一致性,今天主要介绍分布式一致性:强一致性、最终一致性、ACID、CAP等理论。 分布式一致性的背景 随着分布式事务的出现,传统的单机事务模型(ACID)已经无法胜任,尤其是对于一个高访问量、高并发的互联网分布式系统来说。 分布式事务的一致性,请参考:分布式事务的解决方案,以及原理、总结 如果我们…- 4.5k
- 0
-
Redis的内存回收原理,及内存过期淘汰策略详解
Redis内存回收机制 Redis的内存回收主要围绕以下两个方面: 1.Redis过期策略:删除过期时间的key值 2.Redis淘汰策略:内存使用到达maxmemory上限时触发内存淘汰数据 Redis的过期策略和内存淘汰策略不是一件事,实际研发中不要弄混淆了,下面会完整的介绍两者。 Redis过期策略 过期策略通常有以下三种: 1.定时过期 每个设置过期时间的key都需要创建一个定时器,到过期…- 5.4k
- 0
-
分布式锁的由来、及Redis分布式锁的实现详解
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。那具体什么是分布式锁,分布式锁应用在哪些业务场景、如何来实现分布式锁呢?今天来探讨分布式锁这个话题。 什么是分布式锁 要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。 1.线程锁 主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同…- 6.3k
- 0
-
阿里架构师进阶23期精讲:Redis、Kafka、Dubbo、Docker等
史上最全Redis面试49题(含答案):哨兵+复制+事务+集群+持久化等 高并发架构系列:Redis缓存和MySQL数据一致性方案详解 Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别 高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解 如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题 微服务系列:RPC框架的实现原理,及RPC架构组件详解…- 6.4k
- 0
-
Redis哨兵、复制、集群的设计原理,以及区别
前一篇文章Redis为什么是单线程、及高并发快的3大原因详解谈了Redis高并发快的3个原因,本篇主要谈Redis的高可用,两篇合起来就可以把redis的高并发和高可用搞清楚了。 谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制。 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能。 复制(Replic…- 8k
- 0
-
如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
Java相关的面试都会问到缓存的问题:史上最全Redis面试49题(含答案),除此之外还会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等不常见的问题,但却是非常重要的问题,今天谈谈这个话题。 基本看完这两篇,可以对redis有一个比较全面的初步了解,后续我再补充redis相关的实战篇,总结为一个redis系列。 缓存雪崩 数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都…- 9.8k
- 0
-
RPC框架的实现原理,及RPC架构组件详解
RPC的由来 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将…- 6.8k
- 0
-
详解Redis的存储类型、集群架构、以及应用场景
什么是redis redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存、事件发布或订阅、高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串、哈希、列表、队列、集合结构直接存取,基于内存,可持久化,支持多种开发语言。 redis在高并发场景下的作用不言而喻,今天主要分享Redis大家比较关心的以下几个方面。 redis的数据类型 支持多种数据类型: 1.…- 6.6k
- 0
-
史上最全memcached面试26题和答案
Memcached是什么,有什么作用? Memcached是一个开源的,高性能的内存绶存软件,从名称上看Mem就是内存的意思,而Cache就是缓存的意思。Memcached的作用:通过在事先规划好的内存空间中临时绶存数据库中的各类数据,以达到减少业务对数据库的直接高并发访问,从而达到提升数据库的访问性能,加速网站集群动态应用服务的能力。 Memcached服务在企业集群架构中有哪些应用场景? …- 4.7k
- 0
-
分布式系统全局唯一ID详解(5种生成方式)
什么是分布式系统唯一ID 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。 如在金融、电商、支付、等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求,此时一个能够生成全局唯一ID的系统是非常必要的。 分布式系统唯一ID的特点 全局唯一性:不能出现重复的ID号,既然是唯一标识,这是最基本的要求。 趋势递增:在MySQL …- 8.8k
- 0
-
分布式、集群、负载均衡、分布式数据一致性的区别与关联
服务器集群: 1.集群概念 集群就是一组相互独立的计算机,通过高速的网络组成一个计算机系统。服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。 2.集群的特点和优势 1)高性能 比如上千台服务器同时计算运行,远大于单机的运行效率。 2)性价比优势 利用通用廉价的服务器代替小型机,例如:阿里轰轰烈烈的去IOE(去掉IBM的小型机、Oracle数据库、EMC存储…- 5.4k
- 0
-
精通高并发必须掌握的18个核心技术
很多同学对于高并发总是讳莫如深,今天主要谈谈高并发需要掌握的技术集,文末有高并发技术资料~ 高并发、多线程 1.高并发 高并发是请求,指的是多个客户端同一时刻向服务端发送请求, 它是一种现象。 比如,在双11凌晨12:00分同时有10万个下单请求。 高并发标准: 高并发用户数 TPS(Transactions Per Second)每秒事务数 QPS(Query Per Second)每秒查询率等…- 5.9k
- 0
-
Restful、SOAP、RPC、SOA、微服务之间的区别
内容大纲: 1.介绍Restful、SOAP、RPC、SOA以及微服务 2.重点谈谈SOA与微服务的区别 3.以及为什么要使用微服务架构 什么是Restful Restful是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的应用程序或设计就是 Restful架构或服务。 主要的设计原则: 资源与URI 统一资源接口(HTTP方法如GET,PUT和POST) 资源的…- 13.4k
- 0
-
阿Spring Cloud与Dubbo的详细比较
什么是Spring Cloud Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。 为什么需要Spring Cloud Spring Cloud 是整个 Spring 家族中新的成员,要致力于分布式系统、云服务的框架。 Spring Cloud 为开发人…- 7.5k
- 0
-
分布式架构设计(文章合集)
Docker容器 Docker简介、组成架构、使用步骤、以及生态产品 Docker容器的原理、特征、基本架构、与应用场景 消息中间件 消息中间件介绍、典型使用场景、以及使用原则 Kafka的原理、基础架构、以及使用场景 主流的消息队列中间件有哪些? 微服务 微服务Dubbo和SpringCloud架构设计、优劣势比较 微服务技术架构、监控、Docker、服务治理等体…- 5.8k
- 0
-
分布式锁的3种实现(数据库、缓存、Zookeeper)
分布式锁的几种实现方式 目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。 分布式的CAP理论告诉我们,任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。 所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数…- 7.1k
- 0
-
分布式事务的解决方案详解
分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务各方面与大家进行介绍。 事务 1.1 什么是事务 数据库事务(简称:事务,Transaction)是指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。 事务拥有以下四个特性,习惯上被称为ACID特性: 原子性(Atom…- 5.6k
- 0
-
淘宝技术架构从1.0到4.0的架构变迁
淘宝技术架构变迁 自2003年创立以来的,淘宝业务发展非常迅速,几乎是每年以100%的速度在成长。创立之初,为了快速上线,抢占市场,选择了当时流行的LAMP架构,用PHP作为网站开发语言, Linux作为操作系统,Apache作为Web服务器,MySQL为数据库,用了三个月不到的时间淘宝就上线了。当时整个网站应用服务器大概10台左右,MySQL数据库采用了读写分离、一主两备的部署方式。 2004年…- 3.7k
- 0
-
分布式Session共享的4类技术方案,与优劣势比较
什么是session 服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。 当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。…- 5.7k
- 0
-
什么是缓存雪崩?服务器雪崩的场景与解决方案
什么是应用服务雪崩 雪崩问题 分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的。当网络不稳定的时候,作为服务的提供者,自身可能会被拖死,导致服务调用者阻塞,最终可能引发雪崩连锁效应。 缓存雪崩 当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如DB)带来很大压力,造成数据库后端故障,从而引起应用服务器雪崩。 雪…- 5k
- 0