分布式技术

分布式系统与架构

落爺英雄遲暮 提交于 2019-12-10 11:29:57
1. 分布式系统架构有哪些优势? 1)增大系统容量 2)加强系统可用性 3)因为模块化,所以系统模块重用度更高 4)因为软件模块化被拆分,开发和发布速度可以并发而变得更快 5)系统扩展性更高 6)团队协作流程也会得到改善 2. 分布式系统架构有哪些劣势? 1)架构设计变得复杂(尤其是其中的分布式事务) 2)部署单个服务会比较快,但如果一次部署多个服务,流程会变得复杂 3)系统的吞吐量会变大,但响应时间会边长。 4)运维复杂度会因为服务变多而变得复杂 5)架构复杂导致学习曲线变大 6)测试和查错的复杂度增大 7)技术多元化,这会带来维护和运维的复杂度 8)管理分布式系统中的服务和调度变得困难和复杂 来源: https://www.cnblogs.com/Jtianlin/p/12015390.html

分布式架构设计

自古美人都是妖i 提交于 2019-12-10 04:17:25
分布式架构设计 1.分布式架构的基本理论 2.SOA架构和微服务架构 3.领域驱动设计及业务驱动划分 ==================================== 一. 分布式架构的基本理论 1.CAP理论 一个经典的分布式系统理论。CAP 理论告诉我们:一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个基本需求,最多只能同时满足其中两项。 一致性(Consistency) 所有节点上的数据必须时刻保持一致 可用性(Availability) 可用性是指服务一直可用,而且是正常的响应时间 分区容错性(Partition tolerance) 系统应该持续提供服务,即时系统内部(某个节点分区)有消息丢失。比如交换机失败、网址网络被分成几个子网,形成脑裂;服务器发生网络延迟或死机,导致某些 server 与集群中的其他机器失去联系 总结: CAP 并不是一个普适性原理和指导思想,它仅适用于原子读写的 NoSql 场景中,并不适用于数据库系统。 2.BASE理论 从前面的分析中知道:在分布式(数据库分片或分库存在的多个实例上)系统下,CAP 理论并不适合数据库事务(因为更新一些错误的数据而导致的失败,无论使用什么样的高可用方案都是徒劳

分布式架构知识体系

泄露秘密 提交于 2019-12-09 20:59:36
基础理论 SOA 到 MSA 的进化 SOA 面向服务架构 由于业务发展到一定程度后,需要对服务进行解耦,进而把一个单一的大系统按逻辑拆分成不同的子系统,通过服务接口来通讯。面向服务的设计模式,最终需要总线集成服务,而且大部分时候还共享数据库,出现单点故障时会导致总线层面的故障,更进一步可能会把数据库拖垮,所以才有了更加独立的设计方案的出现。 MSA 微服务架构 微服务是真正意义上的独立服务,从服务入口到数据持久层,逻辑上都是独立隔离的,无需服务总线来接入,但同时也增加了整个分布式系统的搭建和管理难度,需要对服务进行编排和管理,所以伴随着微服务的兴起,微服务生态的整套技术栈也需要无缝接入,才能支撑起微服务的治理理念。 节点与网络 节点 传统的节点也就是一台单体的物理机,所有的服务都揉进去包括服务和数据库;随着虚拟化的发展,单台物理机往往可以分成多台虚拟机,实现资源利用的最大化,节点的概念也变成单台虚拟机上面服务;近几年容器技术逐渐成熟后,服务已经彻底容器化,也就是节点只是轻量级的容器服务。总体来说,节点就是能提供单位服务的逻辑计算资源的集合。 网络 分布式架构的根基就是网络,不管是局域网还是公网,没有网络就无法把计算机联合在一起工作,但是网络也带来了一系列的问题。网络消息的传播有先后,消息丢失和延迟是经常发生的事情,我们定义了三种网络工作模式: 同步网络 节点同步执行 消息延迟有限

杉岩引领国产分布式存储厂商,坚持国产化技术路线

萝らか妹 提交于 2019-12-09 19:19:18
2019年中国迈入新数据时代元年,IDC最新发布的《2025年中国将拥有全球最大的数据圈》显示,中国各类型数据呈几何级数增长,预计在2025年中国数据圈将增至48.6ZB。数据带来前所未有的商业红利的同时也带来了前所未有的风险。数据泄露水平指数显示,2018年每天有超过2500万条数据遭到入侵或泄露,涵盖医疗、信用卡、财务数据、个人身份信息等。   存储介质作为如此庞大数据量的承载者,在这样的背景下,安全显得尤为重要。当下,我国正在全力推进党政信息化建设,《“十三五”国家信息化规划》提出:到2020年,“数字中国”建设取得显著成效,具有国际竞争力、安全可控的信息产业生态体系基本建立。      杉岩数据在数据存储技术发展的道路上始终心怀担当,坚持走国产化技术路线,专注在分布式存储领域深耕,历时多年研发出全国产化分布式统一存储平台USP。    Sandstone USP作为一款国产分布式存储软件产品,技术架构上采用业内领先的全分布式高可用设计,全平台无单点故障,并且可以提供文件存储、块存储和对象存储三种不同类型的存储模块,这些存储模块可以灵活的组合搭配,提供快速简便的访问方式,满足新一代应用的敏捷开发需求,能够根据应用的发展进行灵活的弹性扩展。提供了全语义、跨协议数据访问,帮助企业打通数据孤岛、实现传统应用间的数据共享,一体化极简架构与分钟级扩容、秒级数据检索,加速企业上云转型

hadoop简介

馋奶兔 提交于 2019-12-08 19:01:47
转: http://baike.baidu.com/link?url=HwhPVuqqWelWIr0TeSBGPZ5SjoaYb5_Givp9-rJN-PYbSTMlwpECSKvjzLBzUE7hn9VvmhDoKb5NNCPw1pCsTa Hadoop 是一个由Apache基金会所开发的 分布式系统 基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 [1] Hadoop实现了一个 分布式文件系统 (Hadoop Distributed File System),简称HDFS。HDFS有高 容错性 的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问 应用程序 的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。 Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。 [2] 中文名 海杜普 外文名 Hadoop 类 别 电脑程序 全 称 Hadoop Distributed File System 目录 1 起源 ▪ 项目起源 ▪

从hadoop框架与MapReduce模式中谈海量数据处理

邮差的信 提交于 2019-12-08 18:20:07
废话不说直接来一张图如下: 从JVM的角度看Map和Reduce Map阶段包括: 第一读数据:从HDFS读取数据 1、问题:读取数据产生多少个Mapper?? Mapper数据过大的话,会产生大量的小文件,由于Mapper是基于虚拟机的,过多的Mapper创建和初始化及关闭虚拟机都会消耗大量的硬件资源; Mapper数太小,并发度过小,Job执行时间过长,无法充分利用分布式硬件资源; 2 、 Mapper 数量由什么决定?? ( 1 ) 输入文件数目 ( 2 ) 输入文件的大小 ( 3 ) 配置参数 这三个因素决定的。 涉及参数: mapreduce.input.fileinputformat.split.minsize //启动map最小的split size大小,默认0 mapreduce.input.fileinputformat.split.maxsize //启动map最大的split size大小,默认256M dfs.block.size//block块大小,默认64M 计算公式:splitSize = Math.max(minSize, Math.min(maxSize, blockSize)); 例如 默认情况下:例如一个文件800M,Block大小是128M,那么Mapper数目就是7个。6个Mapper处理的数据是128M,1个Mapper处理的数据是32M

MySQL海量数据分布式存储

心不动则不痛 提交于 2019-12-08 18:09:06
 本文只是一个概念,具体配置太多,这里不做细节描述。   1、分布式应用的概念和优势   分布式数据库是指利用高速网络将物理上分散的多个数据 存储 单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获得更大的存储容量和更高的并发访问量。近年来,随着数据量的增长,分布式数据库技术也得到了快速的发展,传统的关系型数据库开始从集中式模型向分布式存储,从集中式计算走向分布式计算。   分布式数据库系统的主要目的是容灾、异地数据备份,并且通过就近访问原则,用户可以就近访问数据库节点,这样就实现了异地的负载均衡。同时,通过数据库之间的数据传输同步,可以分布式保持数据的一致性,这个过程完成了数据备份,异地存储数据在单点故障的时候不影响服务的访问,只需要将访问流量切换异地镜像就行。   分布式数据库应用的优势如下:   (1)适合分布式数据管理,能够有效提高系统性能。   (2)系统经济性和灵活性好。   (3)系统的可靠性和可用性强。   2、mysql分布式应用的主要技术   (1)mysql数据切割   数据切割(sharding)是指通过某种特定的条件,将存放在同一数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。数据切分还可以提高系统的总体可用性,因为单台crash之后

[转帖]Hyperledger Fabric 学习一:简介

本秂侑毒 提交于 2019-12-08 00:36:28
Hyperledger Fabric 学习一:简介 https://www.jianshu.com/p/f971858b70f3?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation 1、Hyperledger简介 Hyperledger:超级账本,是首个面向企业应用场景的分布式账本平台,包括了:IBM、Intel、Cisco、DAH、摩根大通、R3等在内的众多科技和金融巨头的贡献参与,在银行、供应链等领域得到了广泛的关注和发展,目前已经拥有超过200家企业成员。 Hyperledger项目: 2015年12月,由开源世界的旗舰组织Linux基金会牵头,30家初始企业成员共同宣布Hyperledger联合项目成立。 成立之初,IBM贡献了4万多行已有的OpenBlockchain代码,Digital Asset则贡献了企业和开发者相关资源,R3贡献了新的金融交易架构,Inter也贡献了分布式账本相关的代码。 作为一个联合项目,旗下由面向不同的场景的子项目构成:包括Fabric、Sawtooth、Iroha、BlockChain Explorer、Cello、indy、Composer、Burrow等8大顶级项目。 Fabric:是一个带有准入机制的企业级联盟链项目

分布式配置管理平台Disconf

倾然丶 夕夏残阳落幕 提交于 2019-12-07 20:15:45
摘要 为了更好的解决分布式环境下多台服务实例的配置统一管理问题,本文提出了一套完整的分布式配置管理解决方案(简称为disconf[4],下同)。首先,实现了同构系统的配置发布统一化,提供了配置服务server,该服务可以对配置进行持久化管理并对外提供restful接口,在此基础上,基于zookeeper实现对配置更改的实时推送,并且,提供了稳定有效的容灾方案,以及用户体验良好的编程模型和WEB用户管理界面。其次,实现了异构系统的配置包管理,提出基于zookeeper的全局分布式一致性锁来实现主备统一部署、系统异常时的主备自主切换。通过在百度内部以及外部等多个产品线的实践结果表明,本解决方案是有效且稳定的。 技术背景 在一个分布式环境中,同类型的服务往往会部署很多实例。这些实例使用了一些配置,为了更好地维护这些配置就产生了配置管理服务。通过这个服务可以轻松地管理成千上百个服务实例的配置问题。 王阿晶提出了基于zooKeeper的配置信息存储方案的设计与实现[1], 它将所有配置存储在zookeeper上,这会导致配置的管理不那么方便,而且他们没有相关的源码实现。淘宝的diamond[2]是淘宝内部使用的一个管理持久配置的系统,它具有完整的开源源码实现,它的特点是简单、可靠、易用,淘宝内部绝大多数系统的配置都采用diamond来进行统一管理。他将所有配置文件里的配置打散化进行存储

微服务架构下分布式事务解决方案——阿里GTS

笑着哭i 提交于 2019-12-07 10:23:31
1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、 腾讯 、 360 、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多,比较著名的有 Dubbo 、 SpringCloud 、 thrift 、 grpc 等。 2 微服务落地存在的问题 虽然微服务现在如火如荼,但对其实践其实仍处于探索阶段。很多中小型互联网公司,鉴于经验、技术实力等问题,微服务落地比较困难。如著名架构师Chris Richardson所言,目前存在的主要困难有如下几方面: 1)单体应用拆分为分布式系统后,进程间的通讯机制和故障处理措施变的更加复杂。 2)系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并操作多个数据库实现,服务调用的分布式事务问题变的非常突出。 3)微服务数量众多,其测试、部署、监控等都变的更加困难。 随着RPC框架的成熟,第一个问题已经逐渐得到解决。例如dubbo可以支持多种通讯协议,springcloud可以非常好的支持restful调用。对于第三个问题,随着docker