分布式处理

redis集群笔记

允我心安 提交于 2020-01-17 00:08:04
1 什么是集群(理解) 多个服务器集中再一起 ,去处理同一个业务 集群和分布式概念(理解) 2 为什么需要集群 ,集群有什么好处?(理解) 解决 高并发 大数据的问题 3 集群的特点(理解) (1) 扩展性 --可以动态的去扩展的服务器 (2) 高可用 --> 具备容错的功能 (错误恢复) (3) 负载均衡 -->把请求 分配到不同的服务器里面 4 面试题 :集群和分布式区别?(理解) (1)相同点 ​ 解决高并发 和 大数据的问题 (2)不同点 ​ 集群 是 多个服务去实现同一个功能 ​ 分布式 不同的服务器实现不同的功能 5 如果要做集群 应该怎么做? 方案一 主从复制 好不好? 优点: 完成主从复制 , 缺点:不能完成容错或者恢复的功能(keepalive) 获取 手动重启 ​ 扩展服务器比较麻烦 方案二: 哨兵模式 Redis 2.8中提供了哨兵工具来 实现自动化的系统监控和故障恢复功能 。 好处:完成自动的主从切换 缺点:Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂 方案三: Redis-Cluster (搭建) 好处:可以完成分布式存储问题,解决容量问题 Redis-Cluster 采用无中心结构 6 redis集群搭建步骤(了解) (1) 拷贝6份 redis文件 ​ 修改 端口 为 6379 , 6380,6381,6382,6383

JAVA总结--dubbo与zookeeper

只谈情不闲聊 提交于 2020-01-16 04:02:47
读累了就看看实操 https://www.cnblogs.com/huasky/p/10214642.html 一、SOA 概念:SOA:Service-Oriented Architecture,面向服务的架构,将应用程序的不同功能(服务)通过定义的接口来实现数据通信;服务治理;服务调度中心和治理中心; 架构演变:单一应用架构ORM | 垂直应用架构MVC | 分布式服务架构RPC | 流动计算架构SOA ORM :流量小,单一应用,部署一起;关注于简化增删改查的对象关系映射, MVC :流量增加,应用拆分;关注于提高前端开发速度; RPC :远程过程调用;通过网络进行远程计算机服务的请求;核心业务抽取;关注于业务的复用和整合; 由统一到分布式: 使用场景由混乱到统一: SOA又叫服务治理,SOA就是帮助我们把服务之间调用的乱七八糟的关系给治理起来,然后提供一个统一的标准; 统一标准:各系统的协议、地址、交互方式。 新的交互方式:各个系统分别根据统一标准向数据总线进行注册,各子系统调用其他子系统时,我们并不关心如果找到其他子系统,我们只招数据总线,数据总线再根据统一标准找其他子系统,所以数据总线在这里充当一个只路人的作用。 数据总线是起到调度服务的作用,数据总线不是集成服务,数据总线更新一个调度框架,每个服务需要根据约定向数据总线注册服务;服务不是经过总线的

电商平台架构

感情迁移 提交于 2020-01-15 03:39:56
设计理念 1 时间换空间 1.1 多级缓存,静态化 客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag), 反向代理缓存,应用端的缓存(memcache),内存数据库,Buffer、cache机制(数据库,中间件等)。 1.2 索引 哈希、B树、倒排、bitmap 哈希索引:适合综合数组的寻址和链表的插入特性,可以实现数据的快速存取。 B树索引:适合于查询为主导的场景,避免多次的IO,提高查询的效率。 倒排索引:实现单词到文档映射关系的最佳实现方式和最有效的索引结构,广泛用在搜索领域。 Bitmap:是一种非常简洁快速的数据结构,他能同时使存储空间和速度最优化(而不必空间换时间),适合于海量数据的的计算场景。 2. 并行与分布式计算 2.1 任务切分、分而治之(MR) 在大规模的数据中,数据存在一定的局部性的特征,利用局部性的原理将海量数据计算的问题分而治之。 MR模型是无共享的架构,数据集分布至各个节点。处理时,每个节点就近读取本地存储的数据处理(map),将处理后的数据进行合并(combine)、排序(shuffle and sort)后再分发(至reduce节点),避免了大量数据的传输,提高了处理效率。 2.2 多进程

阿里巴巴飞天大数据架构体系与Hadoop生态系统

