京东三高系统建设
高性能:
首先我们要清楚知道影响系统性能的因素有那些,通常有以下三方面的因素:计算(computation),通信(communication),存储(storage)。
计算层面:系统本身的计算逻辑复杂,Fullgc;
通信层面:依赖的下游耗时比较高;
存储层面:大库大表,慢sql,ES集群的数据节点,索引,分片,分片大小设置的不合理;针对这些问题,我们可以从读写两个维度针对性能问题进行优化,下图是我工作中解决性能问题的一些方法。
高并发:
水平扩展,纵向扩展,垂直扩展
高可用:
高可用的建设通常是通过保护系统和冗余的方法来进行容错保证系统的可用性。
存储层主要通过复制和分片来保证存储层的高可用,复制主要是通过副本(主从节点,主从副本)来保证高可用,分片是将数据分散到不同的节点上来保证高可用(鸡蛋不要放在同一个篮子中)。复制和分片在保证高可用的情况下,其实也提高了系统的高性能和高并发,复制和分片的思想在Mysql,Redis,ElasticSearch, kafka中都进行了采用。
https://mp.weixin.qq.com/s/KexjVJOsGYN50MxqzVT3mA