可靠性,可扩展性,可维护性
常见标准组件:
- 数据库(database)存储数据,以便自己或其他应用程序之后能再次找到
- 缓存(cache)记住开销昂贵操作的结果,加快读取速度搜索索引(search indexes)允许用户按关键字搜索数据,或以各种方式对数据进行过滤
- 流处理(stream processing) 向其他进程发送消息,进行异步处理
- 批处理(batch processing)定期处理累积的大批量数据
类别之间的界限变得越来越模糊,例如:数据存储可以被当成消息队列用(Redis),消息队列则带有类似数据库的持久保证(Apache Kafka)。如果将缓存(应用管理的缓存层,Memcached或同类产品)和全文搜索(全文搜索服务器,例如Elasticsearch或Solr)功能从主数据库剥离出来,那么使缓存/索引与主数据库保持同步通常是应用代码的责任。
- 可靠性(Reliability)
系统在困境(adversity)(硬件故障、软件故障、人为错误)中仍可正常工作(正确完成功能,并能达到期望的性能水准)。
- 可扩展性(Scalability)
有合理的办法应对系统的增长(数据量、流量、复杂性)
- 可维护性(Maintainability)
许多不同的人(工程师、运维)在不同的生命周期,都能在高效地在系统上工作(使系统保持现有行为,并适应新的应用场景)
待更新尾巴-------------------------------------------------------------------------------------------------------------------