大型网站技术架构(核心原理与案例分析)

  • Chapter 1.大型网站架构演化
    • 大型网站软件系统的特点
      • 高并发、大流量(面对高并发用户,大流量访问)
      • 高可用(系统7x24小时服务)
      • 海量数据
      • 用户分布广泛,网络情况复杂
      • 安全环境恶劣
      • 需求快速变更,发布频繁
      • 渐进式发展
    • 大型网站架构演化发展历程
      • 初始阶段的网站架构
        • 应用程序、数据库、文件等所有的资源都在一台服务器上
      • 应用服务器和数据服务分离 --> 数据库瓶颈
        • 应用程序、数据库、文件分别在独立的服务器上,对服务器的硬件资源要求各不相同
      • 使用缓存改善网站性能 --> 应用服务器瓶颈
        • 本地缓存
        • 分布式缓存(远程分布式缓存)
      • 使用应用服务器集群改善网站的并发处理能力 --> 数据库瓶颈
        • 通过负载均衡调度服务器,将用户的请求分发到应用服务器集群中的任何一台服务器上
      • 数据库读写分离 --> 网站访问速度瓶颈
        • 利用数据库主从复制机制实现数据更新同步,主数据库复制写,从服务器负责读
        • 封装专门的数据访问模块,使数据库读写分离对应用透明
      • 使用反向代理和CDN加速网站响应 --> 单一服务器瓶颈
        • CDN部署在网络提供商的机房,使用户在请求网站服务时,可以从距离自己最近的网络提供商机房获取数据
        • 反向代理部署在网站的中心机房,用户请求首先访问反向代理服务器,如果反向代理服务器中缓存着用户资源,则直接返回
      • 使用分布式文件系统和分布式数据库系统 --> 数据存储和检索需求复杂
        • 分库分表
        • 分布式文件存储
      • 使用NoSQL和搜索引擎 --> 业务复杂
      • 业务拆分 --> 应用系统整体复杂度增加,部署维护困难
        • 将一个网站拆分成许多不同的应用,每个应用独立部署维护
        • 应用间通过超链接建立联系,也可以通过消息队列进行数据分发,最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统
      • 分布式服务
        • 提取每个应用系统中相同的业务操作独立部署,应用系统只需要管理用户界面
  • Chapter 2.大型网站架构模式
    • 网站架构模式
      • 分层(横向)
        • 将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统
        • 大型网站分层结构
          • 应用层:负责具体业务和视图展示
          • 服务层:为应用层提供服务支持
          • 数据层:提供数据存储访问服务
      • 分割(纵向)
        • 将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,一方面有助于开发和维护,另一方面便于不同模块的分布式部署
      • 分布式
        • 优点
          • 高并发访问
          • 大数据量处理
        • 问题
          • 网络开销
          • 服务器宕机
          • 数据一致性
          • 网站依赖错综复杂,开发管理维护困难
        • 方案
          • 分布式应用和服务
          • 分布式静态资源
          • 分布式数据和存储
          • 分布式计算
          • 分布式锁
          • 分布式配置
          • 分布式文件系统
          • ......
      • 集群
        • 多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务
      • 缓存
        • CDN(内容分发网络)
        • 反向代理
        • 本地缓存
        • 分布式缓存
      • 异步
        • 单一服务器:多线程共享内存队列的方式实现异步
        • 分布式系统:分布式消息队列实现异步
        • 异步消息队列的特性
          • 提高系统可用性
          • 加快网站响应速度
          • 消除并发访问高峰
      • 冗余
        • 集群、备份(冷备份、热备份)、灾备数据中心
      • 自动化
        • 自动化代码管理
        • 自动化测试
        • 自动化安全检测
        • 自动化部署
        • 自动化监控
        • 自动化报警
        • 自动化失效转移
        • 自动化失效恢复
        • 自动化降级
        • 自动化分配资源
      • 安全
        • 身份验证
        • 网络通信加密、数据加密
        • 验证码
        • 编码转换
        • 过滤
        • 风险控制
  • Chapter 3.大型网站核心架构要素
    • 性能
      • 浏览器端
        • 浏览器缓存
        • 页面压缩
        • 合理布局页面
        • 减少Cookie传输
        • CDN
        • 反向代理
      • 应用服务器端
        • 本地缓存和分布式缓存
        • 异步操作
        • 集群
        • 多线程、改善内存管理
      • 数据库服务器端
        • 索引
        • 缓存
        • SQL优化
    • 可用性
      • 主要手段是冗余,应用部署在多台服务器上同时提供访问,数据存储在多台服务器上互相备份
      • 任何一台服务器宕机不会影响应用的整体可用,也不会导致数据丢失
    • 伸缩性
      • 通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求
      • 应用服务器集群
        • 通过负载均衡设备就可以向集群中不断加入服务器
      • 缓存服务器集群
        • 加入服务器可能导致缓存路由失效,需改进缓存路由算法
      • 关系数据库集群
        • 通常需在数据库之外实现,通过路由分区等手段将部署有多个数据库的服务器组成一个集群
    • 扩展性
      • 事件驱动架构(通常利用消息队列实现)
      • 分布式服务
    • 安全性
  • Chapter 4.瞬时响应:网站的高性能架构
    • 网站性能测试
      • 不同视角下的网站性能
        • 用户视角的网站性能
          • 用户在浏览器上直观感受到的网站响应速度快还是慢
        • 开发人员视角的网站性能
          • 应用程序本身及其相关子系统的性能(响应延迟、系统吞吐量、并发处理能力、系统稳定性等)
        • 运维人员视角的网站性能
          • 更关注基础设施性能和资源利用率
      • 性能测试指标(开发和测试人员视角)
        • 响应时间:指应用执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间。直观反映了系统的“快慢”
        • 并发数:指系统能够同时处理请求的数目。反映了系统的负载特性
        • 吞吐量:指单位时间内系统处理的请求数量。反映了系统的整体处理能力
          • TPS(每秒事务数)
          • QPS(每秒查询数)
          • HPS(每秒HTTP请求数)
        • 性能计数器:描述服务器或操作系统性能的一些数据指标(系统负载、对象与线程数、内存使用、CPU使用、磁盘与网络I/O等)
      • 性能测试方法
        • 性能测试
        • 负载测试
        • 压力测试
        • 稳定性测试
      • 性能测试报告
      • 性能优化策略
        • 性能分析----定位问题
        • 性能优化----解决问题
    • Web前端性能优化
      • 浏览器访问优化
        • 减少HTTP请求
          • 合并CSS
          • 合并JS
          • 合并图片
        • 使用浏览器缓存
          • 通过设置HTTP头中Cache-Control和Expires的属性设定浏览器缓存
          • 更新静态资源时应采用逐量更新方法
        • 启用压缩
          • GZip压缩等
        • CSS放在页面最上面、JS放在页面最下面
          • 浏览器会下载完全部CSS之后才对整个页面进行渲染
          • 浏览器在加载JS后立即执行,有可能会阻塞整个页面
        • 减少Cookie传输
          • Cookie包含在每次请求和相应中,太大的Cookie会严重影响数据传输,尽量减少Cookie中传输的数据量
      • CDN加速
        • 将数据缓存在离用户最近的地方,使用户以最快速度获取数据,一般缓存的数据为静态资源
      • 反向代理
        • 安全功能
        • 缓存功能
        • 负载均衡功能
    • 应用服务器性能优化
      • 分布式缓存
        • 缓存的基本原理
          • 缓存指将数据存储在相对较高访问速度的存储介质中, 以供系统处理。
          • 缓存的本质是一个内存Hash表
        • 合理使用缓存
          • 频繁修改的数据
          • 没有热点的访问
          • 数据不一致与脏读
          • 缓存可用性
          • 缓存预热
          • 缓存穿透
        • 分布式缓存架构
      • 异步操作
        • 消息队列
          • 改善网站的扩展性
          • 改善网站的性能
          • 很好的削峰作用
      • 使用集群
      • 代码优化
        • 多线程
          • 线程安全问题
        • 资源复用
          • 单例
          • 对象池
        • 数据结构
        • 垃圾回收
      • 存储性能优化
        • 机器硬盘 vs 固态硬盘
        • B+树 vs LSM树
        • RAID vs HDFS
          • RAID(廉价磁盘冗余阵列)技术主要是为了改善磁盘的访问延迟,增强磁盘的可用性和容错能力
            • RAID0:数据从内存缓冲区写入磁盘时,根据磁盘数量将数据分成N份,同时并发写入N块磁盘
            • RAID1:数据在写入磁盘时,将一份数据同时写入两块磁盘
            • RAID10:结合RAID0和RAID1
            • RAID3:在数据写入磁盘时,将数据分成N-1份,并发写入N-1块磁盘,并在第N块磁盘记录校验数据,任何一块磁盘损坏(包括校验数据磁盘),都可以利用其他N-1块磁盘的数据恢复
            • RAID5:与RAID3相似,但校验数据不是写入第N块磁盘,而是螺旋式地写入所有磁盘中
            • RAID6:与RAID5相似,但数据只写入N-2块磁盘,并螺旋式地在两块磁盘中写入校验信息
          • HDFS(Hadoop分布式文件系统)
            • 以块(Block)为单位管理文件内容,一个文件被分割成若干个Block,每个Block默认持有两个副本(存在其他服务器上)
            • NameNode(名字服务节点)和DataNode(数据存储节点)
  • Chapter 5.万无一失:网站的高可用架构
    • 网站可用性的度量与考核
      • 网站可用性度量
        • 网站不可用时间(故障时间)= 故障修复时间点 - 故障发现时间点
        • 网站年度可用性指标 = (1 - 网站不可用时间 / 年度总时间)x 100%
      • 网站可用性考核
        • 故障分 = 故障时间(分钟)x 故障权重
    • 高可用的网站架构
      • 主要手段:数据和服务的冗余备份及失效转移
      • 不同层的解决方案
        • 应用层:通过负载均衡设备将一组服务器组成一个集群共同对外提供服务
        • 服务层:与应用层类似,也是通过集群方式实现高可用,只是这些服务器被应用层通过分布式服务调用框架访问
        • 数据层:数据需在写入时同步复制到多台服务器上,实现数据冗余备份
      • 高可用的应用
        • 通过负载均衡进行无状态服务的失效转移
        • 应用服务器集群的Session管理
          • Session复制:在集群中的服务器之间同步Session对象
          • Session绑定:将某个用户的所有请求都在同一台服务器上处理,即Session绑定在某台特定服务器上
          • 利用Cookie记录Session
          • Session服务器
      • 高可用的服务
        • 分级管理:将服务器进行分级管理,核心应用和服务优先使用更好的硬件
        • 超时设置:在应用程序中设置服务调用的超时时间,一旦超时,通信框架就抛出异常,应用程序根据服务调用策略选择继续重试或请求转移
        • 异步调用:将次要的不会影响下一步操作的服务通过消息队列等异步方式完成,避免一个服务失败导致整个应用请求失败的情况,同时可加快响应速度
        • 服务降级:服务可能因大量的并发调用而性能下降,严重时可能会导致宕机,为保证核心应用和功能的正常运行,需对服务进行降级
          • 拒绝服务
            • 拒绝低优先级应用的调用
            • 随机拒绝部分请求的调用
          • 关闭功能
            • 关闭部分不重要的服务
            • 服务内部关闭部分不重要的功能
        • 幂等性设计
      • 高可用的数据
        • CAP原理:一个提供数据服务的存储系统无法同时满足数据一致性(Consistency)、数据可用性(Availability)和分区耐受性(Partition Tolerance)这三个条件
          • 数据一致性(Consistency):所用应用程序都能访问得到相同的数据
            • 数据强一致
            • 数据用户一致
            • 数据最终一致
          • 数据可用性(Availability):任何时候,任何应用程序都可以读写访问
          • 分区耐受性(Partition Tolerance):系统可以跨网络分区线性伸缩
        • 数据备份
          • 冷备份:简单、廉价,但不能保证数据最终一致,不能保证数据可用性
          • 热备份
            • 同步热备方式(一般采用并发同步)
            • 异步热备方式
        • 失效转移
          • 失效确认
            • 心跳检测
            • 应用程序访问失败报告
          • 访问转移
          • 数据恢复
      • 高可用网站的软件质量保证
        • 网站发布
          • 发布过程中,每次关闭集群中的一部分服务器,并在发布完成后立即可以访问,要保证整个应用的可用,不影响用户使用
        • 自动化测试
        • 预发布验证
        • 代码控制
        • 自动化发布
        • 灰度发布
          • 每天只发布一部分服务器,观察运行稳定无故障后继续发布一部分服务器,持续几天才把整个集群全部发布完毕,期间如果发现问题,只需回滚已发布的一部分服务器
      • 网站运行监控
        • 监控数据采集
          • 用户行为日志收集
            • 服务端日志收集
            • 客户端浏览器日志收集
          • 服务器性能监控
          • 运行数据报告
        • 监控管理
          • 系统报警
          • 失效转移
          • 自动优雅降级
  • Chapter 6.永无止境:网站的伸缩性架构
    • 网站架构的伸缩性设计
      • 不同功能进行物理分离实现伸缩
        • 纵向分离(分层后分离):将业务处理流程上的不同部分分离部署,实现系统伸缩性
        • 横向分离(业务分割后分离):将不同业务模块分离部署,实现系统伸缩性
      • 单一功能通过集群规模实现伸缩
    • 应用服务器集群的伸缩性设计
      • HTTP重定向负载均衡
        • HTTP重定向服务器
          • 普通的应用服务器,其唯一的功能就是根据用户的HTTP请求计算一台真实的Web服务器地址,并将该Web服务器地址写入HTTP重定向响应中返回给浏览器
      • DNS域名解析负载均衡
        • 大型网站总是部分使用DNS域名解析,利用域名解析作为第一级负载均衡手段,即域名解析得到的一组服务器并不是实际提供Web服务的物理服务器,而是同样提供负载均衡服务的内部服务器
      • 反向代理负载均衡(应用层负载均衡)
        • 反向代理服务器提供负载均衡功能,管理一组Web服务器,将请求根据负载均衡算法转发到不同Web服务器上,Web服务器处理完成的响应也需要通过反向代理服务器返回给用户
      • IP负载均衡
        • 在网络层通过修改请求目标地址进行负载均衡
        • 响应数据包如何返回给负载均衡服务器?
          • 负载均衡服务器在修改目的IP地址的同时修改源地址为自身
          • 负载均衡服务器作为真实物理服务器集群的网关服务器
      • 数据链路层负载均衡
        • 负载均衡数据分发过程中不修改IP地址,只修改目的MAC地址,通过配置真实物理服务器集群所有机器虚拟IP和负载均衡服务器IP地址一致,从而达到不修改数据包的源地址和目的地址就可以进行数据分发的目的。(三角传输模式)
        • 大型网站使用最广的一种负载均衡手段,在Linux平台上最好的链路层负载均衡开源产品是LVS(Linux Virtual Server)
      • 负载均衡算法
        • 轮询(Round Robin,RR):请求依次分发到每台服务器上
        • 加权轮询(Weighted Round Robin,WRR):在轮询的基础上,按照配置的权重将请求分发到每个服务器,高性能的服务器能分配更多请求
        • 随机(Random):请求被随机分配到各个应用服务器
        • 最少连接(Least Connections):记录每个应用服务器正在处理的连接数(请求数),将新到的请求分发到最少连接的服务器上
        • 源地址散列(Source Hashing):根据请求来源的IP地址进行Hash计算,得到应用服务器
    • 分布式缓存集群的伸缩性设计
      • Memcached分布式缓存集群的访问模型
        • 应用程序通过Memcached客户端访问Memcached服务器集群,Memcached客户端主要由一组API、Memcached服务器集群路由算法、Memcached服务器集群列表及通信模块构成
      • 分布式缓存的一致性Hash算法
        • 原始一致性Hash
          • 将缓存服务器节点放置再一个长度为2^32的整数环上,然后根据需要缓存的数据的Key计算得到其Hash值,在Hash环上顺时针查找距离这个Key的Hash值最近的缓存服务器节点,完成Hash映射查找
        • 使用虚拟节点的一致性Hash
          • 将每台物理缓存服务器虚拟为一组虚拟缓存服务器,将虚拟缓存服务器的Hash值放置在Hash环上,Key在环上先找到虚拟缓存服务器节点,再得到物理服务器的信息
          • 实践中,一台物理服务器虚拟为150个节点较合适,当然需根据具体情况具体对待
    • 数据存储服务器的伸缩性设计
      • 关系数据库集群的伸缩性设计
        • 利用关系数据库的数据复制功能,对数据库进行简单伸缩
        • 支持数据分片的分布式关系数据库产品
          • Amoeba
          • Cobar
      • NoSQL数据库的伸缩设计
        • HBase
  • Chapter 7.随机应变:网站的可扩展性架构
    • 扩展性与伸缩性
      • 扩展性(Extensibility):指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力
      • 伸缩性(Scalability):指系统能够通过增加(减少)自身资源规模的方式增强(减少)自己计算处理事务的能力
    • 构建可扩展的网站架构
      • 设计网站可扩展架构的核心思想是模块化,并在此基础上,降低模块间的耦合性,提高模块的复用性
      • 模块分布式部署后的聚合方式主要有:分布式消息队列和分布式服务
    • 利用分布式消息队列降低系统耦合性(模块不存在直接调用)
      • 事件驱动架构:通过在低耦合的模块之间传输事件消息,以保持模块的松散耦合,并借助事件消息的通信完成模块间合作
      • 分布式消息队列:将队列这种数据结构部署到独立的服务器上,应用程序可以通过远程访问接口使用分布式消息队列,进行消息存取操作,进而实现分布式的异步调用
    • 利用分布式服务打造可复用的业务平台
      • 巨无霸网站
        • 存在问题
          • 编译、部署困难
          • 代码分支管理困难
          • 数据库连接耗尽
          • 新增业务困难
        • 解决方案
          • 纵向拆分:将一个应用拆分为多个小应用,如果新增业务较为独立,那么直接将其设计部署为一个独立的Web应用系统
          • 横向拆分:将复用的业务拆分出来,独立部署为分布式服务,新增业务只需要调用这些分布式服务,不需要依赖具体的模块代码
      • WebService的缺点
        • 臃肿的注册与发现机制
        • 低效的XML序列化手段
        • 开销相对较高的HTTP远程通信
        • 复杂的部署与维护手段
      • 大型网站分布式服务的需求与特点
        • 负载均衡
        • 失效转移
        • 高效的远程通信
        • 整合异构系统
        • 对应用最少侵入
        • 版本管理
        • 实时监控
      • 分布式服务框架设计
        • Dubbo
        • ......
    • 可扩展的数据结构
      • 关系型数据库僵硬的数据结构难以面对需求变更带来的挑战
      • NoSQL数据库使用的ColumnFamily(列族)设计可随意扩展
    • 利用开放平台建设网站生态圈
      • 开放平台的一般架构
        • API接口:平台暴露给开发者使用的一组API,其形式可以是RESTful、WebService、RPC等各种形式
        • 协议转换:将各种API输入转换成内部服务可以识别的形式,并将内部服务的返回封装成API的格式
        • 安全:身份识别、权限控制、分级访问带宽限制
        • 审计:记录第三方应用的访问情况,并进行监控、计费等
        • 路由:将开放平台的各种访问路由映射到具体的内部服务
        • 流程:将一组离散的服务组织成一个上下文相关的新服务,隐藏服务细节,提供统一接口供开发者调用
  • Chapter 8.固若金汤:网站的安全架构
    • 道高一尺魔高一丈的网站应用攻击和防御
      • XSS攻击
        • XSS攻击即跨站点脚本攻击(Cross Site Script),指黑客通过篡改网页,注入恶意的HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式
        • XSS攻击类型
          • 反射型:攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击的目的
          • 持久型:黑客提交持有恶意脚本的请求,保存在被攻击的Web站点的数据库中,用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击的目的
        • 防攻击手段
          • 消毒:过滤和消毒处理用户输入的内容,对某些HTML危险字符进行转义,但需进行文本匹配后再转义,以免破坏用户输入的正常内容
          • HttpOnly:浏览器禁止页面JS访问带用HttpOnly属性的Cookie。防止XSS攻击者窃取Cookie,可通过对Cookie添加HttpOnly属性,避免被攻击脚本窃取
      • 注入攻击
        • SQL注入攻击
          • 攻击者在HTTP请求中注入恶意的SQL命令,服务器用请求参数构造数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行
          • 防攻击手段
            • 消毒:可通过正则表达式过滤请求数据中可能注入的SQL
            • 参数绑定:使用预编译手段,绑定参数
        • OS注入攻击
      • CSRF攻击
        • CSRF(Cross Site Request Forgery,跨站点请求伪造),攻击者通过跨站请求,以合法用户的身份进行非法操作。其核心是利用了浏览器Cookie或服务器Session策略,盗取用户身份。
        • 防攻击手段
          • 表单Token:通过在请求参数中增加随机数的办法来阻止攻击者获得所有请求参数-->在页面表单中增加一个随机数作为Token,每次响应页面的Token都不相同,从正常页面提交的请求会包含该Token值,而伪造的请求无法获得该值,服务器检查请求参数中Token的值是否存在且正确以确定请求提交者是否合法
          • 验证码:即在请求提交时,需要用户输入验证码,以避免在用户不知情的情况下被攻击者伪造请求
          • Referer check:HTTP请求头的Referer域中记录着请求的来源,通过检查请求来源,验证其是否合法
      • 其他攻击和漏洞
        • Error Code(错误回显)
          • 服务器端未处理的异常堆栈信息直接输出到客户端浏览器,给黑客有机可乘
          • 防御手段:配置Web服务器参数,跳转500页面到专门的错误页面
        • HTML注释
          • 提示性的注释可能会给黑客造成攻击便利
          • 防御手段:程序发布前进行代码review或自动扫描,避免HTML注释漏洞
        • 文件上传
          • 如果允许上传的文件是可执行的程序,攻击者可能利用该程序来获取服务端命令执行能
          • 防御手段:设置上传文件白名单、修改文件名、使用专门的存储等手段
        • 路径遍历
          • 攻击者在请求的URL中使用相对路径,遍历系统未开放的目录或文件
          • 防御手段:将JS、CSS等静态资源文件部署在独立服务器、使用独立域名,其他文件不使用静态URL访问,动态参数不包含文件路径信息
      • Web应用防火墙
        • 开源的ModSecurity
        • 商业产品SiteShell
      • 网站安全漏洞扫描
        • 网站安全漏洞扫描工具:构造具有攻击性的URL请求,模拟黑客攻击行为,用以发现网站安全漏洞
    • 信息加密技术及密钥安全管理
      • 信息加密技术
        • 单向散列加密
          • 指通过对不同输入长度的信息进行散列计算,得到固定长度的输出,散列计算过程是单向的,即不能对固定长度的输出进行计算从而获得输入信息
          • 常用的单向散列算法:MD5、SHA等
          • 应用场景:密码加密,生成信息摘要,计算具有高离散程度的随机数等
        • 对称加密
          • 指加密和解密使用的密钥是同一个密钥(或者可以相互推算)
          • 常用的对称加密算法:DFS算法、RC算法等
          • 应用场景:用在信息需要安全交换或存储的场合,如Cookie加密、通信加密等
        • 非对称加密
          • 指加密和解密使用的密钥不是同一个,其中一个对外界公开,称为公钥,另一个只有所有者知道,称为私钥。用公钥加密的信息必须用私钥才能解开,反之,用私钥加密的信息则必须用公钥才能解开
          • 常用的非对称加密算法:RSA算法等
          • 应用场景:信息安全传输、数字签名等场合
      • 密钥安全管理方案
        • 一、把密钥和算法放在一个独立的服务器上,或者做成一个专用的硬件设施,对外提供加密和解密服务,应用系统通过调用这个服务,实现数据的加解密
        • 二、将加解密算法放在应用系统中,密钥则放在独立服务器中,实际存储时,密钥被切分成数片,加密后分别保存在不同存储介质中
    • 信息过滤与反垃圾
      • 文本匹配
        • 正则表达式
        • Trie算法(本质是确定一个有限状态自动机,根据输入数据进行状态转移)
        • 多级Hash表
      • 分类算法
        • 贝叶斯分类算法等
        • 用户反垃圾、信息自动分类等
      • 黑名单
        • Hash表实现
        • 布隆过滤器实现
      • 电子商务风险控制
        • 风险
          • 账户风险
          • 买家风险
          • 卖家风险
          • 交易风险
        • 风控
          • 规则引擎:一种将业务规则和规则处理逻辑相分离的技术
          • 统计模型:使用分类算法或机器学习算法进行智能统计

你可能感兴趣的:(读书记录)