如何设计微服务才能防止宕机?


top查cpu进程,再通过 top -Hp 进程号定位某个进程,然后再用jstack定位线程代码,也可以在docker服务中放入阿里开源的arthas来排查故障


数据库主从,主库出问题,可以切换到从库,分机房读写分离,程序上可以不做读写分离,但数据库做不同机房的主从同步

单元化部署

可用性更高的向嘀嘀打车的场景要求更高,需要做单元化部署,两个机房的数据库都是主库,而且互相同步数据,这样dba将减少比对数据时间,这样也减少处理故障时间,流量都50%,都对外提供服务

 

读接口和写接口隔离

 

线程池隔离,如果机器不够用可以用这种方式,将主要流量的接口和非主要流量的接口的线程池分开,比如设置dubbo线程池如何隔离

注意点:cpu

编码注意点:
for循环不要超过3层

json打印自定义或判断日志级别,配置中心可以修改自动降级

本地内存设置上限


 

你可能感兴趣的:(java)