zoukankan      html  css  js  c++  java
  • 分布式系列一: 概述

    分布式系统的特点

    • 高并发,大流量(qps,tps)
    • 海量数据

    什么是分布式

    分布式系统是由很多计算机组成, 他们之间的通信通过网络连接完成, 对外表现为一个整体.

    分布式技术上需要解决两个问题, 一个是业务拆解, 一个是节点通信.

    分布式和集群的关系

    分布式是指一个系统由多个业务模块组成,他们分别部署到不同服务器;
    集群是指一个业务部署到多个服务器;

    分布式发展历史

    • 1964年IBM发布大型机之后, 引领系统向集中式方向发展;

    • PC机发展起来后, 它的性能和计算能力得到迅猛发展, 同时集中式发展出现瓶颈; 标志性的事件是淘宝的去IOE运动

      IOE 是指IBM服务器, Oracle数据库集群, EMC存储

      lamp: linux+apache+mysql+php

    1. 单服务器: 应用+DB
    2. 应用和DB分离
    3. 应用集群, DB (问题? session, 集群请求转发, 集群方案:f5硬件, lvs软件)

      会话方案: 1.session sticky; 2. session replication; 3. 集中式session; 4. cookie

    4. DB集群, 读写分离 (问题? 同步,数据库路由(mycat))
    5. 搜索引擎 (问题? 实时或定时同步)
    6. Nosql缓存
    7. DB的水平/垂直拆分
    8. 业务服务拆分
    9. 各业务做集群

    分布式系统的监控

    调用跟踪和调用链, 服务器状态监控

    zipkin, zabbix等

    分布式环境特点

    1. 分布式部署,包括机房硬件也包括软件
    2. 并发性, 多个节点访问同一资源
    3. 无序性, 网络通信导致的信息传输顺序不一致

    分布式环境导致的问题

    1. 网络通信问题(各种原因导致的网络连接失败)
    2. 三态问题 (成功,失败,超时)
    3. 脑裂, 网络分区问题: 网络问题导致集群会分为若干独立的集群
    4. 分布式事务

    中心化和去中心化

    • 冷备和热备 master选举, zookeeper/etcd

    CAP/BASE

    CAP

    仅仅适用于原子读写的非数据库场景, 不适用数据库.

    • C 一致性, 集群中所有节点的数据保持一致
    • A 可用性, 每个请求都能接收到一个响应, 无论成功或失败
    • P 分区容错, 脑裂, 分布式场景必然存在此问题

    因为P在分布式下必然存在, 所以C和A不能同时存在, 只能满足CP/AP其中之一.

    BASE

    基于CAP理论, 主要解决分布式环境下数据库存在的问题. 虽然XA事务可以保证分布式下数据库的ACID特性, 但会损失性能. 基于此eBay提出了BASE(Basically Available, Soft-state,Eventually consistent)理论, BASE理论放宽了事务ACID要求.

    BA: 数据库分片存储, 其中一片被破坏, 不影响其他片数据的使用,实际上是实现了部分可用性

    S: C/S模式的系统中, Server端是否有状态决定了系统是否具备良好的水平扩展,负载均衡,故障恢复等特性.
    Server端承诺会维护Client端状态数据, 这个状态仅仅维持一小段时间,过后Server端就丢弃这个状态,恢复正常.

    E: 数据最终一致性

  • 相关阅读:
    tp3中子查询 逻辑条件是or
    数据量大的情况用布隆过滤器判断是否已存在
    pip 通过pqi切换源到国内镜像
    php先响应后处理
    selenium登录网银,密码控件输入
    mysql 查询a表在b表中不存在的记录
    下列java代码中的变量a、b、c分别在内存的______存储区存放。
    关于选中的磁盘具有MBR分区表。在EFI系统上,Windows只能安装到GPT磁盘。问题解决
    VBOX不能为虚拟电脑打开一个新任务解决方法
    解决虚拟机似乎正在使用的问题
  • 原文地址:https://www.cnblogs.com/walkinhalo/p/9646011.html
Copyright © 2011-2022 走看看