• 分布式架构搭建


    首先讲一下架构:

    分层:根据职责进行分层;分区;

    切割-分布式:基于职责对于分层进行纵切进行分布式部署,比如家用空调和商用空调部署要分开来部署,比如兄弟项目组一个APP项目,订单,商品,维护都是分开来进行部署,做到业务之间松耦合;

    集群,服务器负载均衡集群,数据集群,热备;

    水平扩展整完了就是再回到垂直了,缓存,比如海尔的项目,因为和数据库IO很高,性能严重影响,引入了memcache,极大地提升了性能,数据库瓶颈减少了;

    再就是回到了代码涉及级别,异步处理,避免同步导致的资源占用;自动化测试部署,减少人为错误;

    还有就是安全;

    下图是架构层级图:

    接下来讲述的是架构师需要考虑的点:

    性能提升从前端到后端一次是:

    1. 浏览器:css放在上面,javascript放在后面;采用浏览器缓存;
    2. 传输层上面:采用CDN,反向代理服务器压缩传输;
    3. 业务服务器:采用缓存,分布式缓存;
    4. 数据库层面:采用集群;比如mysql的读写分离,主服务器负责写,从服务器负责读;

    然后是可用性,顾名思义:服务可用,即使有的时候体验差一点,但是要提供服务:

    1. 首先就是负载均衡,一个坏了,另外一个接上,
    2. 这里有个失效转移以及热备的概念,一旦发生意外,热备机器要顶上去;
    3. 分布式(分级)部署,对于有些服务,比如评价,在双11的高峰期就可以关闭,在部署上面按照级别进行拆分部署,做到特殊情况服务间影响较小;
    4. 程序设计级别就是幂等设计,比如提交支付,点击一次和点击两次效果是一样的,这种设计也叫作防呆设计,比如对于上传文件,点击一次上传后,按钮就要置灰,防止其二次提交;
    5. 再后端是数据库,对数据进行热备份;
    6. 最后面就是监控了,及时发现问题并解决问题;

    第三,伸缩性,设计让应用能够水平扩展:

    1. 服务器水平扩展,使用nginx,apache等反向代理;要考虑session的处理,是session统一缓存保存,还是通过让代理服务器保证同IP转接到同一台机器上面;
    2. 缓存扩展,比如memcache的一致性算法,还是缓存数据的复制,比如Redis集群;
    3. 数据库的扩展,mysql集群,分区技术;

    第四,扩展性,伸缩是硬件的水平扩展,扩展性讲的是业务水平扩展,要保证对项目影响很小,比如业务分布式部署,通过webservice技术做通信等;阿里有一个服务器注册以及发现的矿浆叫Dubbo;

    第五,安全性,

    1. 操作上,需要输入验证码;
    2. 通道上,https;
    3. 通信上,加密,对称,非对称加密;
    4. 权限控制;
    5. 对于Ddos攻击,这些需要从代理服务器,防火墙等角度进行设计考虑;
  • 相关阅读:
    关于c语言变量的内存分布测试程序
    常用ARM指令集及汇编_破解
    CPU读取内存0x30000000地址4个字节数据
    打印十六进制字符串查看内存地址
    JZ2440串口打印字符作为调试
    搭建Linux3.4.2内核编辑环境
    网卡驱动程序
    同步互斥阻塞
    poll机制分析[转]
    安装、配置、启动FTP、SSH或NFS服务
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/5196212.html
Copyright © 2020-2023  润新知