倖福魔咒の 提交于 2020-01-14 14:56:08
很多人问阿里的飞天大数据平台、云梯2、MaxCompute、实时计算到底是什么,和自建Hadoop平台有什么区别。 先说Hadoop 什么是Hadoop? Hadoop是一个开源、高可靠、可扩展的分布式大数据计算框架系统,主要用来解决海量数据的存储、分析、分布式资源调度等。Hadoop最大的优点就是能够提供并行计算,充分利用集群的威力进行高速运算和存储。 Hadoop的核心有两大板块:HDFS和MapReduce。 HDFS全称Hadoop Distributed File System,是一种分布式文件存储系统。分布式文件系统是指将固定于某个地点的某个文件系统,扩展到任意多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。HDFS有着高容错性,可以部署在低廉的硬件;提供高吞吐量来访问应用程序的数据;可以有效解决超大数据量存储和管理难题的分布式文件系统属性的特点。因此HDFS天然适合有着超大数据集的应用程序,或者说本身就是为超大规模数据量处理的应用程序而设计的。 MapReduce是一个分布式离线并行计算框架,能够对大数据集进行并行处理

分布式事务,EventBus 解决方案:CAP【中文文档】

可紊 提交于 2020-01-14 03:00:47
原文: 分布式事务,EventBus 解决方案:CAP【中文文档】 最新文档地址: https://github.com/dotnetcore/CAP/wiki 前言 很多同学想对CAP的机制以及用法等想有一个详细的了解,所以花了将近两周时间写了这份中文的CAP文档,对 CAP 还不知道的同学可以先看一下 这篇文章 。 本文档为 CAP 文献(Wiki),本文献同时提供中文和英文版本,英文版本目前还在翻译中,会放到Github Wiki 中。 目录 前言 1、Getting Started 1.1 介绍 1.2 应用场景 1.3 Quick Start 2、API接口 2.1 发布/发送 2.1.1 事务 2.2 订阅/消费 2.2.1 例外情况 3、配置 3.1 Cap Options 3.2 RabbitMQ Options 3.3 Kafka Options 3.4 SqlServer Options 3.5 MySql Options 4、设计原理 4.1 动机 4.2 持久化 4.3 通讯数据流 4.4 一致性 5、实现 5.1 消息表 5.2 消息格式 5.3 EventBus 5.4 重试 6、分布式事务 6.1 异步确保 7、FAQ 1、Getting Started 1.1 介绍 CAP 是一个遵循 .NET Standard 标准库的C#库

保证分布式系统数据一致性的6种方案

