分布式处理

Tair分布式缓存

北城余情 提交于 2019-12-02 18:31:33
Tair是为了解决什么问题而生? Redis很好用,相比memcached多了很多数据结构,支持持久化。但是在很长一段时间里,原生是不支持分布式的。后来就出现了很多redis集群类产品,Tair是其中胜出的优秀作品之一。 所以Tair的特性都是一些集群的特性,比如:容错、解决单点故障、跨机房管理、多集群管理、支持副本等。总而言之,是redis的高可用版本。 Tair的架构 Tair的整体风格是简约实用,包括三个必选模块:client、configserver和dataserver。一个可选模块:invalidserver。   还有一个必要软设施:一致性哈希算法提供分布式的负载均衡计算。 client的作用 1. 在应用端提供访问Tair集群的接口 2.更新并缓存数据分布表和invalidserver 地址等 3. 本地缓存,避免过热数据访问影响Tair集群服务 4. 流控 dataserver的作用 1. 提供存储引擎 2. 接受client和put、get、remove等操作 3. 执行数据迁移、复制等 4. 插件:在接受请求的时候处理一些自定义功能 5. 访问统计 invallidserver的作用 1. 接收来自client和invalid、hide等请求后,对属于同一组的集群(双机房独立集群部署方法)做delete、hide操作,保证同一组集群的一致 2

SpringCloud的基础知识

非 Y 不嫁゛ 提交于 2019-12-02 06:47:44
二、集群/分布式/微服务/SOA是什么? 像我这种技术小白,看到这些词( 集群/分布式/微服务/SOA )的时候,感觉就是遥不可及的(高大尚的技术!!)。就好像刚学Java面向对象的时候,在论坛上翻阅资料的时候,无意看到"面向切面编程",也认为这是遥不可及的(高大尚的技术!!)。 但真正接触到"面向切面编程"的时候,发现原来就是如此啊,也没什么大不了的。只不过当时被它的名字给唬住了… 不知道各位在刚接触这些名字 集群/分布式/微服务/SOA 的时候,有没有被唬住了呢?? 下面我就简单说说这些名词的意思 2.1什么是集群 以下内容来源维基百科: 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多 集群技术特点: 通过 多台计算机 完成同一个工作,达到更高的效率。 两机或多机内容、工作过程等完全一样 。如果一台死机,另一台可以起作用。 在维基百科上说得也挺明白的了,我来举个 例子 吧。 小周在公司写Java程序,但公司业务在发展,一个Java开发者可能 忙不过来

大数据开发实战:数据流图及相关数据技术

孤街醉人 提交于 2019-12-02 05:23:55
1、大数据流程图 2、大数据各个环节主要技术 在这里还是要推荐下我自己建的 大数据学习交流群:9437**91324 ,群里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据软件开发相关的),包括我自己整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴加入。 2.1、数据处理主要技术 Sqoop :(发音:skup)作为一款开源的离线数据传输工具,主要用于Hadoop(Hive) 与传统数据库(MySql,PostgreSQL)间的数据传递。它可以将一个关系数据库中数据导入Hadoop的HDFS中, 也可以将HDFS中的数据导入关系型数据库中。 Flume: 实时数据采集的一个开源框架,它是Cloudera提供的一个高可用用的、高可靠、分布式的海量日志采集、聚合和传输的系统。目前已经是Apache的顶级子项目。使用Flume可以收集诸如日志、时间等数据 并将这些数据集中存储起来供下游使用(尤其是数据流框架,例如Storm)。和Flume类似的另一个框架是Scribe(FaceBook开源的日志收集系统,它为日志的分布式收集、统一处理提供一个可扩展的、高容错的简单方案)  Kafka: 通常来说Flume采集数据的速度和下游处理的速度通常不同步,因此实时平台架构都会用一个消息中间件来缓冲

Dubbo Zookeeper(一)Zookeeper初识

自作多情 提交于 2019-12-02 05:22:10
前面花了一段时间去学习SpringCloud的相关知识,主要是理解微服务的概念并使用SpringCloud的一系列组件实现微服务落地。学习这些组件本身是简单的,跟着操作一遍基本就会了,这也得益于Springboot给我们带来了很多便利。实际的应用中也许还会碰到一些坑,但只要我们掌握基本的原理就能够解决。 前面也讲了微服务的解决方案有两个,一个是SpringCloud,另外一个就是 Dubbo +Zookeeper,下面我们来学习Dubbo+Zookeeper实现微服务。 在学习微服务的第一篇中,理解了微服务的概念,比较了微服务与单体应用之前的优势和劣势,讲了要实现微服务主要的技术点,最重要的两块在于服务之间的通信和服务治理。 Dubbo+ Zookeeper 要实现微服务,就必须解决这两个技术点,Dubbo是一个RPC通信框架,它可以实现服务之间的通信。ZooKeeper 是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。 一、 分布式协调技术 上面说Zookeeper是一个分布式协调技术,那么我们就得先来学习什么是分布式协调技术。 分布式协调技术 主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。 首先,要明白我们为什么需要分布式锁,一个简单的例子,一般系统上都有一些定时任务

