Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
后端镜像
java镜像
Springside4
提交
5de47bfe
S
Springside4
项目概览
后端镜像
/
java镜像
/
Springside4
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Springside4
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5de47bfe
编写于
7月 05, 2013
作者:
C
Calvin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#232 基于Hystrix的系统保护,Day3. 演示
上级
b14322a3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
18 deletion
+12
-18
examples/showcase/src/main/webapp/WEB-INF/views/story/hystrix.jsp
.../showcase/src/main/webapp/WEB-INF/views/story/hystrix.jsp
+12
-18
未找到文件。
examples/showcase/src/main/webapp/WEB-INF/views/story/hystrix.jsp
浏览文件 @
5de47bfe
...
...
@@ -20,25 +20,25 @@
<h2>
演示操作
</h2>
<ul>
<li>
当前依赖资源
状态为
<%=
HystrixController
.
status
%>
:切换为
<a
href=
"${ctx}/story/hystrix/status/normal"
>
正常
</a>
、
<a
href=
"${ctx}/story/hystrix/status/timeout"
>
超时
</a>
、
<a
href=
"${ctx}/story/hystrix/status/fail"
>
失败
</a>
。
</li>
<li>
当前异常处理方式为
<%=
HystrixController
.
fallback
%>
:切换为
<a
href=
"${ctx}/story/hystrix/fallback/exception"
>
抛出异常
</a>
、
<a
href=
"${ctx}/story/hystrix/fallback/dummy"
>
返回默认用户
</a>
、
<a
href=
"${ctx}/story/hystrix/fallback/standby"
>
访问备用节点
</a>
。
</li>
<li>
依赖资源当前
状态为
<%=
HystrixController
.
status
%>
:切换为
<a
href=
"${ctx}/story/hystrix/status/normal"
>
正常
</a>
、
<a
href=
"${ctx}/story/hystrix/status/timeout"
>
超时
</a>
、
<a
href=
"${ctx}/story/hystrix/status/fail"
>
失败
</a>
。
</li>
<li>
Hystrix服务
当前异常处理方式为
<%=
HystrixController
.
fallback
%>
:切换为
<a
href=
"${ctx}/story/hystrix/fallback/exception"
>
抛出异常
</a>
、
<a
href=
"${ctx}/story/hystrix/fallback/dummy"
>
返回默认用户
</a>
、
<a
href=
"${ctx}/story/hystrix/fallback/standby"
>
访问备用节点
</a>
。
</li>
<li>
访问服务:
<a
href=
"${ctx}/hystrix/service/1"
target=
"_blank"
>
Hystrix服务
</a>
、
<a
href=
"${ctx}/hystrix/resource/1"
target=
"_blank"
>
依赖资源
</a>
、
<a
href=
"${ctx}/hystrix/resource/standby/1"
target=
"_blank"
>
资源的备用节点
</a>
。
</li>
</ul>
<h2>
主要用户故事
</h2>
<ul>
<li>
在默认的正常状态,访问Hystrix服务和依赖资源
和
,均返回正常结果。
</li>
<li>
将资源状态切换为"超时",
点击
依赖资源,需要在10秒后才返回结果。
</li>
<li>
点击
Hystrix服务,2秒后超时,返回503。
</li>
<li>
在默认的正常状态,访问Hystrix服务和依赖资源,均返回正常结果。
</li>
<li>
将资源状态切换为"超时",
访问
依赖资源,需要在10秒后才返回结果。
</li>
<li>
访问
Hystrix服务,2秒后超时,返回503。
</li>
<li>
三次超时后满足短路条件(60秒滚动窗口内起码有3个请求,50%失败),再次刷新服务,立即返回503。
</li>
<li>
10秒短路保护期内,所有
刷新都立即返回503,不会进入真正服务调用
。
</li>
<li>
10秒短路保护期内,所有
访问都立即返回503,不会访问依赖资源
。
</li>
<li>
保护期过后,会放行一个请求,如果还是超时,则继续保持短路状态。如果成功则重置所有计数器。
</li>
</ul>
<h2>
其他用户故事
</h2>
<ul>
<li>
将资源状态切换为"失败",
点击访问依赖资源,返回500错误,点击
访问Hystrix服务,即时返回503错误。
</li>
<li>
将异常处理方式切换为"返回默认用户",
点击
访问Hystrix服务,返回默认用户。
</li>
<li>
将异常处理方式切换为"访问备用节点",
点击
访问Hystrix服务,返回正确结果。
</li>
<li>
将资源状态切换为"失败",
访问依赖资源,立即返回500错误,
访问Hystrix服务,即时返回503错误。
</li>
<li>
将异常处理方式切换为"返回默认用户",访问Hystrix服务,返回默认用户。
</li>
<li>
将异常处理方式切换为"访问备用节点",访问Hystrix服务,返回正确结果。
</li>
</ul>
<h2>
监控结果
</h2>
...
...
@@ -54,15 +54,9 @@
%>
<ul>
<li>
是否短路:
<%=
circuitBreaker
.
isOpen
()
%></li>
<li>
窗口内请求:
<%=
counts
.
getTotalRequests
()
%></li>
<li>
窗口内成功:
<%=
metrics
.
getRollingCount
(
HystrixRollingNumberEvent
.
SUCCESS
)
%></li>
<li>
窗口内超时:
<%=
metrics
.
getRollingCount
(
HystrixRollingNumberEvent
.
TIMEOUT
)
%></li>
<li>
窗口内失败:
<%=
metrics
.
getRollingCount
(
HystrixRollingNumberEvent
.
FAILURE
)
%></li>
<li>
窗口内短路:
<%=
metrics
.
getRollingCount
(
HystrixRollingNumberEvent
.
SHORT_CIRCUITED
)
%></li>
<li>
窗口内失败百分比:
<%=
counts
.
getErrorPercentage
()
%></li>
<li>
50%延时:
<%=
metrics
.
getTotalTimePercentile
(
50
)
+
"ms"
%></li>
<li>
90%延时:
<%=
metrics
.
getTotalTimePercentile
(
90
)
+
"ms"
%></li>
<li>
100%延时:
<%=
metrics
.
getTotalTimePercentile
(
100
)
+
"ms"
%></li>
<li>
窗口内请求:
<%=
counts
.
getTotalRequests
()
%>
,失败百分比:
<%=
counts
.
getErrorPercentage
()
%>
%
<li>
窗口成功:
<%=
metrics
.
getRollingCount
(
HystrixRollingNumberEvent
.
SUCCESS
)
%>
, 超时:
<%=
metrics
.
getRollingCount
(
HystrixRollingNumberEvent
.
TIMEOUT
)
%>
,失败:
<%=
metrics
.
getRollingCount
(
HystrixRollingNumberEvent
.
FAILURE
)
%>
,短路:
<%=
metrics
.
getRollingCount
(
HystrixRollingNumberEvent
.
SHORT_CIRCUITED
)
%></li>
<li>
50%延时:
<%=
metrics
.
getTotalTimePercentile
(
50
)
+
"ms"
%>
,90%延时:
<%=
metrics
.
getTotalTimePercentile
(
90
)
+
"ms"
%>
,100%延时:
<%=
metrics
.
getTotalTimePercentile
(
100
)
+
"ms"
%></li>
</ul>
<%
}
%>
</body>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录