分布式技术及原理
文章平均质量分 93
分布式资源池化、分布式通信、分布式数据存储与管理、分布式计算。这样的划分符合业务架构设计的一般规律,即“在一定资源上,进行一定通信,通过一定计算,完成一定数据的加工和处理,从而对外提供特定的服务”
GeorgiaStar
世上无难事,只要肯放弃
展开
-
微服务(Microservice)那点事儿
一个微服务架构的系统是一个分布式系统,系统内会由若干个应用组成,每个应用就是一个微服务。根据需求,每个微服务应用可以部署一定数量的服务器,也可以支持横向扩展,随时支持流量的变化。原创 2022-07-04 14:00:00 · 1168 阅读 · 0 评论 -
重看《Redis设计与实现》后记录几个要点
一提到 Redis,我们的脑子里马上就会出现一个词:“快。”但是你有没有想过,Redis 的快,到底是快在哪里呢?实际上,这里有一个重要的表现:它接收到一个键值对操作后,能以微秒级别的速度找到数据,并快速完成操作。...........................原创 2022-06-14 20:20:47 · 888 阅读 · 0 评论 -
令人头疼的缓存与数据库一致性问题
当我们的系统引入缓存组件之后,性能得到了大幅度提升,但是随之而来的是代码需要引入一定的复杂度,比如缓存的更新策略,写入策略,过期策略等,而其中最可能导致程序员加班的莫过于缓存和数据库的一致性问题了。原创 2022-03-21 20:50:46 · 3100 阅读 · 0 评论 -
《从零开始学架构》读后总结
每一个程序员都有一个架构师的梦,可理想很丰满,现实很骨感---大部程序员工作中都做着CRUD,但进取心与持续学习的心态还是要有的。掌握架构设计的相关理论是成为架构师的前提。在看了一本《从零开始学架构》后,发现架构设计是有套路的。......原创 2022-01-14 16:09:05 · 2279 阅读 · 0 评论 -
分布式锁的CAP分析
前言微服务的流行,使得现在基本都是分布式开发,也就是同一份代码会在多台机器上部署运行,此时若多台机器需要同步访问同一个资源(同一时间只能有一个节点机器在运行同一段代码),就需要使用到分布式锁。然而做好一个分布式锁并不容易,要考虑的点非常多,建议架构能力一般的公司对于分布式锁还是使用现有的开源框架来做(例如Redis的Redisson、Zookeeper的Curator、etcd等等),如果需要基于Redis、ZK进行自研的话,建议阅读接下来讨论的几个要点。AP与CP的选择首先我觉得最重要的就是考虑分布转载 2021-11-25 16:55:51 · 673 阅读 · 0 评论 -
如何用Redis实现分布式锁
为什么需要分布式锁在聊分布式锁之前,有必要先解释一下,为什么需要分布式锁。与分布式锁相对就的是单机锁,我们在写多线程程序时,避免同时操作一个共享变量产生数据问题,通常会使用一把锁来互斥以保证共享变量的正确性,其使用范围是在同一个进程中。如果换做是多个进程,需要同时操作一个共享资源,如何互斥呢?现在的业务应用通常是微服务架构,这也意味着一个应用会部署多个进程,多个进程如果需要修改MySQL中的同一行记录,为了避免操作乱序导致脏数据,此时就需要引入分布式锁了。想要实现分布式锁,必须借助一个外部系统,所有原创 2021-07-30 19:05:55 · 37466 阅读 · 26 评论 -
读懂消息队列:Kafka与RocketMQ
3月份学完了极客时间的《消息列队高手课》专栏,专栏讲解了许多消息队列的基础知识并且对Kafka与RocketMQ两种主流消息队列有精彩的对比分析。学完专栏后将所有要点整理为笔记记录下来。原创 2020-04-16 20:25:51 · 9649 阅读 · 3 评论 -
从单机文件系统到分布式文件系统
文件及硬盘管理是计算机操作系统的重要组成部分,文件是存储在硬盘上的,文件的读写访问速度必然受到硬盘的物理限制,那么如何才能1分钟完成一个100T大文件的遍历呢?做软件开发时,必然要经常和文件系统打交道,而文件系统也是一个软件,了解文件系统的设计原理,可以帮助我们更好地使用文件系统,另外设计文件系统时的各种考量,也对我们自己做软件设计有诸多借鉴意义。硬盘硬盘是一种可持久保存、多次读写数据的存储...原创 2020-04-05 12:14:35 · 2230 阅读 · 0 评论 -
ZooKeeper学习笔记及应用场景梳理
官网文档地址:https://zookeeper.apache.org/doc/r3.5.4-beta/zookeeperOver.html概述Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架, 它负责存储和管理大家都关心的数据, 然后接受观察者的注册, 一旦这些数据的状态发生变化, Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做...原创 2020-01-31 16:46:39 · 991 阅读 · 0 评论 -
分布式锁原理及实现方式
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致性转载 2017-10-30 20:51:21 · 1209 阅读 · 0 评论 -
基于Zookeeper实现分布式锁
实现分布式锁目前有三种流行方案,分别为基于数据库、Redis、Zookeeper的方案,其中前两种方案网络上有很多资料可以参考,本文不做展开。我们来看下使用Zookeeper如何实现分布式锁。什么是Zookeeper?Zookeeper(业界简称zk)是一种提供配置管理、分布式协同以及命名的中心化服务,这些提供的功能都是分布式系统中非常底层且必不可少的基本功能,但是如果自己实现这些功能而且要达...转载 2019-07-08 21:33:30 · 2448 阅读 · 0 评论 -
前后端分离架构概述
1、背景       前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这原创 2018-08-12 14:16:51 · 233814 阅读 · 70 评论 -
分布式架构的演进过程
一、什么是分布式架构分布式系统(distributed system) 是建立在网络之上的软件系统。 内聚性:是指每一个数据库分布节点高度自治,有本地的数据库管理系统。 透明性:是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据系统中,用户感觉不数据是分布的,即用户不须知道关系是否分割,有无副本,数据存在于那个站点以及事物在哪个站点上执行。 简单来说:...转载 2018-07-08 11:50:36 · 1000 阅读 · 0 评论 -
用消息系统实现分布式事务
从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。 上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?!在搜索广告系统中,当用户点击某广告后,除了在点击事转载 2017-10-01 15:34:01 · 760 阅读 · 0 评论 -
分布式数据库的演化过程
随着互联网时代的到来,计算机要管理的数据量成指数级别的飞速上涨。而我们完全无法对用户数做出准确的预估,我们的系统所需要支持的用户数很可能在短短的一个月内突然爆发式的增长几千倍,数据也很可能快速的从原来的几百GB飞速上涨到了几百个TB。如果在这爆发的关键时刻,系统不稳定或无法访问,那么对于业务将会是毁灭性的打击。单库单表 通常刚开始的时候,应用的数据比较少,也不会很复杂,所以应用只有一个数据库,数原创 2017-09-02 14:15:49 · 961 阅读 · 0 评论 -
为什么要使用NoSQL
NoSQL概念 随着web2.0的快速发展,非关系型、分布式数据存储得到了快速的发展,它们不保证关系数据的ACID特性(原子性、一致性、隔离性、持久性,一个支持事务的数据库,必需要具有这四种特性,否则在事务过程当中无法保证数据的正确性)。NoSQL概念在2009年被提了出来。NoSQL最常见的解释是“non-relational”,“Not Only SQL”也被很多人接受(“NoSQL”一词最早转载 2017-09-09 15:43:06 · 1631 阅读 · 0 评论 -
分布式系统的服务化演变简述
分布式应用架构体系对于业务逻辑复用的需求十分强烈,上层业务都想借助已有的底层服务,来快速搭建更多、更丰富的应用,降低新业务开展的人力和时间成本,快速满足瞬间息万变的市场需求。公共的业务被拆分出来,形成可共用的服务,最大程度地保障了代码和逻辑的复用,避免重复建设,这种设计也称为SOA(Service-Oriented Architecture)。SOA架构中,服务消费者通过服务名称,在众多服务中原创 2017-02-05 11:43:07 · 1953 阅读 · 1 评论