• 老王说架构


    分布式架构设计:
    1、横向分层,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,例如:MVC经典模式。
    2、纵向分割,将系统功能模块归类切分成几个部分,包装成高内聚低耦合的模块单元,不同功能模块直接通过远程调用协助工作。
    3、缓存技术,将是改善系统性能的第一手段,从上到下依次:浏览器缓存、反向代理缓存、静态文件缓存、数据层缓存。
    4、异步处理,将一个复杂业务操作分成几个阶段,每个阶段之间通过共享数据的方式进行异步执行。
    5、事件驱动,通过在低耦合的模块之间传输事件消息,以保持模块的松散耦合,并借助事件消息的通信完成模块之间的合作。发布-订阅模式,新增业务,只要对该类消息感兴趣,即可订阅该消息,对原有系统没有任何影响。
    6、数据存储,关系数据库、NoSql、日志文件。


    考虑问题
    性能问题
    1、web端,负载降低服务处理请求压力,使用浏览器缓存,磁盘启用压缩,代码设计上CSS放在上面、JS放在下面,先渲染样式。减少Cookie传输,推荐CDN加速。
    2、ws端,缓存,缓存,还是缓存。遵循二八定律:80%的访问落在20%的数据上,利用Hash表和内存的高速访问特性,将这20%的数据缓存起来。SQL优化、服务接口复用,多线程。
    3、存储端,在关系型数据库mysql中普遍使用B+树作为索引,在实际中索引也分为聚集索引和非聚集索引,而在hbase中则采用的是LMS树组织数据的。两者各有优劣协作使用。MySql实现主从同步读写分离。
    安全问题
    1、XSS攻击,跨站点脚本攻击;黑客通过篡改网页,注入恶意HTML脚本,用户在浏览网页时,控制用户浏览器进行恶意操作
    2、注入(SQL/OS)
    3、CSRF攻击,跨站点请求伪造,利用浏览器Cookie或者服务器Session策略,盗取用户身份
    4、Error Code
    5、逻辑跳过
    6、敏感数据
    7、HTML注释等
    服务策略
    1、服务分级,将核心业务和服务集群与优先使用更好的资源。
    2、服务熔断,避免服务故障引发雪崩。
    3、服务超时,设置超时;一旦超时,框架抛出异常。
    4、服务降级,为了保证核心应用和功能的正常运行,需要对服务进行降级处理
    5、幂等性,在服务层保证服务重复调用和调用一次产生的结果相同。

    ——————————————

    推荐阅读:

    Kafka 入门教程

    你可以不懂但一定要知道的代码审查 Code Review

    ELK Stack 实战教程

    filebeat+kafka+strom+logstash+es 舆情采集系统

    安全漏洞扫描,风险原因分析及解决方案

  • 相关阅读:
    Hadoop2.x集群动态添加删除数据节点
    HDFS中块状态分析
    procedure of object(一个特殊的指针类型)
    设计模式导语一
    Delphi中的容器类(二)
    让AlphaControls改变DevExpress皮肤
    Delphi中的容器类(一)
    Delphi 的RTTI机制浅探
    重写AuthorizeAttribute实现自己的权限验证
    含有HttpContext元素的单元测试
  • 原文地址:https://www.cnblogs.com/Javame/p/10280342.html
Copyright © 2020-2023  润新知