在微服务架构中,分布式通信、分布式事务、分布式锁等问题是亟待解决的几个重要问题。
Spring Cloud是一套完整的微服务解决方案,基于 Spring Boot 框架。确切的说,Spring Cloud是一个大容器(而不是一个框架),它可以将通过集成一些好的微服务框架,从而简化开发者的代码量。
Dubbo 是阿里开源的分布式通信框架,专注于通……继续阅读 »
陈睿
1年前 (2020-01-07) 5150浏览 0评论
7个赞
做过分布式服务端的Java工程师,随着对技术底层的认知的加深,都会或多或少的会去想: 一个RPC框架需要考虑的问题有哪些,如何来解决?
下面我们围绕RPC通信框架,从如何实现这个角度做一个剖析,以及每个环节能做什么?
RPC框架简介
单体应用时代只有内外网通信,并没有服务间通信的诉……继续阅读 »
陈睿
1年前 (2020-01-02) 2732浏览 0评论
5个赞
在如今的分布式盛行的时代,分布式事务永远都是绕不开的一个话题,今天就谈谈分布式事务相关的一致性与实战解决方案。
01 为什么需要分布式事务
由于近十年互联网的发展非常迅速,很多网站的访问越来越大,集中式环境已经不能满足业务的需要了,只能按照业务为单位进行数据拆分(包含:垂直拆分与水平拆分),以及按照业务为单位提供服务,从早期……继续阅读 »
陈睿
1年前 (2019-11-20) 2749浏览 0评论
6个赞
之前分享了如何从0到1设计一个MQ消息队列,今天谈谈“如何从0到1设计一个Dubbo的RPC框架”,重点考验:
你对RPC框架的底层原理掌握程度。
以及考验你的整体RPC框架系统设计能力。
RPC和RPC框架
1.RPC(Remote Procedure Call)
即远程过程调用, 主……继续阅读 »
陈睿
2年前 (2019-01-22) 4602浏览 0评论
10个赞
在阿里Java面试环节,经常会问CAP、BASE等相关的分布式理论,其实这些名词主要还是来自于分布式的一致性,今天主要介绍分布式一致性:强一致性、最终一致性、ACID、CAP等理论。
分布式一致性的背景
随着分布式事务的出现,传统的单机事务模型(ACID)已经无法胜任,尤其是对于一个高访问量、高并发的互联网分布式系统来说。
分布式事务的一致性,请参考……继续阅读 »
陈睿
2年前 (2019-01-05) 4206浏览 0评论
9个赞
Redis内存回收机制
Redis的内存回收主要围绕以下两个方面:
1.Redis过期策略:删除过期时间的key值
2.Redis淘汰策略:内存使用到达maxmemory上限时触发内存淘汰数据
Redis的过期策略和内存淘汰策略不是一件事,实际研发中不要弄混淆了,下面会完整的介绍两者。
Redis过期策……继续阅读 »
陈睿
2年前 (2018-12-21) 5133浏览 1评论
9个赞
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。那具体什么是分布式锁,分布式锁应用在哪些业务场景、如何来实现分布式锁呢?今天来探讨分布式锁这个话题。
什么是分布式锁
要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。
1.线程锁
主要用来给方法、代码块加锁。……继续阅读 »
陈睿
2年前 (2018-12-20) 5971浏览 1评论
8个赞
史上最全Redis面试49题(含答案):哨兵+复制+事务+集群+持久化等
高并发架构系列:Redis缓存和MySQL数据一致性方案详解
Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别
高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解
如何解决Redis缓存雪崩、缓存穿……继续阅读 »
陈睿
2年前 (2018-12-18) 4687浏览 3评论
7个赞
前一篇文章高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解谈了Redis高并发快的3个原因,本篇主要谈Redis的高可用,两篇合起来就可以把redis的高并发和高可用搞清楚了。
谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制。
哨兵(Sentinel):可以管理多个Redis服务器,它提供……继续阅读 »
陈睿
2年前 (2018-12-14) 7649浏览 4评论
8个赞
Java相关的面试都会问到缓存的问题:史上最全Redis面试49题(含答案):哨兵+复制+事务+集群+持久化等,除此之外还会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等不常见的问题,但却是非常重要的问题,今天谈谈这个话题。
基本看完这两篇,可以对redis有一个比较全面的初步了解,后续我再补充redis相关的实战篇,总结为一个redis系列。
……继续阅读 »
陈睿
2年前 (2018-12-12) 9399浏览 0评论
11个赞
RPC的由来
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
单一应用架构
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。
此时,用于简化增删改查工作量的 数据访问框架(ORM) ……继续阅读 »
陈睿
2年前 (2018-12-05) 6474浏览 0评论
11个赞
高并发架构系列
高并发架构系列:数据库主从同步的3种一致性方案实现,及优劣比较
高并发架构系列:Spring Cloud的核心成员、以及架构实现详细介绍
高并发架构系列:服务注册与发现的实现原理、及实现优劣势比较
高并发架构系列:Netty的实现原理、特点与优势、以及适用场景
什么是redis
redis是一……继续阅读 »
陈睿
2年前 (2018-11-29) 6228浏览 2评论
8个赞
Memcached是什么,有什么作用?
Memcached是一个开源的,高性能的内存绶存软件,从名称上看Mem就是内存的意思,而Cache就是缓存的意思。Memcached的作用:通过在事先规划好的内存空间中临时绶存数据库中的各类数据,以达到减少业务对数据库的直接高并发访问,从而达到提升数据库的访问性能,加速网站集群动态应用服务的能力。
&nbs……继续阅读 »
陈睿
2年前 (2018-11-12) 4084浏览 0评论
6个赞
什么是分布式系统唯一ID
在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。
如在金融、电商、支付、等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求,此时一个能够生成全局唯一ID的系统是非常必要的。
分布式系统唯一ID的特点
……继续阅读 »
陈睿
2年前 (2018-10-31) 8502浏览 1评论
9个赞
服务器集群:
1.集群概念
集群就是一组相互独立的计算机,通过高速的网络组成一个计算机系统。服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。
2.集群的特点和优势
1)高性能
比如上千台服务器同时计算运行,远大于单机的运行效率。
2)性价比优势
……继续阅读 »
陈睿
2年前 (2018-10-25) 4734浏览 0评论
9个赞
很多同学对于高并发总是讳莫如深,今天主要谈谈高并发需要掌握的技术集,文末有高并发技术资料~
高并发、多线程
1.高并发
高并发是请求,指的是多个客户端同一时刻向服务端发送请求, 它是一种现象。
比如,在双11凌晨12:00分同时有10万个下单请求。
高并发标准:
高并发用户数
TP……继续阅读 »
陈睿
2年前 (2018-10-19) 5625浏览 2评论
16个赞
内容大纲:
1.介绍Restful、SOAP、RPC、SOA以及微服务
2.重点谈谈SOA与微服务的区别
3.以及为什么要使用微服务架构
什么是Restful
Restful是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的应用程序或设计就是 Res……继续阅读 »
陈睿
2年前 (2018-10-18) 12942浏览 1评论
16个赞
什么是Spring Cloud
Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。
为什么需要Spring Cloud
Spring Cloud 是整个 Spring 家族中新的成员,要致力于分布式系统、云……继续阅读 »
陈睿
2年前 (2018-10-17) 6959浏览 1评论
12个赞
Docker容器
阿里P8架构师谈:Docker简介、组成架构、使用步骤、以及生态产品
阿里P8架构师谈:Docker容器的原理、特征、基本架构、与应用场景
消息中间件
阿里P8架构师谈:消息中间件介绍、典型使用场景、以及使用原则
阿里P8架构师谈:分布式消息K……继续阅读 »
陈睿
2年前 (2018-10-09) 5434浏览 2评论
10个赞
分布式锁的几种实现方式
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。
分布式的CAP理论告诉我们,任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。
所以,很多系统在设计……继续阅读 »
陈睿
2年前 (2018-10-06) 6778浏览 2评论
13个赞
分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务各方面与大家进行介绍。
事务
1.1 什么是事务
数据库事务(简称:事务,Transaction)是指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。
……继续阅读 »
陈睿
2年前 (2018-09-21) 5242浏览 1评论
10个赞
淘宝技术架构变迁
自2003年创立以来的,淘宝业务发展非常迅速,几乎是每年以100%的速度在成长。创立之初,为了快速上线,抢占市场,选择了当时流行的LAMP架构,用PHP作为网站开发语言, Linux作为操作系统,Apache作为Web服务器,MySQL为数据库,用了三个月不到的时间淘宝就上线了。当时整个网站应用服务器大概10台左右,MySQL数据库采用了读……继续阅读 »
陈睿
2年前 (2018-09-19) 3533浏览 1评论
5个赞
什么是session
服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过……继续阅读 »
陈睿
2年前 (2018-09-17) 5444浏览 0评论
3个赞
什么是应用服务雪崩
雪崩问题
分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的。当网络不稳定的时候,作为服务的提供者,自身可能会被拖死,导致服务调用者阻塞,最终可能引发雪崩连锁效应。
缓存雪崩
当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如DB)……继续阅读 »
陈睿
3年前 (2018-09-11) 4565浏览 5评论
7个赞
分布式架构设计是成长为架构师的必备技能,涵盖的内容很广,今天一次打包分享,文末有:最全分布式架构设计资料获取方式~
负载均衡
负载均衡的原理和分类
负载均衡架构和应用场景
分布式缓存
常见分布式缓存比较:memcached和redis
memca……继续阅读 »
陈睿
3年前 (2018-09-10) 10484浏览 36评论
37个赞
随着互联网的普及,内容信息越来越复杂,用户数和访问量越来越大,我们的应用需要支撑更多的并发量,同时我们的应用服务器和数据库服务器所做的计算也越来越多。但是往往我们的应用服务器资源是有限的,且技术变革是缓慢的,数据库每秒能接受的请求次数也是有限的(或者文件的读写也是有限的),如何能够有效利用有限的资源来提供尽可能大的吞吐量?一个有效的办法就是引入缓存,打破标准流程,每个环节中请求可以从缓存中直……继续阅读 »
陈睿
3年前 (2018-09-06) 3525浏览 1评论
3个赞
分布式架构设计包含:
分布式缓存
分布式消息中间件
分库分表、读写分离
单点登录等
想成为阿里160万年薪的P8架构师?你必须掌握如下6大技能体系!
阿里P8架构师谈:分布式架构系统拆分原则、需求、微服务拆分步骤
阿里P8架构师谈:高并发与多线程的关系、区别、高并发的技术
……继续阅读 »
陈睿
3年前 (2018-09-03) 4420浏览 0评论
3个赞
为什么需要应用拆分
我以淘宝技术架构演进为例,淘宝从一个大系统工程向分布式架构演变过程,你就能很清楚的知道为什么要需要进行应用拆分。
1 人员的角度。
维护一个代名工程Denali的百万级代码怪兽(虽然物理部署是分离的),从发布到上线,从人员的角度,百号人同时在一个工程上开发,一旦线上出问题,所有代码都需要回滚,从人员的角度,……继续阅读 »
陈睿
3年前 (2018-09-03) 7197浏览 0评论
4个赞
为什么需要单点登录
单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。
单点登录在大型网站里使用得非常频繁,例如,阿里旗下有淘宝、天猫、支付宝等网站,还有背后的成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都……继续阅读 »
陈睿
3年前 (2018-08-27) 6309浏览 5评论
10个赞
为什么需要负载均衡
当系统面临大量用户访问,负载过高的时候,通常会使用增加服务器数量来进行横向扩展,使用集群和负载均衡提高整个系统的处理能力。
从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。分布式和业务拆分解决了,从集中到分布的问题,但是每个部署的独立业务还存在单点的问题和访问统一入口问题,为解……继续阅读 »
陈睿
3年前 (2018-08-26) 4057浏览 0评论
5个赞