博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何做出健壮的系统设计
阅读量:5924 次
发布时间:2019-06-19

本文共 508 字,大约阅读时间需要 1 分钟。

看了这篇文章:

《》

觉得写得蛮好的。

 

把提纲摘录一下。具体的内容可以去看原文。

 

怀疑第三方,防备使用方,做好自己”。

1 怀疑第三方

1.1 有兜底,制定好业务降级方案

我自己的例子:数据传输通道不稳定,本地保存全量索引

1.2 遵循快速失败原则,一定要设置超时时间

1.3 适当保护第三方,慎重选择重试机制

我自己的例子:一个兄弟团队的服务,把基础服务钱包调用压垮了(雪崩)

 

2 防备使用方

2.1 设计一个好的api(RPC、Restful),避免误用

a) 遵循接口最少暴露原则

b) 不要让使用方做接口可以做的事情

c避免长时间执行的接口

d)参数易用原则

 

e)异常

2.2 流量控制,按服务分配流量,避免滥用

2.3 我再加一个:安全性,比如外网统一要用https

 

3 做好自己

3.1 单一职责原则

3.2 控制资源的使用

3.2.1 CPU资源怎么限制?

a)计算算法优化

b)锁

c) 习惯问题

比如多线程的退出问题,是否产生死循环(HashMap线程不安全,HashTable线程安全)

d)尽量使用线程池

e)jvm参数调优

 

3.2.2 内存资源怎么限制?

看原文

 

3.3 避免单点

 

(完)

转载地址:http://pwavx.baihongyu.com/

你可能感兴趣的文章
【BBED】使用bbed解决 the amount of space used is not equal to block size
查看>>
程序员的量化交易之路(37)--Lean之DataStream数据流5
查看>>
IOS常用加密Encryption
查看>>
(NO.00003)iOS游戏简单的机器人投射游戏成形记(五)
查看>>
快速学习MySQL SQL语句
查看>>
2014牡丹江网络赛ZOJPretty Poem(暴力枚举)
查看>>
Sync4j的Nokia手机实践结果
查看>>
selenium-webdriver(python) (十三) -- cookie处理
查看>>
(NO.00004)iOS实现打砖块游戏(七):关卡类的实现
查看>>
Redis用户会线下分享活动
查看>>
【oracle】user_tables
查看>>
页面的缓存与不缓存设置
查看>>
Javascript Prototypes之旅(A Plain English Guide to JavaScript Prototypes译文)
查看>>
JVM源码分析之堆外内存完全解读
查看>>
maven pom聚合与继承
查看>>
排它锁 共享锁的区别
查看>>
三层嵌套oracle数据库记录分页sql语句
查看>>
JAVA图形界面(GUI)之表格
查看>>
Apache Storm 官方文档 —— 基础概念
查看>>
A - Farey Sequence——(筛法求欧拉函数)
查看>>