大数据导论

吃可爱长大的小学妹 提交于 2019-12-02 03:18:07
01-大数据导读  01) javaEE与大数据的区别(参考:附件资料\JavaEE大数据区别.txt) 01) javaEE业务开发(品优购电商) 电商系统架构.png 02) 大数据的体系说明(抖音推荐系统 电商精准推荐系统) 大数据架构处理流程.jpg 02) 大数据学习的建议: 01) 理解框架的功能和使用场景 02) 熟练使用(集群安装 编程开发 API使用 问题解决) 03) 框架内部的运行机制(原理) 04) 分析源码(验证运行原理) 05) 给开源贡献代码: apache committer : fink github 02-大数据离线课程介绍 01) 围绕hadoop生态圈 02) 围绕大数据处理主线 01) 数据采集 02) 数据存储 03) 数据预处理 04) 数据分析(数据仓库hive) 05) 数据应用 03) 学习技术路线: 01) hadoop中的HDFS(分布式文件存储系统) 02) hadoop中的MapReduce(分布式计算框架) 03) hive (使用sql进行数据分析的数据仓库) hbase(基于hadoop的分布式数据库) zookeeper(大数据中的基础组件,分布式协调服务) 04) 离线项目--电商网站日志分析系统: 05) 离线辅助工具集(flume sqoop oozie azkaban等技术) 06) spark基于内存计算

集群

主宰稳场 提交于 2019-12-02 03:01:58
集群是个物理形态,分布式是个工作方式。(业务分部到集群上,分布式处理业务) 集群最大的特点是物理集中、统一管理的( 一个宕机照常用,性能降一点 ),而分布式系统则不强调这一点( 服务宕机,业务就废了 )。 分布式:不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题 集群:同一个业务部署在多台机器上,提高系统可用性 分布式是指将不同的业务分布在不同的地方。 而集群指的是将几台服务器集中在一起,实现同一业务。 分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。 只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道;一个程序或系统,只要运行在不同的机器上,就可以叫分布式,嗯,C/S架构也可以叫分布式。 所以,集群可能运行着一个或多个分布式系统,也可能根本没有运行分布式系统;分布式系统可能运行在一个集群上,也可能运行在不属于一个集群的多台(2台也算多台)机器上。 布式是相对中心化而来,强调的是任务在多个物理隔离的节点上进行。中心化带来的主要问题是可靠性,若中心节点宕机则整个系统不可用,分布式除了解决部分中心化问题,也倾向于分散负载,但分布式会带来很多的其他问题,最主要的就是一致性。(nginx宕机全部GG) 集群就是逻辑上处理同一任务的机器集合,可以属于同一机房,也可分属不同的机房

分布式系统的核心问题一致性与共识

我只是一个虾纸丫 提交于 2019-12-01 23:29:06
区块链系统是一个分布式系统,而分布式系统的首要问题是一致性的保障。 一致性   定义:一致性(consistency),早期也叫agreement,是指对于分布式系统中的多个服务节点,给定一系列操作,在约定协议的保障下,试图使得他们对处理结果达成“某种程度”的认同。 一致性并不代表结果正确与否,而是系统对外呈现的状态一致与否;例如,所有节点都达成失败状态也是一种一致。   将可能引发不一致的并行操作进行串行化 是现代分布式系统处理一致性问题的的基础思路。   事件的先后顺序十分重要,这也是解决分布式系统领域很多问题的核心秘诀:把多件事情进行排序,并且这个顺序还得是大家都认可的。 共识算法   共识(consensus)在很多时候会与一致性(consistency)术语放在一起讨论。严谨地讲,两者的含义并不完全相同。    一致性 往往指分布式系统中多个副本对外呈现的数据的 状态 。 共识 则描述了分布式系统中多个节点之间,彼此对某个状态达成一致结果的 过程 。因此,一致性描述的是结果状态,共识则是一种手段。达成某种共识并不意味着就保障了一致性。   在实践中,要保障系统满足不同程度的一致性,核心过程往往需要通过共识算法来达成。共识算法解决的是对某个提案(proposal) 大家达成一致意见的过程 。 提案的含义在分布式系统中十分宽泛,比如多个事件发生的顺序、某个键对应的值

