分布式系统

分布式系统概述(Hadoop与HBase的前生今世)

古代,人们用牛来拉重物。当一头牛拉不动一根圆木时,他们不曾想过培育更大更壮的牛。 同样:我们也不需要尝试开发超级计算机,而应试着结合使用更多计算机系统。 —— Grace Hopper(计算机软件第一夫人,计算机历史上第一个BUG的发现者,也是史上最大BUG千年虫的制造者) 这就是分布式。     再来看一组令人瞠目结舌的数据: 2012年11月11日 支付宝总交易额191亿元,订单1亿零580万 »

分布式学习最佳实践:从分布式系统的特征开始(附思维导图)

分布式学习最佳实践:从分布式系统的特征开始(附思维导图) 目录 我的探索历程 从分布式系统的特征出发 分布式系统的一般特征 可扩展性 可用性 一致性 高性能 references   正文     我的探索历程 回到顶部   这一部分,与分布式不大相关,记录的是我是如何在分布式学习这条道路上摸索的,不感兴趣的读者请直接跳到下一章。   过去的一年,我在分布式学习这条道路上苦 »

金融级分布式架构,分布式系统数据层设计模式

转自:https://blog.csdn.net/xiangwanpeng/article/details/89629156   2013 年 5 月,支付宝最后一台小型机下线,去 “IOE” 取得里程碑进展。支付宝(以及后来的蚂蚁金服)走的是一条跟传统金融行业不同的分布式架构之路。要基于普通硬件资源实现金融级的性能和可靠性,有不少难题要解决。应用层是无状态的,借助 SOA 架构还可以比较方便地扩 »

NIO,一本难念的经——分布式系统基础

如果没有网络,就没有所谓的分布式系统,但有趣的是,我们中的大多数软件工程师和系统架构师,甚至于公司里最强的技术达人,都缺乏必要的网络知识和技能,也很少有人真正重视它们。今天我们就从NIO开始,完善一下我们的网络知识。   我们知道,分布式系统的基础是网络。因此,网络编程始终是分布式软件工程师和架构师的必备高端基础技能之一,而且随着当前大数据和实时计算技术的兴起,高性能 RPC 框架与网络编程技术 »

微服务4:服务注册与发现

★ 微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 1 微服务的注册与发现 我们前面在全景架构中对服务注册与发现做了大致的说明,本章我们着重详细说明微服务下注册与发现的这个能力。 微服务注册与发现类似于生活中的"电话通讯录"的概念 ... »

看十年架构师,如何设计一个优秀的分布式系统

今天的应用程序可以说是分布式系统开发中的一项奇迹。基于不同的系统架构,构成应用程序的每个功能或服务可能在不同的系统上执行,而系统位于不同的地理位置,使用不同的计算机语言编写。应用程序的组件可能托管在一个功能强大的系统上,该系统由用户自己携带,并且可以和世界各地的应用程序组件或服务进行通信(他们都是数据中心的副本)。 而令人惊讶的是,使用这些应用程序的用户通常并不会对复杂环境的请求作出响应。这样的请 »

分布式系统中的接口调用如何保证顺序性

业务场景:有三个连续的请求,必须保证其顺序性 第一种方案:通过redis记录 点评:这种方法太重,阻塞的接口会压榨服务器的并发数/吞吐量,只有当请求1失败后其他两个才能释放。   第二种方案:前端串行请求   在不追求高服务体验的时候可以限制下一个请求,当请求1没有处理完成前,前端不会发送第二个请求,并且后端系统在接收到请求2时直接返回错误信息,也可以在前端建立一个队列,按顺序发送请求至后端,后 »

分布式精华问答 | 分布式系统面临哪些挑战?​

