Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wushizhenking
advanced-java
提交
34c96ff0
A
advanced-java
项目概览
wushizhenking
/
advanced-java
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
advanced-java
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
34c96ff0
编写于
9月 01, 2019
作者:
Y
yanglbme
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of github.com:doocs/advanced-java
上级
e4825b21
2223e96b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
2 addition
and
0 deletion
+2
-0
docs/high-availability/sentinel-vs-hystrix.md
docs/high-availability/sentinel-vs-hystrix.md
+2
-0
未找到文件。
docs/high-availability/sentinel-vs-hystrix.md
浏览文件 @
34c96ff0
...
...
@@ -23,6 +23,8 @@ Sentinel 项目地址:https://github.com/alibaba/Sentinel
### 1. 资源模型和执行模型上的对比
Hystrix 的资源模型设计上采用了命令模式,将对外部资源的调用和 fallback 逻辑封装成一个命令对象
`HystrixCommand`
或
`HystrixObservableCommand`
,其底层的执行是基于 RxJava 实现的。每个 Command 创建时都要指定
`commandKey`
和
`groupKey`
(用于区分资源)以及对应的隔离策略(线程池隔离 or 信号量隔离)。线程池隔离模式下需要配置线程池对应的参数(线程池名称、容量、排队超时等),然后 Command 就会在指定的线程池按照指定的容错策略执行;信号量隔离模式下需要配置最大并发数,执行 Command 时 Hystrix 就会限制其并发调用。
**注**
:关于 Hystrix 的详细介绍及代码演示,可以参考本项目
[
高可用架构
](
/docs/high-availability/README.md
)
-Hystrix 部分的详细说明。
Sentinel 的设计则更为简单。相比 Hystrix Command 强依赖隔离规则,Sentinel 的资源定义与规则配置的耦合度更低。Hystrix 的 Command 强依赖于隔离规则配置的原因是隔离规则会直接影响 Command 的执行。在执行的时候 Hystrix 会解析 Command 的隔离规则来创建 RxJava Scheduler 并在其上调度执行,若是线程池模式则 Scheduler 底层的线程池为配置的线程池,若是信号量模式则简单包装成当前线程执行的 Scheduler。
而 Sentinel 则不一样,开发的时候只需要考虑这个方法/代码是否需要保护,置于用什么来保护,可以任何时候动态实时的区修改。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录