分布式架构

分布式系统基础架构——Hadoop

跟風遠走 提交于 2019-12-28 05:44:21
1.Hadoop   a.概念:Hadoop是一个由Apache基金会所开发的分布式系统基础架构   b.组成:Hadoop = HDFS (文件系统) + Mapreduce (数据处理) 2.安装   a.配置Java运行环境   b.从官网下载 Hadoop 并解压,地址:http://hadoop.apache.org/releases.html   c.下载 winutils 对 windows 进行支持,地址:https://github.com/steveloughran/winutils(支持老版本)                       https://github.com/zyj108/apache-hadoop-3.1.0-winutils(支持Hadoop3.1.2)   d.解压 winutils 覆盖到 Hadoop 根目录(主要是覆盖bin目录)   e.在 Hadoop 的 etc\hadoop 下,修改如下配置文件     ①修改core-site.xml,配置默认hdfs的访问端口 <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9527</value> </property> </configuration>     ②修改hdfs

Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)

僤鯓⒐⒋嵵緔 提交于 2019-12-27 21:37:41
专注于各种 分布式系统配置管理 的 通用组件 / 通用平台 , 提供统一的 配置管理服务 。 主要目标: 部署极其简单:同一个上线包,无须改动配置,即可在 多个环境中(RD/QA/PRODUCTION) 上线 部署动态化:更改配置,无需重新打包或重启,即可 实时生效 统一管理:提供web平台,统一管理 多个环境(RD/QA/PRODUCTION)、多个产品 的所有配置 项目信息 CLIENT 端: Java: 目前唯一支持语言 python:打算支持 PHP:暂未支持 WEB 管理端: Java SpringMvc 实现,前后端分离 实现方式(基于Spring 4.1.7.RELEASE) java client disconf.git branches and Maven version: dev(develop branch): 2.6.28-SNAPSHOT master(stable branch):2.6.27 更新日志 在Maven Central Repository里查看 com.baidu.disconf Java Client Elegant Usage Preview 注解式分布式配置使用方式 XML配置式分布式配置方式 当前版本功能特点 支持配置(配置项+配置文件)的分布式化管理 配置发布统一化 极简的使用方式(注解式编程 或 XML无代码侵入模式)

Storm:分布式流式计算框架

北城以北 提交于 2019-12-27 05:25:17
Storm是一个分布式的、高容错的实时计算系统。Storm适用的场景: Storm可以用来用来处理源源不断的消息,并将处理之后的结果保存到持久化介质中。 由于Storm的处理组件都是分布式的,而且处理延迟都极低,所以可以Storm可以做为一个通用的分布式RPC框架来使用。(实时计算?) Storm集群架构 Storm集群采用主从架构方式,主节点是Nimbus,从节点是Supervisor,有关调度相关的信息存储到ZooKeeper集群中,架构如下图所示 Nimbus:Storm集群的Master节点,负责分发用户代码,指派给具体的Supervisor节点上的Worker节点,去运行Topology对应的组件(Spout/Bolt)的Task。 Supervisor:Storm集群的从节点,负责管理运行在Supervisor节点上的每一个Worker进程的启动和终止。 ZooKeeper: 存储客户端提供的topology任务信息,nimbus负责将任务分配信息写入Zookeeper,supervisor从Zookeeper上读取任务分配信息 存储supervisor和worker的心跳(包括它们的状态),使得nimbus可以监控整个集群的状态, 从而重启一些挂掉的worker 存储整个集群的所有状态信息和配置信息。 组件抽象 我们先看一下

GFS分布式文件存储系统(理论)

