分布式架构

FastDFS 分布式文件存储

蓝咒 提交于 2019-12-24 07:57:32
FastDFS 分布式文件存储 什么是FastDFS? FastDFS是一个开源的轻量级的分布式文件系统。他解决了大量数据存储和负载均衡等问题。特别适合以中小文件(4KB < FileSize < 500MB)为载体的在线服务,如视频,音频,图片网站等等。 FastDFS是一款开源的轻量级分布式文件系统,他是由纯 C 实现,支持Linux,FreeBSD等UNIX系统类,不是通用的文件系统,只能通过专有的API访问,目前提供了C、Java和PHP API为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性FastDFS可以看做是基于文件的key value pair存储系统,称作分布式文件存储服务更为合适。 FastDFS的特性? 文件不分块存储,上传的文件和OS文件系统中的文件一一对应 支持相同内容的文件只保存一份,节约磁盘空间(一个group里面只设置一个storage) 下载文件支持HTTP协议,可以使用内置的 Web Server ,也可以和其他的 Web Server 配合使用 支持在线扩容 支持主从文件 存储服务器上可以保存文件属性(meta-data)V2.0网络通信采用libevent,支持发兵法访问,整体性能更好 FastDFS架构 Tracker Server 跟踪服务器 跟踪服务器,主要做调度工作,起负载均衡的作用

杉岩海量图片分布式存储解决方案

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-24 00:04:54
随着互联网、云计算及大数据等信息技术的发展,越来越多的应用依赖于对海量数据的存储和处理,如智能监控、电子商务、地理信息等,这些应用都需要对海量图片的存储和检索。由于图片大多是小文件(80%大小在数MB以内),以GFS、HDFS为代表的适用于流式访问大文件的分布式存储系统,若直接用来存储图片,由于元数据膨胀,在扩展性和性能方面均存在严重问题。 为了解决HDFS在小文件存储方面的问题,通常的做法是先将很多小文件合并成一个大文件再保存到HDFS,同时为这些小文件建立索引,以便进行快速存取。典型技术包括Hadoop自带的Archive、SequenceFile,但均需要用户自己编写程序,实现小文件的合并。为了实现小文件合并对用户的透明,需从系统层面解决HDFS小文件问题。论文针对具体应用场景进行了探索,但不具有通用性。 SandStone MOS海量图片解决方案 对于海量图片数据的存储问题,杉岩海量对象存储(SandStone MOS)解决方案采用去中心化分布式架构,同时利用软件定义的方式实现了单一名字空间条件下数百PB级规模的容量扩展,业务可以随时随地访问而不受数据存储位置的限制。 在提升海量小文件访问性能方面,SandStone MOS利用哈希计算实现了数亿级文件的高效访问。针对文件检索困难,SandStone MOS支持标签功能,文件存储时会自动设置标签,从而更好地与业务结合

学习分布式架构感悟

╄→尐↘猪︶ㄣ 提交于 2019-12-24 00:01:50
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 随着公司业务规模的扩大,网站访问量日益剧增,最初的系统架构可能已经没办法满足业务发展的需求了。这时候就要考虑将系统架构改造成扩展性更强,能够承受更大访问量的分布式架构。 本文从大致三个方面谈谈分布式架构的概念、原理和相关的解决方案。为什么要做分布式?举个栗子,就好比原来城市的道路是双车道,同一时间只能容纳很小一部分车流量,但是改成多车道后,道路的容量就提升了几倍,网站也是相同的道理,用户的访问请求就是汽车,分布式架构就是在构建一个多车道的网站系统。接下来我们具体聊一聊各个层面的分布式技术解决方案。首先讲业务层的分布式,最简单的就是部署几台业务服务器,部署Apache或者Nginx,配置相同(vhost、域名解析、代码目录等),然后使用负载均衡技术将这几台服务器组成集群,达到对用户分流的效果。需要注意的是SESSION会话需要保存到数据库或者缓存系统中,保证SESSION的一致性,至于数据库,有统一的数据层,不需要担心数据不一致的问题。负载均衡有很多种解决方案,比较常见的是LVS(阿里巴巴章文嵩博士开发)、Nginx(阿里巴巴优化的Tengine)、HAProxy等。LVS是负责在4层网络实现负载均衡,有DR、隧道等方式,可以根据自身需求选择合适的方式。Nginx和HAProxy是负责7层网络的负载均衡

【架构】分布式追踪系统设计与实现

