
分布式
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
滴滴开源的分布式id生成系统
ID Generator id生成器 分布式id生成系统,简单易用、高性能、高可用的id生成系统简介Tinyid是用Java开发的一款分布式id生成系统,基于数据库号段算法实现,关于这个算法可以参考美团leaf或者tinyid原理介绍。Tinyid扩展了leaf-segment算法,支持了多db(master),同时提供了java-client(sdk)使id生成本地化,获得了更好的性能与可用性。Tinyid在滴滴客服部门使用,均通过tinyid-client方式接入,每天生成亿级别的id。.转载 2020-07-28 15:23:03 · 238 阅读 · 0 评论 -
分布式id生成策略,我和面试官扯了一个半小时
面试官:小伙子,你还记得我吗?我是上次面试你的那个面试官。我心想:我去,怎么会不记得,我又不是青年痴呆,上次害我画了那么多图,还使劲敲了一个多钟的电脑,满脑子都是你的阴影。我:记得记得,您好,很高兴能通过二面,能够继续和您交流技术问题。我违背良心说这话真的好吗,姑且就那么一次吧,面个试都那么难?面试官又快速的扫了一下的简历,可能上次看过一次,都快过了一个多星期了,估计他都都忘了我的简历了吧。面试官:我看你简历上面写着深入了解分布式,并且也做过分布式项目,挺好的,那你知道分布式项目中生成分转载 2020-07-14 17:57:59 · 283 阅读 · 0 评论 -
手把手教你搭建一个基于Java的分布式爬虫系统
简介:在不用爬虫框架的情况下,我经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似 MySQL、HBase 等。因为此系统基于面向接口的编码思想来开发,所以具有一定的扩展性,有兴趣的朋友直接看一下代码,就能理解其设计思想。虽然代码目前来说很多地方还是比较紧耦合,但只要花些时间和精力,很多都是可抽取出来并且可配置化的。因为时间的关系,我只写了京东和苏宁易购两个网站的爬虫,但是完全可以实现不同网站爬虫的随机调度,基于其代码结构,再写国美、天猫等的商品爬取,难.转载 2020-07-03 21:04:02 · 1133 阅读 · 0 评论 -
分布式文件系统设计,该从哪些方面考虑?
分布式文件系统是分布式领域的一个基础应用,其中最著名的毫无疑问是 HDFS/GFS。如今该领域已经趋向于成熟,但了解它的设计要点和思想,对我们将来面临类似场景 / 问题时,具有借鉴意义。并且,分布式文件系统并非只有 HDFS/GFS 这一种形态,在它之外,还有其他形态各异、各有千秋的产品形态,对它们的了解,也对扩展我们的视野有所俾益。本文试图分析和思考,在分布式文件系统领域,我们要解决哪些问题、有些什么样的方案、以及各自的选择依据。过去的样子在几十年以前,分布式文件系统就已经出现了,以 Sun 在转载 2020-06-10 11:21:37 · 483 阅读 · 0 评论 -
探寻繁杂定时任务的解决方案:分布式任务调度系统
导语:本文我们从架构和技术实现上来为大家讲解腾讯云分布式任务调度系统TCT(Tencent CloudTask)如何实现任务调度的精准实时、稳定高效,以及任务的切分和编排。(编辑:中间件小Q妹)01 背景介绍缘起缘灭,自有因果首先, 我们来思考一些几个业务场景: XX信用卡中心,每月28日凌晨1:00到3:00需要完成全网用户当月的费用清单的生成。 XX服饰,需要每天上午9:00开始向会员推送送生日祝福短信。 XX游戏平台,新用户注册后,需要为当前用户生成定时..转载 2020-05-15 10:32:59 · 751 阅读 · 0 评论 -
强!分库分表与分布式数据库技术选项分析
最近经常被问到分库分表与分布式数据库如何选择,网上也有很多关于中间件+传统关系数据库(分库分表)与NewSQL分布式数据库的文章,但有些观点与判断是我觉得是偏激的,脱离环境去评价方案好坏其实有失公允。本文通过对两种模式关键特性实现原理对比,希望可以尽可能客观、中立的阐明各自真实的优缺点以及适用场景。NewSQL数据库先进在哪儿?首先关于“中间件+关系数据库分库分表”算不算NewSQL分...转载 2020-04-21 13:35:25 · 765 阅读 · 0 评论 -
分布式定时任务调度系统技术选型
1. 什么是分布式定时任务把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。叫做分布式定时任务。2. 常见开源方案 elastic-job xxl-job quartz saturn opencron antares elastic-jobelastic-job 是由当当网基于...转载 2020-04-10 22:08:50 · 1771 阅读 · 0 评论 -
两万字深度介绍分布式系统原理,一文入魂
1 概念1.1 模型节点在具体的工程项目中,一个节点往往是一个操作系统上的进程。在本文的模型中,认为节点是一个完整的、不可分的整体,如果某个程序进程实际上由若干相对独立部分构成,则在模型中可以将一个进程划分为多个节点。异常 机器宕机:机器宕机是最常见的异常之一。在大型集群中每日宕机发生的概率为千分之一左右,在实践中,一台宕机的机器恢复的时间通常认为是24 小时,一般需要人工介...转载 2019-12-31 10:25:26 · 250 阅读 · 0 评论 -
如何设计真正高性能高并发分布式系统(万字长文)
“世间可称之为天经地义的事情没几样,复杂的互联网架构也是如此,万丈高楼平地起,架构都是演变而来,那么演变的本质是什么?”—1—引子 软件复杂性来源于几个方面:高并发、高性能、高可用、可扩展、低成本、低规模、可维护、安全等。架构演化、发展都是为了试图降低复杂性: 高并发、高性能:互联网系统特点,用户量大,请求量大,高并发高性能成为必备要求。性能差体验会差,用户会有别的选...转载 2019-11-23 10:00:22 · 2331 阅读 · 0 评论 -
分布式架构知识体系必读
1.问题 1、何为分布式何为微服务? 2、为什么需要分布式? 3、分布式核心理论基础,节点、网络、时间、顺序,一致性? 4、分布式是系统有哪些设计模式? 5、分布式有哪些类型? 6、如何实现分布式? 2.关键词节点,时间,一致性,CAP,ACID,BASE,P2P,机器伸缩,网络变更,负载均衡,限流,鉴权,服务发现,服务编排,降...转载 2019-02-14 16:53:02 · 592 阅读 · 0 评论 -
我对分布式多中心架构的几点看法
每天都在谈SOA和微服务,但你真的理解什么是服务吗?服务的技术架构之争服务应该去版本化,不管是微服务还是SOA任何架构的调整只是拆了东墙补西墙,无法解决效率问题先厘清服务治理与组织架构的关系,再来谈微服务吧由于我们一直从事的是传统企业的架构改造工作,所以对新兴的互联网企业如何实施微服务架构并没有实践过。在写这一章之前,我在架构群里和曾经实施过微服务架构的互联网企业的架构师进行了...转载 2019-01-28 20:51:40 · 617 阅读 · 0 评论 -
老大难的分布式锁与幂等性问题,如何解决?长文干货!
来源:blog.youkuaiyun.com/zdy0_2004/article/details/52760404随着互联网信息技术的飞速发展,数据量不断增大,业务逻辑也日趋复杂,对系统的高并发访问、海量数据处理的场景也越来越多。如何用较低成本实现系统的高可用、易伸缩、可扩展等目标就显得越发重要。为了解决这一系列问题,系统架构也在不断演进。传统的集中式系统已经逐渐无法满足要求,分布式系统被使用在更...转载 2019-02-28 10:22:39 · 1903 阅读 · 0 评论 -
图解分布式架构的演进过程
一、什么是分布式架构分布式系统(distributed system) 是建立在网络之上的软件系统。内聚性:是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性:是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据系统中,用户感觉不数据是分布的,即用户不须知道关系是否分割,有无副本,数据存在于那个站点以及事物在哪个站点上执行。简单来...转载 2019-05-03 20:28:16 · 556 阅读 · 0 评论 -
深入剖析分布式监控 CAT —— 消息文件存储
项目简介CAT(Central Application Tracking),是基于 Java 开发的分布式实时监控系统。CAT 目前在美团点评的产品定位是应用层的统一监控组件,在中间件(RPC、数据库、缓存、MQ 等)框架中得到广泛应用,为各业务线提供系统的性能指标、健康状况、实时告警等。CAT 目前在美团点评已经基本覆盖全部业务线,每天处理的消息总量 3200 亿+,存储消息量近 400...转载 2019-05-03 19:43:36 · 710 阅读 · 0 评论 -
常用的分布式事务解决方案介绍有多少种?
来自:网易云www.zhihu.com/question/64921387/answer/225784480关于分布式事务,工程领域主要讨论的是强一致性和最终一致性的解决方案。典型方案包括: 两阶段提交(2PC, Two-phase Commit)方案 eBay 事件队列方案 TCC 补偿模式 缓存数据最终一致性 一、一致性理论分布式事务...转载 2019-06-15 20:05:13 · 303 阅读 · 0 评论 -
淘宝服务端高并发分布式架构演进之路
来源:http://t.cn/Ai98XycJ1. 概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2. 基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍: 分布式 系统中的多...转载 2019-06-10 19:18:29 · 199 阅读 · 0 评论 -
讲一点分布式的基础知识,图解!
故事还是得从单机开始,没有单机哪儿来的分布式?在IT世界,二进制的数据是我们最宝贵的资产,必须要把它保存在断电也不怕的硬盘上。但是只用一块硬盘很危险,万一坏了数据就彻底没了。于是人们就想了个办法,把两块硬盘组织了起来,互为备份。这种方式有个专门的术语,叫RAID ,就是冗余磁盘阵列的意思。上图中两个磁盘互为备份,是RAID 1 , 数据会被同时写到两块硬盘中,安全性大大提高...转载 2019-07-05 08:54:01 · 373 阅读 · 0 评论 -
从Elasticsearch来看分布式系统架构设计
来源:https://dwz.cn/gPfuoLwo分布式系统类型多,涉及面非常广,不同类型的系统有不同的特点,批量计算和实时计算就差别非常大。这篇文章中,重点会讨论下分布式数据系统的设计,比如分布式存储系统,分布式搜索系统,分布式分析系统等。我们先来简单看下Elasticsearch的架构。Elasticsearch 集群架构Elasticsearch是一个非常著名的开源...转载 2019-06-30 15:21:50 · 314 阅读 · 0 评论 -
分布式系统与消息的投递
消息是一个非常有趣的概念,它是由来源发出一个离散的通信单元,被发送给一个或者一群接受者,无论是单体服务还是分布式系统中都有消息的概念,只是这两种系统中传输消息的通道方法或者通道不同;单体服务中的消息往往可以通过 IO、进程间通信、方法调用的方式进行通信,而分布式系统中的远程调用就需要通过网络,使用 UDP 或者 TCP 等协议进行传输。communication-reliability然而网络...转载 2019-01-26 17:03:30 · 377 阅读 · 0 评论 -
分布式、高并发、多线程,到底有什么区别?
当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?确实,在一开始接触的时候,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上,他们三个总是相伴而生,但侧重点又有不同。 1 什么是分布...转载 2019-01-09 09:53:54 · 11193 阅读 · 0 评论 -
Spring Cloud构建微服务架构(六)高可用服务注册中心
前言在Spring Cloud系列文章的开始,我们就介绍了服务注册与发现,其中,主要演示了如何构建和启动服务注册中心Eureka Server,以及如何将服务注册到Eureka Server中,但是在之前的示例中,这个服务注册中心是单点的,显然这并不适合应用于线上生产环境,那么下面在前文的基础上,我们来看看该如何构建高可用的Eureka Server集群。单点Eureka Server的样...转载 2017-02-28 19:17:19 · 547 阅读 · 0 评论 -
Spring Cloud构建微服务架构(四)分布式配置中心
Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持。配置服务器为各应用的所有环境提供了一个中心化的外部配置。它实现了对服务端和客户端对Spring Environment和PropertySource抽象的映射,所以它除了适用于Spring构建的应用程序,也可以在任何其他语言运行的应用程序中使用。作为一个应用可以通过部署管道来进行测试或者投入生产,我们可以分别为...转载 2017-02-28 19:14:32 · 408 阅读 · 0 评论 -
大型分布式网站术语分析 15 条,你知道几条?
1. I/O优化 增加缓存,减少磁盘的访问次数。 优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。 设计合理的磁盘存储数据块,以及访问这些数据库的策略,这是在应用层面考虑的。例如,我们可以给存放的数据设计索引,通过寻址索引来加快和减少磁盘的访问量,还可以采用异步和非阻塞的方式加快磁盘的访问速度。 应用合理的RAID策...转载 2018-10-23 11:25:41 · 167 阅读 · 0 评论 -
为什么我们做分布式要用 Redis ?
绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。这里对 Redis 常见问题做一个总结,解决大家的知识盲点。1、为什么使用 Redis在项目中使用 Redis,主要考虑两个角度:性能和并发。如果只是为了分布式锁这些其他功能,还有其他中间件 Zookpeer 等代替,并非一定要使用 R...转载 2018-11-03 08:45:45 · 389 阅读 · 0 评论 -
分布式系统中处理参数配置的 4 种方案
一个系统中包含有各种各样的配置信息,如一个日志文件需要配置以下几个信息。 日志文件生成主目录 日志文件名称,不同的日志级别对应不同的文件 当前日志级别 还有其他各种业务参数、系统参数等,大多单一系统是直接把这些配置写死在配置文件中,当部署到测试、生产环境就再修改下配置文件,这样很容易出错,也不能灵活修改。还有就是系统变成分布式系统后,子系统越来越多,你要维护这些配置就...转载 2018-11-08 08:51:42 · 577 阅读 · 0 评论 -
为什么分布式一定要有Redis?
引言为什么写这篇文章?博主的《分布式之消息队列复习精讲》得到了大家的好评,内心诚惶诚恐,想着再出一篇关于复习精讲的文章。但是还是要说明一下,复习精讲的文章偏面试准备,真正在开发过程中,还是脚踏实地,一步一个脚印,不要投机取巧。考虑到绝大部分写业务的程序员,在实际开发中使用redis的时候,只会setvalue和getvalue两个操作,对redis整体缺乏一个认知。又恰逢博主某个同事下周...转载 2018-11-11 09:22:48 · 813 阅读 · 0 评论 -
分布式之消息队列复习精讲
引言为什么写这篇文章?博主有两位朋友分别是小A和小B:小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产品聊聊需求,改改业务逻辑。再不然就是和运营聊聊天,写几个SQL,生成下报表。又或者接到客服的通知,某某功能故障了,改改数据,然后下班部署上线。每天过的都是这种生活,技术零成长。 小B,工作于某国企,虽然能接触到一些中间件技术。然而,他只会订阅/发布消息。通俗点...转载 2018-11-09 10:06:02 · 257 阅读 · 0 评论 -
分布式之数据库和缓存双写一致性方案解析
引言为什么写这篇文章?首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于是博主战战兢兢,顶着被大家喷的风险,写了这篇文章。 文章结构...转载 2018-11-11 09:22:02 · 231 阅读 · 0 评论 -
分布式限流
前言本文接着上文应用限流进行讨论。之前谈到的限流方案只能针对于单个 JVM 有效,也就是单机应用。而对于现在普遍的分布式应用也得有一个分布式限流的方案。基于此尝试写了这个组件:https://github.com/crossoverJie/distributed-redis-tool DEMO以下采用的是https://github.com/crossoverJie...转载 2018-11-14 08:59:30 · 439 阅读 · 0 评论 -
分布式领域架构师要掌握的技术
分布式系统无疑是持久的热门话题,但其实如果不是一定有必要,强烈建议不要进入分布式领域,在集中式的情况下很多问题都会简单不少,技术人员千万不要因为外界火热的例如微服务,就把自己的产品的也去做改造,一定要仔细判断是否有必要,不要为了技术而技术,那么在必须分布式的情况下(访问量、存储量或开发人数),一个分布式领域的合格的架构师要掌握哪些技术呢,这篇文章就聊聊这个话题。简单重复下我对架构师的标准,...转载 2018-11-15 08:52:35 · 297 阅读 · 0 评论 -
后端风云
经过一个月的折腾,终于分家了。原来的订单模块,库存模块,积分模块,支付模块......摇身一变,成为了一个个独立系统。主人给这些独立的系统起了一个时髦的名字: 微服务!有些微服务是主人的心头肉,他们“霸占”了一台或者多台机器,像我这个积分模块,哦不,是积分系统,不受人待见,只能委屈一下,和另外几个家伙共享一台机器了。主人说我们现在是分布式的系统了,大家要齐心协力,共同完成原来的任务...转载 2018-11-29 09:16:13 · 232 阅读 · 0 评论 -
干货 | 解决分布式场景下数据一致性问题,我有办法!
此次分享的缘由支付重构考虑支付重构的时候,自然想到原本属于一个本地事务中的处理,现在要跨应用了要怎么处理。拿充值订单举个栗子吧,假设:原本订单模块和账户模块是放在一起的,现在需要做服务拆分,拆分成订单服务,账户服务。原本收到充值回调后,可以将修改订单状态和增加金币放在一个mysql事务中完成的,但是呢,因为服务拆分了,就面临着需要协调2个服务才能完成这个事务 所以就带出来,我们今...转载 2018-12-08 10:51:44 · 4022 阅读 · 0 评论 -
分布式的事务该怎么做?
分布式八大坑分布式就是魔鬼啊! 张大胖最近十分感慨,他所在的公司原来有个电商系统,后来随着用户量越来越大,对系统的可用性要求越来越高。 CTO要求把系统进行拆分, 从一个单体的应用,拆分成微服务组成的应用。 微服务听起来很美好,但是其中的苦只有做过的人才知道。 在原来的单体应用中,订单模块想要调用库存和支付,只要调用相关的类或者接口就可以了,只有一个数据库,轻轻松松就可以把所...转载 2018-12-10 15:19:38 · 686 阅读 · 0 评论 -
理解分布式系统中的缓存架构(上)
本文主要介绍大型分布式系统中缓存的相关理论,常见的缓存组件以及应用场景。1. 缓存概述缓存概述 2. 缓存的分类缓存主要分为以下四类缓存的分类 2.1 CDN缓存基本介绍CDN(Content Delivery Network 内容分发网络)的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技...转载 2018-12-17 20:14:22 · 197 阅读 · 0 评论 -
理解分布式系统中的缓存架构(下)
承接上一篇《理解分布式系统中的缓存架构(上)》,介绍了大型分布式系统中缓存的相关理论,常见的缓存组件以及应用场景,本文主要介绍缓存架构设计常见问题以及解决方案,业界案例。1. 分层缓存架构设计标题2. 缓存带来的复杂度问题常见的问题主要包括 数据一致性 缓存穿透 缓存雪崩 缓存高可用 缓存热点 下面逐一介绍分析这些问题以及相应的解决方案...转载 2018-12-17 20:37:53 · 249 阅读 · 0 评论 -
如何搭建一个 MySQL 分布式集群
作者丨茶轴的青春https://segmentfault.com/a/1190000016829266?utm_source=tag-newest1、准备集群搭建环境使用6台虚拟机来搭建 MySQL分布式集群 ,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示:管理节点(MGM):这类节点的作用是管理MySQLCluster内的其他节点,如提供配置数据,并停止节...转载 2018-12-19 09:57:25 · 995 阅读 · 0 评论 -
别吵吵,分布式锁也是锁
Tomcat的锁Tomcat是这个系统的核心组成部分, 每当有用户请求过来,Tomcat就会从线程池里找个线程来处理,有的执行登录,有的查看购物车,有的下订单,看着属下们尽心尽职地工作,完成人类的请求,Tomcat就很有成就感。 与此同时,它也很得意,所有的业务逻辑尽在掌握。MySQL算啥!不就是一个保存数据的地方吗? Redis算啥!不就是一个加快速度的缓存吗? 没有他们,我...转载 2019-01-02 10:41:11 · 259 阅读 · 0 评论 -
raft原理的动画演示
过去, Paxos一直是分布式协议的标准,但是Paxos难于理解,更难以实现,Google的分布式锁系统Chubby作为Paxos实现曾经遭遇到很多坑。 来自Stanford的新的分布式协议研究称为Raft,它是一个为真实世界应用建立的协议,主要注重协议的落地性和可理解性。 在了解Raft之前,我们先了解Consensus一致性这个概念,它是指多个服务器在状态达成一致,但是在一个...原创 2018-03-20 10:32:51 · 5661 阅读 · 0 评论