一套稳定的系统必须满足三点 - 高可用(没有单点) * 机房单点 * 解决方案:多机房部署 * 运营商单点 * 解决方案:支持多个线路 * IP单点 * 解决方案:DNSpod设置域名动态切换IP * 常用应用程序单点 * 解决方案:采用负载均衡,高可用,代理技术 * 常用负载均衡技术: * nginx 七层负载均衡 * HAproxy 七层和四层负载均衡 * lvs四层负载均衡 * 常用高可用技术: * keepalived * heartbeat * 常用代理技术: * varnish和squid是专业的cache服务,要做cache服务的话,优先选择squid和varnish(首推)。 * squid 是功能最全面的,但是架构太老,性能不咋的 * Varnish 是内存缓存,速度一流,但是内存缓存也限制了其容量,缓存页面和图片一般是挺好的 * Nginx 本来是反向代理/web服务器,用了插件可以做做这个副业,但是本身不支持特性挺多 * ATS Traffic Server的主要特点是:高性能、高效率、高扩展性。TS的框架采用了一个非常高效的完全基于事件的编程模式,能够充分发挥CPU的运算能力,配合高效的内存管理,异步的IO模块和专用的文件系统,Traffic Server能够充分发挥现代硬件设备的能力 - 可扩展 - 能迅速实现扩容,增加机器,硬盘,内存就能迅速解决问题 - 解决方案:尽可能使用分布式系统 - 常用分布式系统 - HDFS - Kafka - Zookeeper - 高效的监控,报警 - 机器基础信息监控 - 信息监控,cpu,内存,网络,负载,IO - 业务监控 - 每个应用程序必须预留一个测试接口 有了这些还不够,还需要经常的进行故障演练,保证故障处理顺利进行,而不至于故障时手忙脚乱。或等到故障时才发现故障处理的方案有问题