zoukankan      html  css  js  c++  java
  • 分布式架构的发展演进

    负载均衡算法

    1. 轮询
    2. 加权轮询
    3. 随机算法
    4. 最小连接数
    5. hash 根据客户端ip计算出hash值,hash%2取模来决定分发目标

    数据库演变

    1. 数据库性能提升
    • 数据库如何同步
    • 数据源如何路由

    1.1 方案1: 引入搜索引擎

    • 提高检索速度
    • 减轻读数据库的压力
    • lucence,solr,elk
    • 索引构建:
      基于原始数据构建索引
      全量构建->第一次构建
      增量构建->增量同步
      非实时(异步/定时任务)、实时

    1.2 方案2:缓存

    • 缓存: 为了降低低速设备和高速设备间的差异。
    • Nosql存储或其他存储方式
      Nosql:hbase、mongoDB、Redis....
      其他缓存:浏览器缓存、应用缓存、db缓存、cpu缓存,文件存储,etc

    2.分布式数据库
    2.1 事务的作用?
    2.2 分布式数据库:

    通过分库分表实现数据库拆分:
    根据服务特性(业务量、类型etc)分别配置数据库性能


    应用的演变

    传统单应用的问题:

    1. 部署和维护困难
    2. 业务耦合度很高
    3. 性能瓶颈
    4. 测试
    1. 应用根据功能模块拆分:
    1.1 如:会员服务、交易服务、商品服务

    RPC在分布式中的作用?

    1.2 服务分块

    优势:

    • 专人维护专门服务
    • 根据不同的吞吐量要求,做针对性的扩容

    劣势:

    • 运维成本增高
    • 团队人员增多

    高可用方案

    1. 单点故障

    1.1 多机房部署


    监控

    1. 链路监控

    • zipkin
    • traceID

    2.硬件监控
    cpu、内架构存、磁盘


    架构的发展过程

    1. SOA-ESB

    • 客户端1、客户端2....
    • ESB:
      服务的通信、发现
      协议转化
      安全
      限流
    • 服务端集群

    2. 微服务
    注册中心:eureka、zookeeper、consoul

    3. 容器+k8s调度

    4. serviceMesh(服务网格)
    sidecar解决了:服务熔断、调用、发现,负载均衡

  • 相关阅读:
    poj 1579(动态规划初探之记忆化搜索)
    hdu 1133(卡特兰数变形)
    CodeForces 625A Guest From the Past
    CodeForces 625D Finals in arithmetic
    CDOJ 1268 Open the lightings
    HDU 4008 Parent and son
    HDU 4044 GeoDefense
    HDU 4169 UVALive 5741 Wealthy Family
    HDU 3452 Bonsai
    HDU 3586 Information Disturbing
  • 原文地址:https://www.cnblogs.com/initx/p/11257128.html
Copyright © 2011-2022 走看看