系统高可用一直是我们追求的目标,如何才能达到这个目标,简单的总结了几点:
一、服务的无状态化(机器里面不存储特定值,可以水平进行服务扩展);
二、服务发现与注册(服务之间应该有心跳的检测,来定期看看是否可通(机器坏了,服务挂了,网络不通了));
三、服务超时处理(机器多了的确快了,如果在服务里面有一个阻塞方法,那么就算服务在多也没用);
四、幂等性(就是多次执行结果都一样,在没有得到反馈情况重试即可);
五、尽量异步(非必须顺序执行的业务场景,尽量采用异步,这样可以最大限度提升服务的高可用,涉及知识点:多线程、消息中间件{1、真异步,2、不重不漏});
六、限流、降级、缓存(1. 拒绝部分请求,2. 关闭部分服务)。