自古美人都是妖i 提交于 2019-12-26 14:44:06
GlusterFS概述 GlusterFS简介 •开源的分布式文件系统 •由存储服务器,客户端以及NFS/Samba存储网关组成 •无元数据服务器 RDMA:负责数据传输 GlusterFS的特点 •扩展性和高性能 •高可用性 •全局统一的命名空间 •弹性卷管理 •基于标准协议 GlusterFS术语 •Brick : 存储节点 •Volume : 卷 •FUSE : 内核模块,用户端的交互模块 •VFS : 虚拟端口 •Glusterd : 服务 模块化堆栈架构 •模块化、堆栈式的架构 •通过对模块的组合,实现负责的功能 GlusterFS工作模式 •Application:客户端或应用程序通过GlusterFSync的挂载点访问数据 •VFS:linux系统内核通过VFS API收到请求并处理 •FUSE : VFS 将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端 •GlusterFS Client ; 通过网络将数据传递至远端的GlusterFS Server,并且写入到服务器存储设备上 GlusterFS工作原理 GlusterFS工作流程 弹性HASH算法 •通过HASH算法得到一个32位的整数 •划分为N个连续的子空间,每个空间对应一个Brick •弹性HASH算法的优点 •

架构设计-谈谈架构

非 Y 不嫁゛ 提交于 2019-12-26 10:11:16
架构设计(1)-谈谈架构 原创我为AI领域做了奉献 发布于2018-11-15 10:39:22 阅读数 419 收藏 展开 分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 1、什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。 此君说的架构和彼君理解的架构未必是一回事。 LInux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux上的业务系统也有架构,应该关注哪一个?想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构: 1.1、系统与子系统 系统:泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能独立完成的工作能力的群体。 子系统:也是由一群关联的个体组成的系统,多半是在更大的系统中的一部分。 1.2、模块与组件 都是系统的组成部分,从不同角度拆分系统而已。模块是逻辑单元,组件是物理单元。 1.3、框架与架构 框架是组建的规范,例如:MVC、MVP、MVVM等,是提供基础功能的产品,例如:Ruby on Rails、Spring、Laravel、Django等。 框架是规范,架构是结构。 我再这重新定义架构

GFS分布式文件系统集群(理论篇)

ぃ、小莉子 提交于 2019-12-26 01:01:35
GlusterFS概述 GlusterFS简介 开源的分布式文件系统 由存储服务器,客户端以及NFS/Samba存储网关组成 无元数据服务器 GlusterFS的特点 扩展性和高性能 高可用性 全局统一的命名空间 弹性卷管理 基于标准协议 GlusterFS术语 Brick : 存储节点 Volume : 卷 FUSE : 内核模块,用户端的交互模块 VFS : 虚拟端口 Glusterd : 服务 模块化堆栈架构 模块化、堆栈式的架构 通过对模块的组合,实现负责的功能 GlusterFS工作模式 GlusterFS工作流程 Application:客户端或应用程序通过GlusterFSync的挂载点访问数据 VFS:linux系统内核通过VFS API收到请求并处理 FUSE : VFS 将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端 GlusterFS Client ; 通过网络将数据传递至远端的GlusterFS Server,并且写入到服务器存储设备上 弹性HASH算法 通过HASH算法得到一个32位的整数 划分为N个连续的子空间,每个空间对应一个Brick 弹性HASH算法的优点 保证数据平均分布在每一个Brink中 解决了对元数据服务器的依懒,进而解决了单点故障以及访问瓶颈

分布式事务解决方案

非 Y 不嫁゛ 提交于 2019-12-25 03:43:53
什么场景下会产生分布式事务? 在支付异步回调的情况下,支付宝发送http请求给第三方平台,第三方平台需要更改支付状态以及订单状态,在此场景下,第三方平台更改本地支付数据库的支付状态后,通知订单服务更改订单的状态,在此程序后,如果代码出现异常,由于有声明式事务的存在,本地支付服务的数据库会进行回滚,变成未支付状态,但是订单服务的状态却无法回滚,订单服务的订单的状态变成已支付状态,这就出现了订单数据库和支付数据库数据不一致的情况,这便是分布式事务产生的场景之一。 什么是分布式事务? 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 分布式事务的理论 1、cap理论 1)数据一致性(consistency) 如果系统对一个写操作返回成功,那么之后的读请求都必须读到这个新数据;如果返回失败,那么所有读操作都不能读到这个数据,对调用者而言数据具有强一致性(strong consistency) (又叫原子性 atomic、线性一致性 linearizable consistency) 一致性指