最后都变了- 提交于 2019-12-23 18:40:08
分布式追踪系统 使用 Zipkin 和 Brave 实现分布式系统追踪(基础篇) - 推酷 OpenZipkin · A distributed tracing system Twitter zipkin 分布式跟踪系统的设计与实现 - 马宏的世界 - 博客频道 - CSDN.NET openzipkin/brave: Java distributed tracing implementation compatible with Zipkin backend services. openzipkin/zipkin: Zipkin is a distributed tracing system zipkin - liaokailin的专栏 - 博客频道 - CSDN.NET #研发解决方案介绍#Tracing(鹰眼) - 旁观者 - 博客园 分布式系统为什么需要 Tracing? 先介绍一个概念: 分布式跟踪 ,或 分布式追踪 。 电商平台由数以百计的分布式服务构成,每一个请求路由过来后,会经过多个业务系统并留下足迹,并产生对各种Cache或DB的访问,但是这些分散的数据对于问题排查,或是流程优化都帮助有限。对于这么一个跨进程/跨线程的场景,汇总收集并分析海量日志就显得尤为重要。 要能做到追踪每个请求的完整调用链路,收集调用链路上每个服务的性能数据,计算性能数据和比对性能指标(SLA

Zookeeper详解-概述(一)

女生的网名这么多〃 提交于 2019-12-23 10:25:16
ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper通过其简单的架构和API解决了这个问题。ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。 ZooKeeper框架最初是在“Yahoo!"上构建的,用于以简单而稳健的方式访问他们的应用程序。 后来,Apache ZooKeeper成为Hadoop,HBase和其他分布式框架使用的有组织服务的标准。 例如,Apache HBase使用ZooKeeper跟踪分布式数据的状态。 先来介绍一下分布式: 分布式应用 分布式应用可以在给定时间(同时)在网络中的多个系统上运行,通过协调它们以快速有效的方式完成特定任务。通常来说,对于复杂而耗时的任务,非分布式应用(运行在单个系统中)需要几个小时才能完成,而分布式应用通过使用所有系统涉及的计算能力可以在几分钟内完成。 通过将分布式应用配置为在更多系统上运行,可以进一步减少完成任务的时间。分布式应用正在运行的一组系统称为 集群 ,而在集群中运行的每台机器被称为 节点 。 分布式应用有两部分, Server(服务器) 和 Client(客户端) 应用程序。服务器应用程序实际上是分布式的,并具有通用接口,以便客户端可以连接到集群中的任何服务器并获得相同的结果。

2019最新JAVA架构师视频资料,搭建高并发,高并发解决方案,高可用电商架构视频教程分布式框架,高可用框架,微服务架构,数据库优化

99封情书 提交于 2019-12-23 05:45:18
2019最新JAVA架构师视频资料,搭建高并发,高并发解决方案,高可用电商架构视频教程分布式框架,高可用框架,微服务架构,数据库优化39套Java架构师,高并发,高性能,高可用,分布式,集群,电商,缓存,微服务,微信支付宝支付,公众号开发,java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,第三方支付,web安全,性能调优,设计模式,数据结构,并发编程,虚拟机,中间件,数据库,项目实战,大型分布式电商项目实战视频教程 视频课程包含: 39套包含:架构师,高并发,高性能,高可用,高可扩展,分布式,集群,电商,缓存,微服务,微信支付宝支付,公众号开发,java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,架构设计,web安全,性能调优,设计模式,数据结构,项目实战,工作流,程序调优,负载均衡,Solr集群与应用,主从复制,中间件,全文检索,任务调度,jvm虚拟机,Spring boot,Spring cloud,Docker,Kubernetes,jvm,Dubbo,Elasticsearch,ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat,Spring,Git,Nosql,Mecached,Netty,Nio,Mina,Nutch,Webservice,Activiti,Shiro,Tomcat,Mysql,Oracle

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

放肆的年华 提交于 2019-12-23 02:14:37
GlusterFS概述 1、GlusterFS简介 (1)开源的分布式文件系统 (2)由存储服务器、客户端以及NFS/Samba存储网关组成 (3)无元数据服务器(数据传输组件RDMA) (4)GlusterFS特点:扩展性、高性能、高可用性 (5)全局统一命名空间 (6)弹性卷 管理---->云的特性:水平(实例数)、垂直(硬件性能),包括ECS(虚拟)、OSS和RDS(裸金属) (7)基于标准协议 2、GlusterFS术语 (1)Brick(节点) (2)Volume(卷) (3)FUSE(用户端交互模块) (4)VFS(虚拟化文件系统) (5)Glusterd(服务) 3、模块化堆栈式架构 (1)模块化、堆栈式的架构 (2)通过对模块的组合,实现复杂的功能 GlusterFS工作原理 1、GlusterFS工作流程 2、弹性HASH算法 (1)通过HASH算法得到一个32位的整数 (2)划分为N个连续的子空间,每个空间对应一个Brick (3)弹性HASH算法的优点: ☀保证数据平均分布在每一个Brick中 ☀解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈 GlusterFS的卷类型 1、分布式卷 ●没有对文件进行分块处理 ●通过扩展文件属性保存HASH值 ●支持的底层文件系统有ext3、ext4、 ZFS、 XFS等 (1)分布式卷具有如下特点:

