分布式架构
Bolon0708
昨日已成过往,明日未来可期。
展开
-
【分布式】分布式常见的十大坑,你了解几个?
本篇主要内容如下:主要内容前言我们都在讨论分布式,特别是面试的时候,不管是招初级软件工程师还是高级,都会要求懂分布式,甚至要求用过。传得沸沸扬扬的分布式到底是什么东东,有什么优势?借用火影忍术风遁·螺旋手里剑看过火影的同学肯定知道漩涡鸣人的招牌忍术:多重影分身之术。 这个术有一个特别厉害的地方,过程和心得:多个分身的感受和经历都是相通的。比如 A 分身去找卡卡西(鸣人的老师)请教问题,那么其他分身也会知道 A 分身问的什么问题。 漩涡鸣人有另外一个超级厉害的忍转载 2020-09-28 14:23:05 · 1096 阅读 · 0 评论 -
如果让你做一个秒杀系统,你会如何设计?
前言秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大流量的秒杀系统需要进行哪些关注,就是本文讨论的话题。整体思考首先从高维度出发,整体思考问题。秒杀无外乎解决两个核心问题,一是并发读,一是并发写,对应到架构设计,就是高可用、一致性和高性能的要求。关于秒杀系统的设计思考,本文即基转载 2020-06-09 13:40:14 · 1493 阅读 · 0 评论 -
Spring Job?Quartz?XXL-Job?年轻人才做选择~
摘要: 原创出处 http://www.iocoder.cn/Spring-Boot/Job/ 「芋道源码」欢迎转载,保留摘要,谢谢! 1. 概述 2. 快速入门 Spring Task 3. 快速入门 Quartz 单机 4. 再次入门 Quartz 集群 5. 快速入门 XXL-JOB 6. 快速入门 Elastic-Job 666. 彩蛋 本文在提供完整代码示例,可见 https://github.com/YunaiV/Spr.转载 2020-05-15 09:15:37 · 1829 阅读 · 0 评论 -
当前疫情下火爆的直播应用,你了解背后的技术架构吗?
这场疫情让线下零售降至冰点,但是却带火了直播应用。直播电商、直播教育等各类直播应用可谓赢得了历史性的机会,很多大众开始接受并认可这种新型应用的便利和价值,个人感觉随着5G的普及,『直播+垂直领域+精细化的私域流量』将会是互联网的一个大热点,迎来真正的红利期。直播行业大概在10年多前就开始兴起了,秀场直播和游戏直播是PC时代比较成功的应用场景,直到16年,随着移动互联网的大规模普及,直播行业迎来...转载 2020-05-08 11:11:53 · 877 阅读 · 0 评论 -
【负载均衡】几种简单的负载均衡算法及其Java代码实现
目录什么是负载均衡轮询(Round Robin)法随机(Random)法源地址哈希(Hash)法加权轮询(Weight Round Robin)法加权随机(Weight Random)法最小连接数(Least Connections)法什么是负载均衡负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的...转载 2019-07-19 16:11:31 · 964 阅读 · 0 评论 -
深入理解 RPC 之传输篇(Socket和Netty)
目录RpcRequest 和 RpcResponseSocket传输Netty 传输同步与异步 阻塞与非阻塞总结RPC 被称为“远程过程调用”,表明了一个方法调用会跨越网络,跨越进程,所以传输层是不可或缺的。一说到网络传输,一堆名词就蹦了出来:TCP、UDP、HTTP,同步 or 异步,阻塞 or 非阻塞,长连接 or 短连接…本文介绍两种传输层的实现:使用 So...转载 2019-07-19 15:48:05 · 1747 阅读 · 0 评论 -
深入理解RPC之服务注册与发现篇
目录注册中心的抽象注册信息概览注册信息详解Server 节点Client 节点UnavailableServer 节点感知服务的下线临时节点+长连接注册中心对比总结在我们之前 RPC 原理的分析中,主要将笔墨集中在 Client 和 Server 端。而成熟的服务治理框架中不止存在这两个角色,一般还会有一个 Registry(注册中心)的角色。一张图就...转载 2019-07-19 15:11:30 · 3096 阅读 · 0 评论 -
分布式之数据库和缓存双写一致性方案解析
目录引言为什么写这篇文章?文章结构正文(1)先更新数据库,再更新缓存(2)先删缓存,再更新数据库(3)先更新数据库,再删缓存总结参考文献引言为什么写这篇文章?首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又...转载 2019-07-12 11:46:42 · 139 阅读 · 0 评论 -
【分布式事务】消息最终一致性方案,基于rabbitmq的分布式事务解决方案
目录用法项目结构说明使用说明coolmq 用rabbitmq解决分布式事务一 两阶段确认1 发送确认2 消费确认(Delivery Acknowledgements)二 可能出现的异常情况1 直接无法到达消息服务2 消息已经到达服务器,但返回的时候出现异常3 消息送达后,消息服务自己挂了4 未送达消费者5 确认消息丢失6 消费者业务处理异常...转载 2019-07-18 15:26:44 · 2589 阅读 · 0 评论 -
【分布式事务】使用消息队列实现分布式事务-公认较为理想的分布式事务解决方案
目录1 本地事务2 分布式事务—两阶段提交协议3 使用消息队列来避免分布式事务3.1 如何可靠保存凭证(消息)3.1.1 业务与消息耦合的方式3.1.2 业务与消息解耦方式3.2 如何解决消息重复投递的问题补充前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账...转载 2019-07-18 15:21:10 · 283 阅读 · 0 评论 -
大型分布式网站架构技术总结:高性能+高可用+可扩展+可伸缩架构
目录一、大型网站架构特点二、大型网站架构目标三、大型网站架构模式四、高性能架构五、高可用架构六、可伸缩架构七、可扩展架构八、安全架构九、敏捷性十、大型架构举例一、大型网站架构特点用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频繁发布 从小到大,渐进发展 以用户为中心 免费服务,付费体...转载 2019-07-17 14:27:37 · 1371 阅读 · 0 评论 -
【分布式系统间通信】基于消息方式和基于远程调用方式
目录1、基于消息方式实现系统间通信术语解释:四种方法实现基于消息进行系统间通信TCP/IP+BIOTCP/IP+NIOUDP/IP+BIOUDP/IP+NIO2、基于远程调用实现系统间通信两种基于远程调用实现系统间通信的方法RMIWebService分布式系统之间通信可以分为两种:基于消息方式实现系统间通信 基于远程调用方式实现系统间通信1、...转载 2019-07-17 15:29:40 · 1780 阅读 · 0 评论 -
分布式通讯架构RPC简单实现
目录什么是RPC: 服务端:客户端:什么是RPC: RPC(Remote Procedure Call,远程过程调用),一般用来实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地系统资源一样,通过网络传输去访问远端系统资源;对于客户端来说, 传输层使用什么协议,序列化、反序列化都是透明的。 在分布式架构中,难免会涉及多个独立的服务之间的通讯,比如一个...转载 2019-07-17 17:56:59 · 147 阅读 · 0 评论 -
【分布式系统】兄弟,用大白话给你讲小白都能看懂的分布式系统容错架构
目录1、TB级数据放在一台机器上:难啊!2、到底啥是分布式存储?3、那么啥又是分布式存储系统呢?4、天哪!某台机器宕机了咋办?5、Master节点如何感知到数据副本消失?6、复制副本保持足够副本数量7、删除多余副本8、全文总结“ 这篇文章,我们将用非常浅显易懂的语言,跟大家聊聊大规模分布式系统的容错架构设计。虽然定位是有“分布式”、“容错架构”等看起来略显复杂的...转载 2019-07-25 15:51:06 · 274 阅读 · 0 评论 -
了解一线大厂的分布式唯一ID生成方案
目录前言UUIDmysql主键自增mysql多实例主键自增雪花snowflake算法redis生成方案总结悬念前言分布式系统中我们会对一些数据量大的业务进行分拆,如:用户表,订单表。因为数据量巨大一张表无法承接,就会对其进行分库分表。小伙伴们可以去看一下以前的文章你知道怎么分库分表吗?如何做到永不迁移数据和避免热点吗?但一旦涉及到分库分表,就会引申出分...转载 2019-08-28 16:50:36 · 237 阅读 · 0 评论 -
高并发架构设计之--「服务降级」、「服务限流」与「服务熔断」
目录服务降级1 、简介2 、使用场景3 、核心设计3.1 分布式开关3.2 自动降级分类3.3 配置中心3.4 处理策略3.5 降级分类3.6 服务降级要考虑的问题4 、高级特性4.1 分级降级4.2 降级权值5 、总结与展望服务限流一、为什么要做服务限流设计?二、服务限流应该怎么做?三、服务限流的注意事项服务熔断...转载 2019-08-29 10:43:52 · 4375 阅读 · 1 评论 -
架构设计 -- 服务降级策略详解
目录1. 自动开关降级2. 手动开关降级3. 读服务降级4. 写服务降级5. 多级降级降级是系统保护的重要手段,保证系统的高可用,简单理解,降级就是丢车保帅,在系统压力极大时,暂时不做非必要动作,以保证系统核心功能的正常。例如电商系统中,购物车、结算这类的核心功能就是保护对象,是绝对不能降级的,而像个性化自动商品推荐服务就可以暂时不提供。降级策略有很多种,可以从下面...转载 2019-08-29 10:55:36 · 2904 阅读 · 0 评论 -
分布式定时任务调度系统技术选型
目录我们先思考下面几个业务场景的解决方案为什么我们需要定时任务java有哪些定时任务的框架单机分布分布式任务调度系统对比项目背景及社区力量支持集群部署多节点部署时任务不能重复执行日志可追溯监控告警弹性扩容缩容支持并行调度高可用策略失败处理策略动态分片策略和quartz框架对比综合对比总结和结论附 定时任务的其他方案...转载 2019-08-29 13:29:37 · 348 阅读 · 0 评论 -
【分布式事务】分布式事务 CAP 理解论证 解决方案
目录1.概述1.1 问题描述1.2 CAP 理论一致性(Consistency):可用性(Availability):分区容忍性(PartitionTolerance):1.3 三种组合CA:CP:AP:2 论证2.1在网络稳定时:2.2在网络中断时:3 解决方案3.1 维护本地消息表3.2 使用rocketmq事务消息3.3 ...转载 2019-07-18 15:09:27 · 157 阅读 · 0 评论 -
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
目录1,常规锁会造成什么情况?2,分布式锁怎么去处理?3,分布式锁的实现有哪些?3.1,为什么redis可以实现分布式锁?3.2,为什么zookeeper可以实现分布式锁?首先分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法、变量。在一个进程中,也就是一个jvm 或者说应用中,我们很容易去处理控制,在jd...转载 2019-07-05 13:43:49 · 148 阅读 · 0 评论 -
浅谈我对DDD领域驱动设计的理解---汤雪华
目录从遇到问题开始DDD切入点1 - 理解概念什么是领域(Domain)?什么是设计(Design)?什么是驱动(Driven)?概念总结:DDD切入点2 - 理解领域、拆分领域、细化领域理解领域知识是基础拆分领域细化子域DDD切入点3 - 领域模型设计领域建模的方法领域模型的核心作用:领域模型设计只是软件设计中的一小部分总结从遇到问...转载 2019-07-04 20:08:31 · 1566 阅读 · 0 评论 -
分布式架构的演进,分析的很详细,很到位
目录分布式架构的演进系统架构演化历程-初始阶段架构系统架构演化历程-应用服务和数据服务分离系统架构演化历程-使用缓存改善性能系统架构演化历程-使用应用服务器集群系统架构演化历程-数据库读写分离系统架构演化历程-反向代理和CDN加速系统架构演化历程-分布式文件系统和分布式数据库系统架构演化历程-使用NoSQL和搜索引擎系统架构演化历程-业务拆分系统架构演化...转载 2019-07-02 16:56:57 · 209 阅读 · 0 评论 -
高并发的核心技术-幂等的实现方案
目录一、背景二、幂等性概念三、技术方案一、背景我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。例如:1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱; 3. 发送消息,也应该只发一次,同样的短信发给...转载 2019-07-08 11:32:14 · 131 阅读 · 0 评论 -
如何把应用从单机扩展到分布式
目录第一版 单台服务器应用第二版 应用服务器和数据库服务器分离第三版 应用服务器集群第四版 负载均衡器第五版 数据库服务器集群第六版 搜索引擎集群第七版 缓存服务器第八版 数据库水平/垂直拆分第九版 应用服务器垂直拆分第十版 SOA服务(分布式架构)本节会学习以下内容:第一版 单台服务器应用 第二版 应用服务器和数据库服务器分离 ...转载 2019-07-02 17:42:33 · 536 阅读 · 0 评论 -
面试官:基于数据库实现的分布式锁真的无用吗?
目录概述基于表记录乐观锁悲观锁概述在单机时代,虽然不需要分布式锁,但也面临过类似的问题,只不过在单机的情况下,如果有多个线程要同时访问某个共享资源的时候,我们可以采用线程间加锁的机制,即当某个线程获取到这个资源后,就立即对这个资源进行加锁,当使用完资源之后,再解锁,其它线程就可以接着使用了。例如,在JAVA中,甚至专门提供了一些处理锁机制的一些API(synchronize...转载 2019-06-24 20:00:44 · 672 阅读 · 0 评论 -
微服务架构下的安全认证与鉴权
目录一、单体应用 VS 微服务1. 单点登录(SSO)2. 分布式 Session 方案3. 客户端 Token 方案4. 客户端 Token 与 API 网关结合二、微服务常见安全认证方案HTTP 基本认证基于 Session 的认证基于 Token 的认证三、JWT介绍JWT 认证流程JWT 结构四、OAuth 2.0 介绍授权流程四...转载 2019-07-03 15:52:01 · 1913 阅读 · 0 评论 -
千万级用户的大型网站,应该如何设计其高并发架构?
目录(1)单块架构(2)初步的高可用架构(3)千万级用户量的压力预估(4)服务器压力预估(5)业务垂直拆分(6)分布式缓存扛下读请求(7)基于数据库主从架构做读写分离(8)总结本文将会从一个大型的网站发展历程出发,一步一步的探索这个网站的架构是如何从单体架构,演化到分布式架构,然后演化到高并发架构的。(1)单块架构一般一个网站刚开始建立的时候,用户量...转载 2019-07-09 20:07:50 · 464 阅读 · 0 评论 -
加速网站静态资源访问的方法
目录一、采用CDN二、minified三、缓存机制四、压缩一、采用CDN借助一张图来说明下,其实CDN的概念大致可以理解为在每个地区建立一个网络中心,这样做的好处就是用户访问速度加快了,不然的话就比如说你只有一台服务器在北京,而我要在全国各地去访问,这样的话信道传输速度肯定会变慢,所以为了使内容传输的更快、更稳定。可以通过在网络各处放置节点服务器的方法来加快资源访问。...转载 2019-07-04 15:34:23 · 1427 阅读 · 0 评论 -
分布式存储综述、存储原理与设计
目录分布式存储概念分布式文件系统的发展分布式存储系统的分类数据类型三大类分布式存储类型分布式存储系统的特性单机存储原理与设计多机存储原理与设计FLP定理与设计CAP定理与设计2PC协议与设计Paxos协议与设计这篇博客主要来总结一下分布式存储系统的历史,发展以及特性,从而对分布式存储系统有一个大概的了解,主要从一下几个部分来介绍分布式存储...转载 2019-07-04 16:13:53 · 2979 阅读 · 0 评论 -
分布式搜索引擎的架构原理!
目录(1)倒排索引到底是啥?(2)什么叫做分布式搜索引擎?(3)Elasticseasrch的架构遵循其基本概念(4)整体架构如下图(从下往上看)(5)解析Elasticsearch的分布式架构分布式架构的透明隐藏特性扩容机制rebalancemaster节点节点对等(6)Elasticsearch的数据结构(7)Shard数据分片机制...转载 2019-07-04 16:29:56 · 3595 阅读 · 1 评论 -
微服务划分的姿势
我们知道微服务是一种理念,没有确切的定义和边界,好比设计原则,是属于抽象的概念。在定义不明确的情况下谈划分也是一种各说各话,具体问题需要具体分析,所以这篇文章谈到的划分也不是绝对标准,仅供参考。 有人说微幅不难,难的是服务的划分,虽然我持保留意见。但是从侧面也反应了划分具有一定的困难。这里的矛盾在于粒度。如果粒度太大了,分和不分似乎都差不多;如果粒度太小了,聚合、发布、调用链、调试等都是...转载 2019-06-24 13:36:34 · 470 阅读 · 3 评论 -
这三辆马车,我能让架构飞起来!
目录微服务消息队列定时任务这里所说的三架马车是指微服务、消息队列和定时任务。如下图所示,这里是一个三驾马车共同驱动的一个立体的互联网项目的架构。不管项目是大是小,这个架构模板的形态一旦定型了之后就不太会变,区别只是我们有更多的服务有更复杂的调用,更复杂的消息流转,更多的Job,整个架构整体是可扩展的,而且不会变形,这个架构可以在很长的一段时间内无需有大的调整。图上画了虚线框...转载 2019-05-28 20:16:02 · 438 阅读 · 0 评论 -
分布式Session共享解决方案
目录分布式Session解决方案分布式Session一致性?Session的作用?分布式Session存在的问题?解决方案:分布式Session解决方案分布式Session一致性?说白了就是服务器集群Session共享的问题Session的作用?Session 是客户端与服务器通讯会话跟踪技术,服务器与客户端保持整个通讯的会话基本信息。客户端在第一次访问...转载 2019-04-25 17:00:59 · 146 阅读 · 0 评论 -
微服务架构之「 服务注册 」
微服务架构是一个庞大复杂的工程,为什么说它庞大复杂呢?因为想要做好微服务,就必须先要建设好微服务所需的一系列基础设施和组件。我在前面的文章《架构设计之「 微服务入门 」》中已经初步介绍过了这些组件,包括:服务注册、服务网关、配置中心、服务框架、服务监控、服务追踪、服务治理等。只有将这些基础设施搭建完善了,微服务实践的道路才能走的稳、走的远。后面的文章中会依次把每一个基础组件都详细分析一下。今...转载 2019-04-08 15:58:07 · 247 阅读 · 1 评论 -
搞不懂分布式事务?看这篇就够了
前言不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。事实上,上面所描述的这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交钱一手交货。有了事务,你去网上购物,扣款即产生订单交易。事务的具体定义事务提供...转载 2019-04-02 17:06:08 · 253 阅读 · 0 评论 -
微服务架构设计之「 微服务入门 」
微服务这几年不可谓不火,很多技术团队都开始在自己的项目上引入了微服务。一方面这些团队确实很好的推动了微服务的应用和发展,另一方面也可以看到一些盲目追技术热点的行为所带来的危害,比如很多中小团队对微服务的基础知识只是做了很浅显的了解就开始盲目的推动微服务的实施,最后导致了项目的失败。微服务要想做好是一个非常复杂的架构,今天就先只聊一聊微服务的一些基础架构,算是入门篇。一、什么是「 微服务 」...转载 2019-04-02 16:28:47 · 154 阅读 · 0 评论 -
【架构设计】CAP定理、BASE理论
目录一、CAP定理什么是 CAP?Consisteny(一致性)Availability(可用性)Partition tolerance(分区容错性)CAP 怎么应用?CP 架构AP 架构CAP 注意事项?二、BASE理论基本可用软状态最终一致性小结在计算机领域,如果是初入行就算了,如果是多年的老码农还不懂 CAP 定理,那就真...转载 2019-03-26 20:17:45 · 753 阅读 · 0 评论 -
单体架构,SOA架构,微服务架构,分布式架构,集群架构之间的联系
目录单体架构什么是单体架构单体架构的缺陷SOA架构微服务架构什么是微服务架构微服务架构示例图微服务架构的特性微服务架构的优势微服务架构的挑战微服务设计原则微服务和SOA的区别分布式-微服务-集群的区别分布式集群模式分布式是否属于微服务?微服务架构单体架构什么是单体架构一个归档包(例如war格式或者Jar格式)包含了应用...转载 2019-07-04 19:54:12 · 1628 阅读 · 0 评论 -
淘宝服务端高并发分布式架构演进之路
目录1. 概述2. 基本概念3. 架构演进3.1 单机架构3.2 第一次演进:Tomcat与数据库分开部署3.3 第二次演进:引入本地缓存和分布式缓存3.4 第三次演进:引入反向代理实现负载均衡3.5 第四次演进:数据库读写分离3.6 第五次演进:数据库按业务分库3.7 第六次演进:把大表拆分为小表3.8 第七次演进:使用LVS或F5来使多个Nginx负...转载 2019-06-05 16:45:50 · 422 阅读 · 1 评论