分布式开发

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系统,还没来得及研究)

ELK分布式平台

泪湿孤枕 提交于 2020-01-11 04:48:48
一 ELK简介 1 ELK是什么 ELK是一整套运维问题解决方案,美团 华为 携程等都在使用 ELK分别是: Elasticsearch 负责日志检索和存储 Logstash 负责日志的收集和分析处理 Kibana 负责日志的可视化 2 ELK作用 ELK组件在海量的日志系统运维中,可用于解决: 分布式日志数据集中式查询和管理 系统监控,包含系统硬件和应用各个组件的监控 故障排查 安全信息和事件管理 报表功能 二 Elasticsearch Elasticsearch是用java开发的,并作为Apache许可条款下的开放源码发布,是当前留下的企业级搜索引擎.设计用于云计算中,能够达到实时搜索,稳定 可靠 快速 安装使用方便 三 ES集群安装 1 ES基础 1.1 ES集群安装 1.1.1 安装ES服务器 设置主机名和ip对应关系 配置/etc/hosts 192.168.1.51 es1 解决依赖关系 安装JDK yum -y install java-1.8.0-openjdk 安装软件包 yum -y install elasticsearch 修改配置文件 /etc/elasticsearch.yml network.host: 0.0.0.0 启动服务 systemctl start elasticsearch systemctl enable elasticsearch

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

痴心易碎 提交于 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是一个基于分布式的消息发布-订阅系统,特点是速度快、可扩展且持久。与其他消息发布-订阅系统类似

Spring Cloud 分布式事务详解及LCN解决方案

你离开我真会死。 提交于 2020-01-10 20:55:35
在微服务如火如荼的情况下,越来越多的项目开始尝试改造成微服务架构,微服务即带来了项目开发的方便性,又提高了运维难度以及网络不可靠的概率. 在说微服务的优缺点时,有对比才会更加明显,首先说一下单体式结构 单体式架构 在单体式架构中,系统通常采用分层架构模式(MVC),持久化层、表示层,业务逻辑层。架构主要存在以下问题: 系统内部互相访问,耦合紧密导致难以维护; 各业务领域需要采用相同的技术栈,难以快速应用新技术(例如使用SSH很难向SSM改造); 对系统的任何修改都必须整个系统一起重新部署/升级; 在系统负载增加时,难以进行水平扩展; 当系统中一处出现问题,会影响整个系统; 为了克服以上缺点,微服务架构应运而生。微服务,又叫微服务架构。微服务就是一些协同工作的小而自治的服务. 微服务架构 优点: 1. 技术异构性 在不同的服务中,可以使用不同的技术来各自开发,只要保证服务间能相互协作即可 2. 弹性 当微服务中的某一个服务不可用时,不会影响整个系统,只会影响相关功能不可用 3. 扩展 易于扩展,使用小的多个服务,更加易于扩展新的功能 4. 简化部署 某个服务的更新部署,不需要重新部署整个应用 5. 可组合 通过组合多个服务,可以提供一些新的功能 6. 可替代 因为每个微服务都比较小,重新实现某一个服务或者直接删除该服务都是可操作的 缺点: 1. 复杂度高 微服务间通过REST

阿里巴巴的26款Java开源项目,赶紧戳…

半腔热情 提交于 2020-01-09 21:06:46
本人免费整理了Java高级资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高并发分布式等教程,一共30G,需要自己领取。 传送门: https://mp.weixin.qq.com/s/osB-BOl6W-ZLTSttTkqMPQ 开源展示了人类共同协作,成果分享的魅力。没有任何一家网络公司可以不使用开源技术,仅靠自身技术发展起来。“取之于开源,用之于开源,才能促进开源的良性发展”,阿里巴巴各个团队将踩过的坑和总结的经验融入到开源项目中,供业界所有人使用,帮助他人解决问题的同时,也促进了行业发展。 1.分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。 地址:https://github.com/spring-cloud-incubator/spring-cloud-alibaba 2.

《大规模WEB服务开发技术》读书笔记(I)

别等时光非礼了梦想. 提交于 2020-01-09 13:55:20
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1、认识服务的规模 注册用户,独立用户 请求数 繁忙时流量 服务器台数 貌似应该有很多其他的指标,以前都听说过,但是从来没有认真分析过,已经上线的系统也没有对此进行过统计和分析! 2、大规模服务中的问题有以下几点: 可扩展性、负载均衡的必要性 一般来说,当一台服务器无法承担负载时,都会采用横向扩展(scale out)或者纵向扩展(scale up)。横向扩展就是通过服务器的数量来分担负载,纵向扩展是通过提高硬件的性能来处理负载。而我们知道,硬件的性能和价格不是成比例的,所以通常采用横向扩展技术!采用横向扩展也会带来问题,如请求如何分配——负载均衡,数据如何同步,网络通信延迟等。 保证冗余性 服务器多了后,故障率也会上升。要么构建稳定的系统,要么构建发生故障时能自动切换以继续运行的系统! 低成本运维的重要性 采用自动化工具。 开发人数和开发方法的变化 如何标准化开发? 考虑下应用程序实现方案? 统一编程语言? 统一库函数和框架? 统一代码规范? 使用版本管理工具管理源代码? 需要有人负责全局的推行。 团队如何管理 应对大规模数据量 数据的流向:磁盘->内存->缓存->CPU。各层的速度差异巨大。 减小数据大小? 分散到多台服务器上? 把数据读取次数降到最低? 3、系统增长战略——最小化开端、预见变化的管理和设计

