三高架构
创业型公司常用架构
集群架构
随着公司业务的发展,团队扩张了百人,恭喜你成为CTO。此时更多的是做管理工作。职责分离
- 网关
服务接入层。请求接入、业务聚合、中介策略(安全、路由、鉴权、流控、过滤、缓存等)、统一管理(提供配置管理界面)
配置中心
Apollo
注册中心
Nacos
性能监控
Zabbix Promethues Grafana(界面)
链路追踪
Zipkin Skywalking
日志中心
ELK elasticsearch logstash filebeat kafka kibana(界面)
业务监控
自己实现(思路:监控单位时间次数、监控单位时间频率)
通讯系统
使用消息中间件实现 kafka
文件存储系统
分布式文件存储 GFS(谷歌文件系统,技术细节未开源)TFS(淘宝文件系统,基于GFS 开源)Haystack(FaceBook)
CDN只能解决热点图片的访问缓存问题,对于
长尾特性
也就是非热点图片的请求量加起来大于热点图片,它们就用不了CDN而是去文件存储系统查询全文检索系统
Elasticsearch(企业化解决方案,存储、搜索、分析)Lucene(只能创建倒排索引,不提供解决方案)建议使用Elasticsearch
内容管理系统
主要是列表的缓存问题,使用redis 的 SortedSet解决 ZRANGE(score小到大) ZREVRANGE(socre大到小) 时间复杂度为O(log(N)+M)