X实验室

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

负载均衡算法

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

posted on 2019-07-27 22:46  Initial-X  阅读(196)  评论(0编辑  收藏  举报