打造仿猫眼项目 以Dubbo为核心解锁微服务【视频教程】

混江龙づ霸主 提交于 2020-01-08 20:29:43
第1章 微服务入门 本章中将概要介绍微服务与传统应用之间的差异与实现优势,以便于帮助同学们更加清晰微服务在项目开发中的定位。 1-1 课程导学 试看 1-2 ***学前必读***(助你平稳踩坑,畅学无忧,课程学习与解决问题指南) 1-3 传统应用带来的问题 1-4 微服务概述 第2章 演示环境构建 本章中将通过一系列的基本演示,让同学们可以对Dubbo有一个快速直观的认识。当前项目中构建了目前Dubbo的两种主流兼容框架Spring和Springboot,并且都进行了Dubbo集成,以便于适应多种需求下的应对使用。 2-1 基础环境构建介绍 2-2 Spring基础环境构建 2-3 Spring的直连提供者 2-4 SpringBoot基础环境构建 2-5 SpringBoot直连提供者演示 2-6 注册中心概述 2-7 Zookeeper-windows安装 2-8 Spring集成注册中心 2-9 Springboot集成注册中心 2-10 基于Apache Dubbo结合Springboot构建开发环境 2-11 常见问题集锦 2-12 阶段任务 第3章 业务基础环境构建 经过上一章节的演示,让大家了解到Dubbo与Spring、Springboot集成和基本使用,本章中会将Dubbo与Guns进行集成,构建一个业务系统的基本环境,同时针对API网关进行了一个简单的描述和引入

分布式与集群的区别究竟是什么?

为君一笑 提交于 2020-01-07 17:44:28
作者:至尊宝 cnblogs.com/aspirant/p/5697807.html 在IDF05(Intel Developer Forum 2005)上,Intel首席执行官Craig Barrett就取消4GHz芯片计划一事,半开玩笑当众单膝下跪致歉,给广大软件开发者一个明显的信号,单纯依靠垂直提升硬件性能来提高系统性能的时代已结束,分布式开发的时代实际上早已悄悄地成为了时代的主流。 吵得很热的云计算实际上只是包装在分布式之外的商业概念,很多开发者(包括我)都想加入研究云计算这个潮流,在google上通过“云计算”这个关键词来查询资料,查到的都是些概念性或商业性的宣传资料,其实真正需要深入的还是那个早已被人熟知的概念——分布式。 分布式可繁也可以简,最简单的分布式就是大家最常用的,在负载均衡服务器后加一堆web服务器,然后在上面搞一个缓存服务器来保存临时状态,后面共享一个数据库,其实很多号称分布式专家的人也就停留于此,大致结构如下图所示: 这种环境下真正进行分布式的只是web server而已,并且web server之间没有任何联系,所以结构和实现都非常简单。 有些情况下,对分布式的需求就没这么简单,在每个环节上都有分布式的需求,比如Load Balance、DB、Cache和文件等等,并且当分布式节点之间有关联时,还得考虑之间的通讯,另外,节点非常多的时候

微服务全流程分析

余生颓废 提交于 2020-01-07 11:09:25
转眼已经2020,距离微服务这个词落地已经过去好多年!(我记得2017年就听过这个词)。然而今天我想想什么是微服务,其实并没有一个很好的定义。为什么这样说,按照微服务的定义: 微服务架构就是将一个庞大的业务系统按照业务模块拆分成若干个独立的子系统,每个子系统都是一个独立的应用,它是一种将应用构建成一系列按业务领域划分模块的,小的自治服务的软件架构方式,倡导将复杂的单体应用拆分成若干个功能单一、松偶合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发,及持续集成与交付活动。 根据这个定义,不难看出其实就是对复杂的业务系统统一做逻辑拆分,保持逻辑上的独立。那么逻辑上独立就是一个服务这样做真的是好吗,如何界定:小、独,还有要做一个事情,完成单一的业务,单一的功能要拆分出来,为了独立而独立会不会导致拆的过细?不同人有不同的见解,我们今天一起探讨微服务的过去和未来。 微服务缘起 在没有微服务之前,我们最早的架构模式就是 MVC 模式,把业务逻辑分为:表示层,业务逻辑层,数据访问层。MVC模式随着大前端的发展,从一开始的前后端不分离,到现在的前后端分离逐渐演进。这种演进好的一点是剥离了不同开发语言的开发环境和部署环境,使得开发较为便利,部署更直接。然而问题是:这种模式仍然是单体应用模式,如果有一个改动需要上线,你不得不因为这个改动去考虑更多