zoukankan      html  css  js  c++  java
  • 从0开始架构二

    从0开始架构(二)

    读写分离

    1. 主从,一主多从

    复制延迟

    1. 读写主
    2. 读失败读主
    3. 关键业务主,非关键读写分离

    分配机制

    1. 程序代码封装【TDDL】
      1. 实现简单
      2. 每个编程语言实现一次
      3. 故障下,主从切换,所有配置都需要修改并重启
    2. 服务端代码,mysql proxy atlas

    业务分库遇到的问题:

    1. join操作问题
    2. 事务问题
    3. 成本问题

    水平拆分&垂直拆分

    路由:hash路由,配置路由

    高性能NOSQL

    1. 行存储
    2. schema扩展不方便
    3. 关系库搜索功能比较弱

    nosql的4类

    1. k-v存在 redis
    2. 文档数据库 mongodb
    3. 列式数据库 hbase
    4. 全文搜索引擎 es

    缓存穿透

    1. 数据不存在
    2. 缓存数据生成耗费大量时间或者资源

    缓存雪崩

    1. 更新锁
    2. 后台更新机制

    缓存热点,拆分

    单机服务器高性能的关键:服务器采取的并发模型

    1. 服务器如何管理连接
    2. 服务器如何处理请求

    操作系统的io模型和进程模型

    1. io模型:阻塞,非阻塞,同步,异步
    2. 进程模型:单进程,多进程,多线程

    PPC,prefork

    TPC,prethread

    Reactor:单reactor单进程,单reactor多线程,多reactor进程、线程

    单reactor单进程(例如redis)

    1. reactor的select监控连接事件,然后dispatch
    2. accept接收连接
    3. handler read+write+业务

    单reactor多线程

    1. reactor 处理select和dispatch
    2. accept 建立连接
    3. read + send
    4. processor 业务

    多reactor多线程

    1. main reactor
      1. select dispatch
      2. accpet
    2. subreactor
      1. select dispatch
      2. read-handler-send

    例子:nginx,mc,netty

    proactor

    1. 用户进程,注册事件,注册io
    2. 内核进程

    高性能负载均衡

    1. dns
    2. 私有dns
    3. F5&A10
    4. 软件负载均衡:lvs和nginx

    大系统的负载均衡: 地理位置级别,集群级别,机器级别的

    负载均衡算法

    1. 任务平分类
    2. 负载均衡类,根据负载来分配
    3. 性能最优类
    4. hash类

    轮询,加权轮询,负载最优先,性能最优,hash类

  • 相关阅读:
    linux下shell显示-bash-4.1#不显示路径解决方法
    update chnroute
    An error "Host key verification failed" when you connect to other computer by OSX SSH
    使用dig查询dns解析
    DNS被污染后
    TunnelBroker for EdgeRouter 后记
    mdadm详细使用手册
    关于尼康黄的原因
    Panda3d code in github
    Python实例浅谈之三Python与C/C++相互调用
  • 原文地址:https://www.cnblogs.com/beckbi/p/14092647.html
Copyright © 2011-2022 走看看