高可用-分布式java应用读书笔记

1.避免单点
使用负载均衡做集群避免单点。
负载均衡算法。
软件负载均衡(LVS、HAProxy和nginx)和硬件负载均衡(F5和netscalar)。
热备、多机房(数据同步、内存同步、文件同步)

2.提高应用自身的可用性
2.1 尽量避免故障
a.明确使用场景,尽量保持系统的简单,对于复杂的系统,划分为不同的阶段,保证每个阶段的简单。
b.设计可容错的系统。1.fail first,遇到错误尽早的结束错误,以免执行后续的操作 2.设计严谨的接口,保证用户按照希望的方式使用。
例如type,可以再构造方法中传入,运行时检查不太友好,或者使用明确的对象AType BType。
c.设计自我保护的系统。对于使用的第三方系统始终怀疑的态度,避免错误扩散。
d.限制资源的使用。1)内存。集合类,threadlocal对于线程复用,只有线程销毁的时候才会自动释放,要特别注意。
2)文件。大量写日志,大文件。 3)网络。连接数和操作系统sendbuffer 4)线程。线程要消耗jvm内存和系统内存,线程太多会导致频繁的上下文切换。
e.测试阶段:自动化测试,性能测试。部署阶段:自动化部署、平滑升级、自动验证、回退。
f.风险卡。
所属领域:功能、内部功能、可容错、自我保护、资源限制。
风险名称,风险发生几率,风险的影响,风险的检测,风险发生后的应用措施、风险发生的可能原因。
2.2尽早发现故障
没有监控的系统就像没有仪表盘的汽车。
报警系统:单机状况报警(CPU,负载,第三方),集群报警(同基线偏差过大),关键数据报警(同基线偏差过大),日志记录和分析
2.3及时处理故障
出现故障时,不是分析原因,而是先把问题修复。修复故障后,要分析故障产生的原因,记入知识库,以便日后尽可能的避免。
1.资源重新分配 2.优雅降级 3.限制资源使用。
2.4访问量及数据量上涨的应对策略
访问量上涨的应对措施是拆分和水平伸缩。
数据量上涨则是分库、分表、读写分离。

《分布式Java应用-基础与实践》-林昊
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值