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解决了:服务熔断、调用、发现,负载均衡

  • 相关阅读:
    谷歌浏览器本地调试时调用服务跨域
    SVN提交时忽略不必提交的文件夹和文件,如node_modules
    热点链接实现不规则菜单
    easyui分页控件的应用
    Filter过滤器的应用
    SVG绘图学习总结
    VS2010无法调试页面问题
    java学习
    webservice配置
    jQuery
  • 原文地址:https://www.cnblogs.com/initx/p/11257128.html
Copyright © 2011-2022 走看看