分布式进阶(二十) Kafka简介

北战南征 提交于 2019-12-24 22:01:43
一、简介 1.1 概述 Kafka是最初由Linkedin公司开发,是一个 分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统) ,常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。 主要应用场景是: 日志收集系统和消息系统。 Kafka主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能。 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输。 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输。 同时支持离线数据处理和实时数据处理。 Scale out:支持在线水平扩展 1.2 消息系统介绍 一个消息系统负责将数据从一个应用传递到另外一个应用,应用只需关注于数据,无需关注数据在两个或多个应用间是如何传递的。分布式消息传递基于可靠的消息队列,在客户端应用和消息系统之间异步传递消息。有两种主要的消息传递模式:点对点传递模式、发布-订阅模式。大部分的消息系统选用发布-订阅模式。 Kafka就是一种发布-订阅模式。 1.3 点对点消息传递模式 在点对点消息系统中,消息持久化到一个队列中。此时

GlusterFS分布式文件系统概述

≯℡__Kan透↙ 提交于 2019-12-24 18:26:39
博文目录 一、GlusterFS概述 1、GlusterFS的特点 2、GlusterFS术语 3、模块化堆栈式架构 二、GlusterFS的工作原理 1、GlusterFS的工作流程 2、弹性HASH算法 三、GlusterFS的卷类型 1、分布式卷 2、条带卷 3、复制卷 4、分布式条带卷 5、分布式复制卷 一、GlusterFS概述 GlusterFS是一个开源的分布式文件系统,同时也是Scale-Out存储解决方案Gluster的核心,在存储数据方面有强大的横向扩展能力,通过扩展不同的节点可以支持PB级别的存储容量。GlusterFS借助TCP/IP或InfiniBand RDMA网络将分散的存储资源汇聚在一起,同一提供存储服务,并使用单一全局命令空间来管理数据。GlusterFS基于可堆叠的用户空间以及无元的设计,可为各种不同的数据负载提供优异的性能。 GlusterFS主要由存储服务器、客户端及NFS/Samba存储网关(可选,根据需要选择使用)组成。GlusterFS架构中最大的设计特点就是没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节点上的目录信息、目录结构等,这样的设计在浏览目录时效率非常高,但是也存在一些缺陷,如单点故障,一旦元数据服务器出现故障,即使节点具备再高的冗余性

Elastic-Job

旧时模样 提交于 2019-12-24 13:58:20
什么是Elastic-Job Elastic-Job是当当网大牛基于Zookepper,Quartz开发并且开源的Java分布式定时任务,解决Quartz不支持分布式的弊端。它由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。 基本概念 分片概念:任务分布式的执行,需要将一个任务拆分成多个独立的任务项,然后由分布式的服务器分别执行某一个或几个分片项 个性化参数:shardingItemParameter,可以和分片项匹配对应关系。比如:将商品的状态分成上架,下架。那么配置0=上架,1=下架,代码中直接使用上架下架的枚举值即可完成分片项与业务逻辑的对应关系 作用高可用:将分片总数设置成1,多台服务器执行作业将采用1主n从的方式执行 弹性扩容:将任务拆分为n个任务项后,各个服务器分别执行各自分配到的任务项。一旦有新的服器加入集群或有服务器宕机。Elastic-Job将保留本次任务不变,下次任务开始前重新分片。 并行调度:采用任务分片方式实现。将一个任务拆分为n个独立的任务项,由分布式的服务器并行执行各自分配到的分片项。 集中管理:采用基于zookepper的注册中心,集中管理和协调分布式作业的状态,分配和监听。外部系统可直接根据Zookeeper的数据管理和监控elastic-job。 定制化流程任务:作业可分为简单和数据流处理两种模式