精华内容
下载资源
问答
  • 分布式架构

    2016-12-25 22:22:57
    分布式架构

    一、什么是分布式架构;与集群的区别

    分布式:一个整体业务拆分成多个子业务,部署在不同的服务器上。

    集群:多个服务器部署相同的能够处理整体业务的系统。

    例如:

    如果一个整体业务由10个子业务组成,每个子业务单独执行需1小时,则在一台服务器上执行该整体任务需10小时。

    采用分布式方案:提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个整体业务只需一个小时。(这种工作模式的一个典型代表就是Hadoop的Map/Reduce分布式计算模型);

    采用集群方案:同样提供10台服务器,每台服务器都能独立处理这个整体业务。假设有1个整体业务(10个子业务)到达,10个服务器将同时工作,1小后,整体业务(10个子业务)完成,这样,还是1小时内完成一个整体业务。

    分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。


    二、分布式与集群中的小知识点

    分布式:

    1. CAP原理:

    一致性(Consistency)

    可用性(Availability)

    分区容忍性(Partition tolerance)

    集群:

    1. 两大关键特性:

    可扩展性/高可用性

    2. 两大能力:

    负载均衡/错误恢复

    3. 两大技术:

    集群地址/内部通信

    转载:http://www.360doc.com/content/14/0119/22/15109633_346516210.shtml


    三、分布式架构的演进

    系统架构演化历程-初始阶段架构:应用程序、数据库、文件等所有的资源都在一台服务器上。

    系统架构演化历程-应用服务和数据服务分离:应用程序、数据库、文件分别部署在独立的资源上。

    系统架构演化历程-使用缓存改善性能:数据库中访问较集中的一小部分数据存储在缓存服务器中,减少数据库的访问次数,降低数据库的访问压力。

    系统架构演化历程-使用应用服务器集群:多台服务器通过负载均衡同时向外部提供服务,解决单台服务器处理能力和存储空间上限的问题。

    系统架构演化历程-数据库读写分离:多台服务器通过负载均衡同时向外部提供服务,解决单台服务器处理能力和存储空间上限的问题。

    系统架构演化历程-反向代理和CDN加速:采用CDN和反向代理加快系统的 访问速度。

    系统架构演化历程-分布式文件系统和分布式数据库:数据库采用分布式数据库,文件系统采用分布式文件系统。

    系统架构演化历程-使用NoSQL和搜索引擎:系统引入NoSQL数据库及搜索引擎。

    系统架构演化历程-业务拆分:系统上按照业务进行拆分改造,应用服务器按照业务区分进行分别部署。---- 纵向拆分/横向拆分

    系统架构演化历程-分布式服务:公共的应用模块被提取出来,部署在分布式服务器上供应用服务器调用。

    转载:https://www.zhihu.com/question/22764869


    四、分布式架构的优缺点

    特点:将传统的应用的功能一个个拆分出来,形成各个独立的应用

    优点:

    1. 降低耦合度,增删一个功能,不会影响其它功能模块;

    2. 因为优点1的存在,对于团队来说,可以更好的分配开发任务。

    缺点:

    1. 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。

    2. 当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。

    3. 接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?

    4. 服务多了,沟通成本也开始上升,调某个服务失败该找谁?服务的参数都有什么约定? 

    5.  一个服务有多个业务消费者,如何确保服务质量?

    6. 随着服务的不停升级,总有些意想不到的事发生,比如cache写错了导致内存溢出,故障不可避免,每次核心服务一挂,影响一大片,人心慌慌,如何控制故障的影响面?服务是否可以功能降级?或者资源劣化?


    五、分布式服务下的关键技术
    分布式服务下的关键技术:消息队列架构
    分布式服务下的关键技术:消息队列原理
    分布式服务下的关键技术:服务框架架构
    分布式服务下的关键技术:服务框架原理
    分布式服务下的关键技术:服务总线架构
    分布式服务下的关键技术:服务总线原理

    六、自我理解

    分布式架构与微服务结合,使每个分布节点形成集群,增强系统健壮性。

    展开全文
  • 一、什么是分布式架构 1.不同的业务(功能模块)分散部署在不同的服务器 2.每个子系统负责一个或者多个不同的业务模块 3.服务之间可以相互交互与通信 4.分布式设计对用户透明 5.可以发展为集群分布式系统架构...

    一、什么是分布式架构
    1.不同的业务(功能模块)分散部署在不同的服务器
    2.每个子系统负责一个或者多个不同的业务模块
    3.服务之间可以相互交互与通信
    4.分布式设计对用户透明
    5.可以发展为集群分布式系统架构(微服务架构是分布式系统中的一种)

    二、分布式架构优点
    1.业务解耦
    2.系统模块化,可重用化
    3.提升系统并发量
    4.优化运维部署效率

    三、分布式架构缺点
    1.架构复杂
    2.部署多个子系统复杂
    3.系统之间通信耗时
    4.新人融入团队缓慢
    5.调试复杂

    四、设计原则
    1.异步解耦
    2.幂等一致性
    3.拆分原则
    4.融合分布式中间件
    5.容错高可用

    五、什么是NoSql
    1.传统项目使用纯数据库
    2.为互联网大数据而生
    3.水平扩展方便高效
    4.高性能读取
    5.高可用
    6.存数据,做缓存

    六、什么是分布式缓存
    1.提升读取速度性能
    2.分布式计算领域
    3.为数据库降低查询压力
    4.跨服务器缓存
    5.内存式缓存

    七、什么是Redis
    1.Nosql
    2.分布式缓存中间件
    3.key-value存储
    4.提供海量数据存储访问
    5.数据存储在内存里,读取更快
    6.非关系型,分布式,开业,水平扩展

    八、redis的安装

    1. 将Redis传到linux目录,然后解压

    2. 安装依赖

    yum install gcc-c++
    
    1. 编译
    make
    
    1. 安装
    make  install
    
    1. 做相应的配置进入utils目录,拷贝redis_init_script文件
    cp redis_init_script /etc/init.d
    
    1. 修改核心文件,进入redis的目录,找到redis.conf文件
    先创建一个目录把redis.conf文件拷贝过去
    
    mkdir /usr/local/redis -p
    
    cp redis.conf  /usr/local/redis -p
    
    1. 修改redis.conf文件
    vim redis.conf
    
    1.找到 daemonize no这行,将no改为yes
    no:前台运行 yes:后台运行
    2.找到 dir ./ 自己设置一个工作空间 如:dir /usr/local/redis/working
    3.将 bind 127.0.0.1 改为 0.0.0.0  改后外部也可以访问
    4.找到 requirepass 默认被注释了,应放开加密码。如:requirepass redis
    
    1. 修改redis启动脚本
    9. cd /etc/init.d   之前我把脚本拷贝在这里了
     
    10. vim  vim redis_init_script 
     CONF="/usr/local/redis/redis.conf"    CONF代表.conf文件位置
    
    1. 启动
    ./redis_init_script start
    
    展开全文
  • 服务端分布式架构: 客户端的分布式架构: 分布式系统:   服务端分布式架构: ①起初的时候,多个user直接访问同一台服务器,当用户量暴增的时候,单台服务器无法承受这么大的压力,所以会增加服务器,但是...

    目录

    服务端分布式架构:

    客户端的分布式架构:

    分布式系统:


     

    服务端分布式架构:

    ①起初的时候,多个user直接访问同一台服务器,当用户量暴增的时候,单台服务器无法承受这么大的压力,所以会增加服务器,但是服务器之间的端口号是不能重用的,而且用户默认端口是固定的,所以不同的服务器要使用不同的端口号来监听请求,但是用户并不知道端口号改变了,依然往原来的端口号发送数据,所以增加了一层负载均衡器,负载均衡器使用原来的服务端口,来监听用户的的请求,用户访问的都是负载均衡器(实际上用户并不会感受到)由负载均衡器来分配用户请求到达哪个服务器,从而避免某一台服务器的压力过大。而且这样做还有一个好处,如果用户访问又增加,可以直接增加服务器,而不需要修改其他的服务器(解耦合)。

    ②多台服务器也会产生新的问题,即第一次请求是写数据,写在了server1里面,第二次请求被负载到了server2,数据如何同步,我们最直觉的做法是,server1和server2之间的数据相互拷贝,一起开始的集群就是这么做的,但是这涉及到了两个进程之间的数据通信,非常的慢,这是不能容忍的,后来出现了RPC技术,这门技术非常的难,以至于很难普及,所以后来出现了Spring技术,也就是出现了缓存服务器,也就是上面的图片。 如此一来,数据都写到了缓存里面,数据一致性的问题就解决了。

    这里上面的架构中,也会有一定的问题,如果访问量太大了的话,负载均衡器承受不了。那么这个问题如何解决呢?这就引出了客户端的负载均衡。

    客户端的分布式架构:

    在服务端负载均衡的基础上,我们去掉了负载均衡器,增加了注册中心,我们提供服务的每台服务器都要在注册中心中完成注册,此时如果用户来访问服务器,会先到达注册中心,有注册中心告诉用户哪些服务器在提供服务,然后有用户自己来决定去访问那台服务器。这样一来之前负载均衡所承担的调度压力就分担到了用户自己的机器上,这样的设计堪称perfect。实际上这里的调度中心就是zookeeper,而zookeeper也是可以组成一个集群的。

    分布式系统:

    接下来我么介绍一下分布式系统,那什么是分布式系统呢?

    把一个完整的系统拆分成了一个又一个的子系统,叫做分布式系统,来分别运行

    ①在非分布式的设计中,订单和管理在同一台服务器中(这里我们以电商为例),这里用户的订单的访问量一定比电商的管理的访问量大,那么订单的访问一定会对管理带来影响,因为大量的用户访问订单的时候,就会分配很多栈空间,而机器的内存是有限的,管理能够分配到的内存就会减少;此时我们很容易想到,再加一台服务器(注意是服务器,不是物理机),这边一台处理订单的业务,另外一台处理管理的业务,这两个可以在同一台机器上,(比如两个不同的tomcat),那么这个时候订单会不会影响到管理呢?仍然会,因为服务器1和服务器2共用一个机器,该机器的cpu 是有限的资源,所以有必然会产生有影响;那好,我们将两者放在不同的机器上,那么此时订单会不会影响管理呢?

    答案是,仍然会,因为此时订单会占用大量网络资源,所以,两台机器应该放置在不同的网络中。如此一来我们不同的服务要设置不同的机器,而且这些机器不能在同一个网络中。这样我们能够很好地支持很大的并发量。另外在需要增加服务的时候,我们直接机器就OK了,并不会对之前的服务器带来影响,我们降低了耦合度。(如图增加了财务,物流) 

    ②这就引出了分布式系统,把一个完整的系统拆分成了一个又一个的子系统,叫做分布式系统,来分别运行。但是这样也带来了一个巨大的问题,各个子系统之间如何进行通信呢?当用户下了订单之后,通知财务结账完成之后,通知物流开始发货,如果各个子系统之间是这样通信的话,会增加耦合性,违背了OCP的开发原则,(比如,我增加一台财务的服务器,订单的服务器中和财务的通信地址至少需要修改,这是不合理的)所以此时,我们引出第三方:

    ③如果此时订单生成了,就会在这个第三方中产生一个消息,而财务和物流定时从这个第三方中取消息,而这时候财务只关心订单消息,而物流只关心财务消息。所以这个第三方还需要将各种消息区分开来,所以这个第三方也被称作是消息系统,在大数据中使用的kafka就是一个消息系统。

    如果你想要了解关于消息系统方面的文章,可以看kafka相关的文章

    以上就完成了我对于分布式的理解阐述。

    展开全文
  • 分布式架构基本概念分布式架构及意义如何将应用从单机扩展到分布式大型分布式架构演进过程构建分布式架构的重要因素CDN加速静态文件访问分布式存储分布式搜索引擎应用发布与监控应用容灾及机房规划系统动态扩容...

    分布式架构及意义

    如何将应用从单机扩展到分布式

    大型分布式架构演进过程

    构建分布式架构的重要因素

    CDN加速静态文件访问

    分布式存储

    分布式搜索引擎

    应用发布与监控

    应用容灾及机房规划

    系统动态扩容

    分布式架构设计

    主流架构模型-SOA架构和微服务架构

    领域驱动设计及业务驱动划分

    分布式架构的基本理论CAP和BASE及应用

    分布式架构下的高可用设计

    分布式架构下的可伸缩设计

    构建高性能的分布式架构

    主流的分布式架构详解

    展开全文
  • 分布式架构设计

    2018-07-01 17:35:19
    分布式架构设计分布式架构设计分布式架构设计分布式架构设计分布式架构设计分布式架构设计分布式架构设计分布式架构设计分布式架构设计分布式架构设计分布式架构设计分布式架构设计分布式架构设计分布式架构设计...
  • 从本专题我们开始进入分布式专题,分布式作为互联网企业技术人员必备的...1.了解分布式架构中的相关概念 2.初始分布式架构及意义 3.分布式架构的发展过程和历史 4.分布式架构的演进过程 5.构建分布式架构最重要的因素
  • 分布式架构中间件分布式消息通信消息中间件在分布式架构中的应用ActiveMQ高可用集群企业级部署方案ActiveMQ P2P,PUB,SUB模型详解ActiveMQ消息确认及重发策略ActiveMQ基于Spring完成分布式消息队列实战Kafka基于...
  • 一、前言上篇文章,我们聊到了分布式架构的演进过程,那本文我们就来聊一聊目前主流的分布式架构以及分布式架构中常见理论以及如何才能设计出高可用的分布式架构好了。分布式架构中,SOA和微服务架构是最常见两种...
  • 目录 分布式架构的演进 分布式、架构 架构的演变过程 Session共享 数据库性能提升 特性的问题 Nosql存储,后者其他存储方式 分布式数据库 远程调用 ...
  • 分布式架构知识梳理

    万次阅读 多人点赞 2019-04-21 18:55:01
    1、何为分布式何为微服务? 2、为什么需要分布式? 3、分布式核心理论基础,节点、网络、时间、顺序,一致性? 4、分布式是系统有哪些设计模式? 5、分布式有哪些类型? 6、如何实现...
  • 一、分布式架构学习路线图 二、计算机软件发展历史 三、技术架构演进史 架构演进一:早期雏形 架构演进二:数据库开发(LAMP特长) 架构演进三: javaweb的雏形 架构演进四: javaweb的集群发展​ 架构演进五: ...
  • 主流分布式架构

    2019-09-30 16:42:10
    本文我们来聊一聊目前主流的分布式架构以及分布式架构中常见理论以及如何才能设计出高可用的分布式架构好了。分布式架构中,SOA和微服务架构是最常见两种分布式架构,而且目前服务网格的概念也越来越火了。那我们...
  • 分布式架构设计详细流程:主要讲解分布式架构的发展流程,分布式架构详细设计以及分布式架构设计过程中需要的组件
  • 分布式架构基础讲义

    2018-01-04 11:22:08
    分布式架构基础讲义,主要介绍了分布式架构 负载均衡 缓存 数据库 分布式计算 性能优化等内容
  • 1.2 分布式架构 1.2.1 伪分布式 开发时使用了多个工程,但在服务器上运行时只有一个war包。 1.2.2 真正分布式 1 方法本地调用和远程调用 1.1 本地调用 调用当前项目内部的方法,调用过程没有经过网络。 1.2 远程...
  • 分布式架构实战

    2018-01-10 10:29:06
    分布式架构实战主要有以下内容: 分布式全局ID生成方案 Session跨域共享及企业级单点登录解决方案实战 分布式事务解决方案实战 高并发下的服务降级、限流实战 基于分布式架构下分布式锁的解决方案实战 分布式架构下...
  • 分布式架构概述

    2020-08-01 07:46:31
    分布式架构概述分布式概念什么是分布式分布式与集群的关系计算机发展历史分布式架构发展淘宝 去IOE运动架构的发展演变过程什么是大型网站/架构?架构升级单机应用负载均衡数据库的高性能搜索引擎的升级增加缓存...
  • 分布式架构之美

    2018-07-09 08:30:00
    一、前言我们都知道,当今无论在BAT这样的大公司,还是各种各样的小公司,甚至是传统行业刚转互联网的企业都开始使用分布式架构,那么什么叫分布式架构呢?分布式架构有什么好处呢...
  • 分布式架构简介

    2020-04-10 09:51:58
    一、理解分布式架构: 分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是...
  • 不懂这些高并发分布式架构、分布式系统的数据一致性解决方案,你如何能找到高新互联网工作呢?强势解析eBay BASE模式、去哪儿及蘑菇街分布式架构
  • Zhi-分布式架构

    2020-10-24 15:05:26
    分布式为什么要用分布式什么是分布式架构分布式架构优点分布式架构缺点设计原则 为什么要用分布式   当一个系统能够通过nginx去部署集群和负载均衡,并且配合了lvs和keepalived,实现了高可用和高性能的集群负载...
  • 1、dubbo分布式架构基础篇。 2、dubbo分布式架构高级篇。 3、dubbo分布式架构架构篇。 4、源码
  • 分布式架构的架构性能 讲的内容有点大,针对分布式架构做一系列的文章,酝酿了好久才打算着手写这一系列,会持续多期 提高架构的性能的方法 1.缓存系统 加入缓存系统,可有效提高系统访问能力,例如:网络,浏览器...
  • 分布式架构云平台在充分分析IT技术发展趋势,遵循集中化、标准化、集成化、可靠化和可扩展化的设计原则,以价值创造为使命,以规范化、一体化、智能化的云平台为支撑,实现信息的透明共享、业务的敏捷协同、管控及时...
  • 1 RPC的介绍 以及手写RPC框架 2 RPC框架yar的安装使用 3 分布式架构介绍 以及 thinkphp实战分布式

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 69,741
精华内容 27,896
关键字:

分布式架构