布式的处理方式越来越受到业界的青睐——计算机系统正在经历一场前所未有的从集中式向分布式架构的变革。今天,我们就来看看关于分布式的精华问答吧! 1Q:什么是分布式缓存? A:为了提高性能和响应时间,在应用程序(通常是Web应用程序)中“部署”并确保数据从内存加载而不是从磁盘加载(速度更慢)的解决方案。 如果要在单台机器上使用高速缓存,那么看起来很简单 - 只需从内存中的数据库中加载最活跃的数据(例 »

分布式系统关注点:无状态

来源:跨界架构师 初识「状态」 之前在「负载均衡」中提到过一个例子,我们再翻出来一下。 开发Z哥对运维Y弟喊:“Y弟,现在系统好卡,刚上了一波活动,赶紧帮我加几台机器上去顶一下。” Y弟回复说:“没问题,分分钟搞定”。 然后就发现数据库的压力迅速上升,DBA就吼了:“Z哥,你丫的搞什么呢?数据库要被你弄垮了”。 然后客服那边接框也爆炸了,越来越多的用户说刚登陆后没多久,操作着就退出了, »

Java高级架构师教你如何正常掌握分布式系统的大部分技术

分布式系统提高承载量的基本手段 分层模型(路由、代理) 使用多态服务器来协同完成计算任务,最简单的思路就是,让每个服务器都能完成全部的请求,然后把请求随机的发给任何一个服务器处理。最早期的互联网应用中,DNS轮询就是这样的做法:当用户输入一个域名试图访问某个网站,这个域名会被解释成多个IP地址中的一个,随后这个网站的访问请求,就被发往对应IP的服务器了,这样多个服务器(多个IP地址)就能一起解决处 »

分布式系统之Paxos选举协议

分布式系统之Paxos选举协议   本来洋洋洒洒写了一大堆关于分布式存储系统的数据分布,复制节点,负载均衡,容错机制。但通读之后,感觉毫无章法,乱七八糟,不适合阅读。特别对于技术,我觉得还是要解释清楚,所以本文主要介绍分布式系统中的两个重要协议之一,Paxos选举协议,后续的再持续进展吧。提一下,另一个是:两阶段提交协议。 之所以最后选择先写协议的原因在于整个分布式系统中,理解了两个分布式协议之后 »

Apache ServiceComb Kie----如何管理分布式系统中的配置

这次我想分享如何管理分布式应用系统中的配置项,我们的实践与遇到的问题   为什么要用配置中心 我相信大家在开发的过程中,经常会遇到的问题是 我有个新的特性,但是我需要对其进行控制,在必要时能将功能关闭或打开 链接数据库的线程池需要调整 访问某个目标的超时时间需要调整 调节任务执行器的线程池大小 随着业务发展,几百,几千的虚机或是容器实例配置需要管理 难道每次配置我都要去代码库中改变然后重新发布 »

关于分布式系统的数据一致性问题(二)

    在分布式系统的数据一致性问题(一)里面,简单的介绍了分布式数据的同步问题,上面的问题比较抽象,在目前的互联网应用中还很少见,这次在通过一个比较常见的例子,让大家更深入的了解一下分布式系统设计中关于数据一致性的问题   这次我们拿我们经常使用的功能来考虑吧,最近网购比较热门,就以京东为例的,我们来看看京东的一个简单的购物流程   用户在京东上下了一个订单,发现自己在京东的账户里面有余额 »

基于Memcached分布式系统DRDoS拒绝服务攻击技术研究

基础概念         友情提醒:以下仅做技术研究,如有恶意利用,发起攻击,将自负法律后果        本次反射式拒绝服务攻击技术基于全球互联网分布式的Memcached服务器,需要储备一定得安全攻防知识,网络协议知识和python代码编程技术。希望在学习本篇文章知识前自行学习相关的基础知识,文章后面同时附有参考链接。关于Memcached系统        Memcached是一个自由开源的 »

架构与思维:分布式锁方案分析

1 介绍 前面的文章我们介绍了分布式系统和它的CAP原理:一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)。参考这篇《分布式事务》 我们知道,一个分布式系统无法同时满足三个特性,所以在设计系统之初,就有一个特性要被妥协和牺牲, ... »

分布式系统设计原理与方案

 一直在思考分布式系统设计的问题,业务对象原封不动的情况下部署在客户端和服务器端,可以根据配置文件选择是连接服务器还是连接本地的数据库,这个问题让我绞尽脑汁,我总是设想的客户端与服务器端通信的方式是最低端的Socket。花了两个晚上研究CSLA.NET框架关于数据门户这块代码,才发现问题的关键所在:客户端与服务器端通信不能采用最低端的Socket,而要用高端的WebService、.NET Rem »

分布式系统

什么是分布式系统? 分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。 分布式架构图 首先需要明确的是,只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,应 »

分布式系统学习

Step0 Why分布式 传统的电信、银行业,当业务量大了之后,普通服务器CPU/IO/网络到了100%,请求太慢怎么办?最直接的做法,升级硬件,反正也不缺钱,IBM小型机,大型机,采购了堆硬件。但是互联网不能这么干,互联网没有那么财大气粗,还有很多初创,能不能赚钱还不知道。所以就有了软件方面的解决方案:分布式系统,简单说,就是一台服务器不行,我用两台、10台、100台…这就要软件系统需要支持。 »

分布式系统设计模式

概述 这篇文章是对于【分布式系统设计模式】的个人理解和部分翻译。 文章探讨了关于《基于容器化软件组件的微服务架构》。 其实容器化编程的发展路径和面向对象编程有异曲同工之妙-- 都是将复杂的系统进行抽象、解耦,然后通过一定的方式组合起来。 既然我们要组合,肯定会有面对不同情况的不同组合方式。所以,这些不同的组合方式也会有几个常用的固定模式。 而这个正式我们要探讨的--分布式系统设计模式。 说到分布式 »

最近分布式系统开发小结

用最简单的语言梳理一下最近十天做的分布式系统模块的开发。这是一个还在开发中的项目,配图也是设计原图。希望能更多地从开源项目里汲取营养,一边实战,一边积累。 系统概述 最近在设计和开发一个分布式系统的流式处理模块,整个系统用于跨集群、跨机房搬运不同数据源内的数据到另一份或多份数据源上,包括HDFS、MySQl、MongoDB、FTP等。功能比较像Hadoop的Sqoop,但是能扩展支持更多的数据 »