Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Kwan的解忧杂货铺@新空间代码工作室
SpringCloud-study
提交
52c11347
S
SpringCloud-study
项目概览
Kwan的解忧杂货铺@新空间代码工作室
/
SpringCloud-study
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SpringCloud-study
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
52c11347
编写于
1月 14, 2023
作者:
Q
qinyingjie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix:添加备注
上级
73476c30
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
74 addition
and
27 deletion
+74
-27
springcloud-service-feign/src/main/java/com/kwan/springcloud/api/ComputeClientHystrix.java
...n/java/com/kwan/springcloud/api/ComputeClientHystrix.java
+7
-0
springcloud-service-goods-9100/src/main/resources/application.yaml
...ud-service-goods-9100/src/main/resources/application.yaml
+1
-1
springcloud-service-goods-9200/src/main/resources/application.yaml
...ud-service-goods-9200/src/main/resources/application.yaml
+2
-2
springcloud-service-goods-9300/src/main/resources/application.yaml
...ud-service-goods-9300/src/main/resources/application.yaml
+2
-2
springcloud-service-portal/src/main/java/com/kwan/springcloud/controller/PortalController.java
...ava/com/kwan/springcloud/controller/PortalController.java
+10
-0
springcloud-service-portal/src/main/java/com/kwan/springcloud/service/PortalService.java
...main/java/com/kwan/springcloud/service/PortalService.java
+33
-12
springcloud-service-portal/src/main/resources/application.yaml
...gcloud-service-portal/src/main/resources/application.yaml
+19
-10
未找到文件。
springcloud-service-feign/src/main/java/com/kwan/springcloud/api/ComputeClientHystrix.java
浏览文件 @
52c11347
...
...
@@ -5,6 +5,13 @@ import org.springframework.stereotype.Component;
import
java.io.Serializable
;
/**
* feign的降级
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/1/14 16:47
*/
@Component
public
class
ComputeClientHystrix
implements
ComputeClient
{
@Override
...
...
springcloud-service-goods-9100/src/main/resources/application.yaml
浏览文件 @
52c11347
...
...
@@ -29,7 +29,7 @@ management:
web
:
base-path
:
/actuator
#修改访问路径 2.0之前默认是/ 2.0默认是 /actuator 可以通过这个属性值修改
exposure
:
include
:
*
include
:
"
*"
health
:
show-details
:
always
#显示健康具体信息 默认不会显示详细信息
...
...
springcloud-service-goods-9200/src/main/resources/application.yaml
浏览文件 @
52c11347
...
...
@@ -28,8 +28,8 @@ management:
endpoints
:
web
:
base-path
:
/actuator
#修改访问路径 2.0之前默认是/ 2.0默认是 /actuator 可以通过这个属性值修改
health
:
show-details
:
always
#显示健康具体信息 默认不会显示详细信息
exposure
:
include
:
"
*"
#mybatis-plus配置
mybatis-plus
:
...
...
springcloud-service-goods-9300/src/main/resources/application.yaml
浏览文件 @
52c11347
...
...
@@ -28,8 +28,8 @@ management:
endpoints
:
web
:
base-path
:
/actuator
#修改访问路径 2.0之前默认是/ 2.0默认是 /actuator 可以通过这个属性值修改
health
:
show-details
:
always
#显示健康具体信息 默认不会显示详细信息
exposure
:
include
:
"
*"
#mybatis-plus配置
mybatis-plus
:
...
...
springcloud-service-portal/src/main/java/com/kwan/springcloud/controller/PortalController.java
浏览文件 @
52c11347
...
...
@@ -35,6 +35,16 @@ public class PortalController {
return
portalService
.
hystrix
(
id
);
}
@GetMapping
(
value
=
"/limit/{id}"
,
produces
=
MediaType
.
APPLICATION_PROBLEM_JSON_VALUE
)
public
Result
limit
(
@PathVariable
String
id
)
{
return
portalService
.
limit
(
id
);
}
/**
* 通过主键查询单条数据
*
...
...
springcloud-service-portal/src/main/java/com/kwan/springcloud/service/PortalService.java
浏览文件 @
52c11347
...
...
@@ -2,6 +2,7 @@ package com.kwan.springcloud.service;
import
com.kwan.springcloud.response.Result
;
import
com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand
;
import
com.netflix.hystrix.contrib.javanica.annotation.HystrixProperty
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -26,26 +27,46 @@ public class PortalService {
//调用远程的controller
return
restTemplate
.
getForEntity
(
GOODS_URL_2
+
id
,
Result
.
class
).
getBody
();
}
@HystrixCommand
(
fallbackMethod
=
"addServiceFallback"
)
public
Result
hystrix
(
String
id
)
{
@HystrixCommand
(
fallbackMethod
=
"addServiceFallback"
,
commandProperties
=
{
@HystrixProperty
(
name
=
"execution.timeout.enabled"
,
value
=
"true"
),
@HystrixProperty
(
name
=
"execution.isolation.thread.timeoutInMilliseconds"
,
value
=
"6000"
)}
)
public
Result
hystrix
(
String
id
)
{
//1·服务超时,会降级
try
{
Thread
.
sleep
(
2
000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
//2.服务异常,会降级
String
str
=
null
;
if
(
str
==
null
)
{
throw
new
RuntimeException
(
"服务异常了."
);
}
//
try {
// Thread.sleep(6
000);
//
} catch (InterruptedException e) {
//
e.printStackTrace();
//
}
//
//2.服务异常,会降级
//
String str = null;
//
if (str == null) {
//
throw new RuntimeException("服务异常了.");
//
}
return
restTemplate
.
getForEntity
(
GOODS_URL_2
+
id
,
Result
.
class
).
getBody
();
}
public
Result
addServiceFallback
(
String
id
)
{
log
.
info
(
"失败id={}"
,
id
);
// return Result.error("请求超时 服务不可用 请求失败");
return
Result
.
error
(
"请求异常 服务不可用 请求失败"
);
}
@HystrixCommand
(
fallbackMethod
=
"addServiceFallback"
,
threadPoolKey
=
"goods"
,
threadPoolProperties
=
{
@HystrixProperty
(
name
=
"coreSize"
,
value
=
"2"
),
@HystrixProperty
(
name
=
"maxQueueSize"
,
value
=
"1"
),
@HystrixProperty
(
name
=
"keepAliveTimeMinutes"
,
value
=
"2"
),
@HystrixProperty
(
name
=
"queueSizeRejectionThreshold"
,
value
=
"100"
)
}
)
public
Result
limit
(
String
id
)
{
return
restTemplate
.
getForEntity
(
GOODS_URL_2
+
id
,
Result
.
class
).
getBody
();
}
}
springcloud-service-portal/src/main/resources/application.yaml
浏览文件 @
52c11347
...
...
@@ -12,14 +12,23 @@ eureka:
service-url
:
defaultZone
:
http://eureka8767:8767/eureka/,http://eureka8768:8768/eureka/,http://eureka8769:8769/eureka/
#开启feign开始hystrix的支持
feign
:
hystrix
:
enabled
:
true
feign.hystrix.enabled=true
hystrix.command.default.execution.timeout.enabled=true
hystrix.command.default.execution.isolation.thread.timeoutInMi
1liseconds=5000
如果hystrix.command.default.execution.timeout.enabled为true,则会有两
个执行方法超时的配置,一个就是ribbon的ReadTimeout,一个就是熔断器
I
hystrix的timeoutInMilliseconds,此时谁的值小谁生效;
如果hystrix.command.default.execution.timeout.enabled为false,则熔断
\ No newline at end of file
hystrix
:
command
:
default
:
execution
:
isolation
:
thread
:
timeoutInMilliseconds
:
5000
#hystrix超时时间
timeout
:
enabled
:
true
#开启hystrix超时管理
ribbon
:
ReadTimeout
:
2000
#请求超时时间
http
:
client
:
enabled
:
true
#开启ribbon超时管理
ConnectTimeout
:
2000
#连接超时时间
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录