GlusterFS分布式文件系统的卷类型及配置详解

元气小坏坏 提交于 2019-12-01 21:48:36
(一) GlusterFS相关概念: GlusterFS是一个开源的分布式文件 系统,同时也是Scale-Out存储解决方案Gluster的核心,在存储数据方面有强大的横向扩展能力。GlusterFS主要由存储服务器、 客户端及NFS/Samba存储网关(可选组件)组成。GlusterFS架构中最大的设计特点是没有元数据服务器组件,也就是说没有主/从服务器之分,每一个节点都可以是主服务器。 Gluster相关考文档如下(我下面的配置是基于本地yum配置的,若需要搭建最新版本,直接按照下面的文档链接进行配置) : Gluster官网,基于centos7/Redhat安装Gluster官方文档 GlusterF S相关术语: 3)GlusterFS的卷类型: 在以上几种卷类型中,有些可能无法理解透彻,但是没关系,在生产环境中,大多数公司考虑到磁盘的利用率,会使用RAID5,或者RAID 10,关于RAID 5卷的配置可以参考: GlusterFS Dispersed Volume(纠错卷)总结。 4)下面介绍GlusterFS一些卷类型的特点(不包括RAID5): 1、分布式卷(类似Windows中的跨区卷): 分布式卷是GlusterFS的默认卷,在创建卷时,默认选项是创建分布式卷。在该模式下,并没有对文件进行分块处理,文件直接存储在某个server节点上。 2、条带卷

走进cassandra 之一 CAP和分布式

僤鯓⒐⒋嵵緔 提交于 2019-12-01 20:26:27
决定share一下我的cassandra学习成果,写一些博客,跟大家共同分享一下,准备写10篇文章,内容分别涉及 分布式存储概述及CAP, 数据模型, 分区器, 副本机制, 存储机制, 数据读写删, 最终一致性, gossip, cassandra的实际应用, 学习总结。 先写第一篇,先说咋理解分布式。 这术语解释起来拗口,举个例子就比较好理解了。 比如说参与cloudtask这个项目的人,有好几拨,有王薇 team,有徐超 team, 有韶涵 team, 有田萌 team, 有红艳 team. 为啥分成几拨人来做呢? 为啥不是james大侠(CTO)一力承担? 因为james智慧再高超,本领再强大,也没有办法一个人处理所有事情。 计算机里有两个词,一个叫纵向扩展,一个叫横向扩展,james加班加点看代码,这个是纵向扩展,这个扩展是有限的,扩展到24个小时,就到头了。 因为此,较为可行的办法是横向扩展,就是如前所说的,分成几拨人来做,这就是分布式了。 分布式的优点是大大的,最明显的就是可以同时处理很多事情,可以同时响应很多请求。 分布式万岁! 且慢! 啥东西也不是光有优点,分布式的缺点也是大大的。 这缺点,其实很容易想到,刚才的例子中,工作分了几拨人来做,每人都是James吗? NO。每人都会有自己的认知,每人的认知都不同,分成5波人来做,5波人就有5个认知,所以要怎么办呢? 沟通

zookeeper知识点总结

醉酒当歌 提交于 2019-12-01 19:29:30
1.ZooKeeper是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 分布式应用程序可以基于Zookeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。 Zookeeper保证了如下分布式一致性特性: 顺序一致性 原子性 单一视图 可靠性 实时性(最终一致性) 客户端的读请求可以被集群中的任意一台机器处理, 如果读请求在节点上注册了监听器,这个监听器也是由所连接的zookeeper机器来处理 。对于写请求,这些请求会同时发给其他zookeeper机器并且达成一致后,请求才会返回成功。因此,随着zookeeper的集群机器增多,读请求的吞吐会提高但是写请求的吞吐会下降。 有序性是zookeeper中非常重要的一个特性,所有的更新都是全局有序的,每个更新都有一个唯一的时间戳,这个时间戳称为zxid(Zookeeper Transaction Id)。而读请求只会相对于更新有序,也就是读请求的返回结果中会带有这个zookeeper最新的zxid。 Zookeeper提供了文件系统和通知机制。Zookeeper提供一个多层级的节点命名空间(节点称为znode)。与文件系统不同的是