17、go语言:分布式爬虫

 ̄綄美尐妖づ 提交于 2019-12-22 08:36:49
1、分布式系统简介: 多个节点: 容错性 可扩展性(性能) 固有分布性 消息传递: 节点具有私有存储 易于开发 可扩展性(功能) 对比:并行计算 完成特定的需求: 消息传递的方法: REST(动作、URL) RPC(序列化传输、远端序列化后调用) 中间件(可以存储消息、一对多、消息队列) 一般消息传递的方法: 对外:REST 模块内部:RPC 模块之间:中间件,REST 分布式架构VS为微服务架构 分布式:指导节点之间如何通信 微服务:鼓励按业务划分模块 微服务架构通过分布式架构来实现 多层架构VS微服务架构 微服务架构具有更多的“服务” 微服务通常需要配合自动化测试,部署,服务发现等 目前我们倾向于微服务架构 2、分布式爬虫架构: 并发版爬虫的架构: 目前的问题: 限流问题 去重问题 数据存储问题(固有分布式) 解决限流问题: 单节点能够承受的流量有限–> 将worker放到不同的节点 每个机器都可以起很多worker,任务不一定分发到本机的worker 解决去重问题: 单节点能承受的去重数据量有限 无法保存之前去重结果 基于Key-Value Store(如Redis)进行分布式去重 每来一个请求都要去连接一次去重服务,容易被卡住,所以需要把去重的工作交给worker,worker卡住 没关系,可以起很多个goroutine的worker 解决存储问题: 存储部分的结构

分布式系统学习总结

微笑、不失礼 提交于 2019-12-22 04:50:01
前言 随着大型网站的各种高斌发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题。大型网站的架构也在不断发展。提高大型网站的高可用架构,就不得不提 分布式系统(Distributed Systems) 。下面说一下分布式系统及其相关的概念 在学习分布式系统之前,先了解一下与之相对应的集中式系统是什么样的。 集中式系统 集中式系统,主要指IBM、HP一个主机带多个终端。终端没有数据处理能力,仅负责数据的录入和输出。而运算、存储等全部在主机上进行,也就是我们平常说的单机服务器。 集中式系统的最大特点就是不熟结构非常简单,底层一般采用IBM、HP等厂商购买的昂贵的大型主机。因此无需要考虑如何对服务进行多节点的部署,也就不用考虑各节点的分布式协作问题。但是,由于采用单机部署、和可能带来系统大而复杂、难于维护、发生单点故障(单个点发生故障的时候会波及到整个系统或者网络,从而导致整个系统或者网络的瘫痪)、扩展性差等问题。 说完集中式系统,再来说一个与分布式很相似的概念-集群 集群 集群是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。用来提供比集中式系统更具扩展性与可用性的服务平台。集群有两个关键的特性: 可扩展性,集群的性能不限于单一的服务实体,新的服务实体可以动态地添加到集群

Java分布式应用

醉酒当歌 提交于 2019-12-22 04:49:18
分布式计算就是通过计算机网络将计算工作分布到多台主机上,多个主机一起协同完成工作。 我试着列一下相关知识吧。 网络通讯,网络是分布式的基础,对分布式的理解建立在对网络的理解上,包括: OSI模型的7层 TCP/IP,DNS,NAT HTTP,SPDY/HTTP2 Telnet 网络编程,是通过程序在多个主机之间通信。包括: Socket 多线程 非阻塞IO 网络框架 Netty Mina ZeroMQ 操作系统的网络部分 RPC,Socket使用不是很方便,很多分布式应用是基于RPC的,包括: 同步RPC 异步RPC 主要的一些RPC协议 RMI Rest API Thrift 集群,分布式计算离不开集群。集群就是多台主机被当作一个系统 集群类型 高可用,如主机备机切换,冷备,热备,双活 伸缩性,如Web服务器集群,数据库服务器的Sharding 并行计算,如网格,大数据 集群相关技术,包括: 高可用性,保证服务一直能够被访问,延长MTBF,缩短MTTR 冗余的设备 多副本,为了避免单点失效 负载均衡,如何将大量工作负载分配到多个主机上,最大化吞吐量,最小化平均响应时间,最大化资源利用率。 伸缩性(横向),能够添加计算机和设备来应对增长的计算压力 分片(Sharding),把数据分成多个数据集,由多个服务器来分别处理。 自动分片 容错性,当硬件或软件发生故障,能够继续运转 故障检测