当先锋百科网

首页 1 2 3 4 5 6 7

系统设计一般方法论

4s

  1. scenario
    业务模块
    容量:对应的数据量,对应的qps(在服务规划和存储规划的时候会用到)

  2. service
    对应的服务模块有哪些,服务架构设计

  3. store
    根据不同个业务类型选型不同的存储
    存储层的设计,需要哪些字段,哪些表,进行存储

  4. scale
    系统的伸缩性能设计

1. 监控系统设计

1. scenario 监控哪些东西

对应的监控可能产生的数据量级

查询监控:

  1. 查询耗时
  2. 查询无结果
  3. 请求异常
    数据流监控:
  4. 数据流量监控(每分钟的写入量级)
  5. 数据延迟监控
  6. 数据同步异常监控

服务器的监控一般是有另外的更基础通用的监控系统

2. service 服务

整个业务的架构设计,数据生产,采集,存储,使用数据监控
生产端可以采用sdk等,采集使用filebeat+kafka+logstash
存储使用elasticsearch
监控报警使用grafana+dingding

3. store 具体的数据模型

查询监控:

  1. 耗时: 记录查询的耗时,query, sessionid来做全链路的监控 use_time,query,session_id
  2. 无结果: 记录结果数,请求参数 query, result_count
  3. 异常:当次请求是否处于异常状态 query, error_msg, error_stack
    数据流监控:
  4. 流量 table,id,index
  5. 延迟监控 table,id,delay_time
  6. 异常监控 tabel,id,message,error_msg,error_stack

4. scale

根据监控数据的容量,每天1t,保存多少天14天,规划es的集群大小
根据监控数据的生产速度,决定kafka的容量,lagstash的数量,es的配置
写入大于5w,尽量使用本地ssd,大磁盘,冷热隔离的模式

2 搜索系统设计

1. scenario

搜索有哪些场景,搜用户,搜帖子
对应的数据量,qps
数据量 用户2亿, 帖子4kw
qps 2k+
性能指标要求 999的返回时间200

2. service

indexer:
负责从数据源同步数据到es
增量和全量的数据处理

search-server: 单个服务200qps,最少两个服务
负责从es中进行检索操作

rerank-server

3. store

elasticsearch 配置,节点数量, mapping设计, 单节点按照1000qps设计

4. scale

监控,数据积压,扩容