-
2017-03-23
-
rpc 动态代理 序列化/反序列化 反射 IO通信
-
容错性、稳定性
- 服务熔断的思想。类似现实世界中的“保险丝“,当某个异常条件被触发,直接熔断整个服务,而不是一直等到此服务超时。 熔断的触发条件可以依据不同的场景有所不同,比如统计一个时间窗口内失败的调用次数。
- 实现原理:
- 有了熔断,就得有降级。所谓降级,就是当某个服务熔断之后,服务器将不再被调用,此时客户端可以自己准备一个本地的fallback回调,返回一个缺省值。 这样做,虽然服务水平下降,但好歹可用,比直接挂掉要强,当然这也要看适合的业务场景。
- 线程隔离,可以通过线程数 + 队列大小限制;如果是信号量隔离,可以设置最大并发请求数;根据QPS限制。
- Future或者Callback形式