China☆狼群 提交于 2020-01-13 23:18:47
问题的起源 在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。 在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接受。为了便于讨论问题,先简单介绍下数据一致性的基础理论。 强一致 当更新操作完成之后,任何多个后续进程或者线程的访问都会返回最新的更新过的值。这种是对用户最友好的,就是用户上一次写什么,下一次就保证能读到什么。根据 CAP 理论,这种实现需要牺牲可用性。 弱一致性 系统并不保证续进程或者线程的访问都会返回最新的更新过的值。系统在数据写入成功之后,不承诺立即可以读到最新写入的值,也不会具体的承诺多久之后可以读到。 最终一致性 弱一致性的特定形式。系统保证在没有后续更新的前提下,系统最终返回上一次更新操作的值。在没有故障发生的前提下,不一致窗口的时间主要受通信延迟,系统负载和复制副本的个数影响。DNS 是一个典型的最终一致性系统。 在工程实践上,为了保障系统的可用性,互联网系统大多将强一致性需求转换成最终一致性的需求,并通过系统执行幂等性的保证,保证数据的最终一致性。但在电商等场景中,对于数据一致性的解决方法和常见的互联网系统(如

程序员整理的各种不错的工具(转)

雨燕双飞 提交于 2020-01-12 07:23:23
技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 OSChina:开源技术社区,开源方面做的不错哦 cnblogs,51cto,csdn:常见的技术社区,各有专长 stackoverflow:IT技术问答网站 GitHub:全球最大的源代码管理平台,很多知名开源项目都在上面,如Linux内核, OpenStack等免费的it电子书:http://it-ebooks.info/ DevStore:开发者服务商店 不错的书籍 人件 人月神话 代码大全2 计算机程序设计艺术 程序员的自我修养 程序员修炼之道 高效能程序员的修炼(成为一名杰出的程序员其实跟写代码没有太大关系) 深入理解计算机系统 软件随想录 算法导论(麻省理工学院出版社) 离线数学及其应用 设计模式 编程之美 黑客与画家 编程珠玑 C++ Prime Effective C++ TCP/IP详解 Unix 编程艺术 《精神分析引论》弗洛伊德 搞定:无压力工作的艺术 平台工具(都是开源的好东东哦) Redmine/Trac:项目管理平台 Jenkins/Jira(非开源):持续集成系统(Apache Continuum,这个是Apache下的CI系统,还没来得及研究)

GlusterFS分布式文件系统原理

与世无争的帅哥 提交于 2020-01-12 04:33:01
GlusterFS概述 GlusterFS(Gluster File System)是一个开源的分布式文件系统,主要由Z RESEARCH公司负责开发、是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,在存储方面具有强大的横向扩展能力,通过扩展不同的节点可以支持数PB存储容量和处理数干台客户端。GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。GlusterFS基于可堆叠的用户空间及无元的设计,可为各种不同的数据负载提供优异的性能。 GlusterFS主要由存储服务器(Block Server)、客户端及NFS/Samba存储网关(可选,根据需要选择使用)组成,GlusteFS架构中最大的设计特点是没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。 GlusterFS主要特征如下: 扩展性和高性能 高可用性 全局统一命名空间 弹性哈希算法 弹性卷算法 基于标准协议 GlusterFS的卷类型: GlusterFS支持七种卷,分布式卷、条带卷、复制卷、分布式条带卷、分布式复制卷、条带复制卷和分布式条带复制卷,这七种卷可以满足不同应用对高性能、高可用的需求。 1.分布式卷 分布式卷是GlusterFS的默认卷,在创建卷时,默认选项是创建分布式卷

程序员整理的各种不错的工具

久未见 提交于 2020-01-11 23:29:01
技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 OSChina:开源技术社区,开源方面做的不错哦 cnblogs,51cto,csdn:常见的技术社区,各有专长 stackoverflow:IT技术问答网站 GitHub:全球最大的源代码管理平台,很多知名开源项目都在上面,如Linux内核, OpenStack等免费的it电子书:http://it-ebooks.info/ DevStore:开发者服务商店 不错的书籍 人件 人月神话 代码大全2 计算机程序设计艺术 程序员的自我修养 程序员修炼之道 高效能程序员的修炼(成为一名杰出的程序员其实跟写代码没有太大关系) 深入理解计算机系统 软件随想录 算法导论(麻省理工学院出版社) 离线数学及其应用 设计模式 编程之美 黑客与画家 编程珠玑 C++ Prime Effective C++ TCP/IP详解 Unix 编程艺术 《精神分析引论》弗洛伊德 搞定:无压力工作的艺术 平台工具(都是开源的好东东哦) Redmine/Trac:项目管理平台 Jenkins/Jira(非开源):持续集成系统(Apache Continuum,这个是Apache下的CI系统,还没来得及研究)

想成为大数据开发工程师,你必须掌握的开发流程图是这样的

痴心易碎 提交于 2020-01-11 02:34:58
1、数据处理主要技术 Sqoop :(发音:skup)作为一款开源的离线数据传输工具,主要用于Hadoop(Hive) 与传统数据库(MySql,PostgreSQL)间的数据传递。它可以将一个关系数据库中数据导入Hadoop的HDFS中, 也可以将HDFS中的数据导入关系型数据库中。 Flume: 实时数据采集的一个开源框架,它是Cloudera提供的一个高可用用的、高可靠、分布式的海量日志采集、聚合和传输的系统。目前已经是Apache的顶级子项目。使用Flume可以收集诸如日志、时间等数据 并将这些数据集中存储起来供下游使用(尤其是数据流框架,例如Storm)。和Flume类似的另一个框架是Scribe(FaceBook开源的日志收集系统,它为日志的分布式收集、统一处理提供一个可扩展的、高容错的简单方案)  Kafka: 通常来说Flume采集数据的速度和下游处理的速度通常不同步,因此实时平台架构都会用一个消息中间件来缓冲,而这方面最为流行和应用最为广泛的无疑是Kafka。它是由LinkedIn开发的一个分布式消息系统, 以其可以水平扩展和高吞吐率而被广泛使用。目前主流的开源分布式处理系统(如Storm和Spark等)都支持与Kafka 集成。 Kafka是一个基于分布式的消息发布-订阅系统,特点是速度快、可扩展且持久。与其他消息发布-订阅系统类似