package com.korgs.biz;
import com.alibaba.csp.sentinel.annotation.SentinelResource;
import com.alibaba.csp.sentinel.slots.block.BlockException;
import com.korgs.framework.logger.LogGenerator;
import com.korgs.framework.restful.BaseResponse;
import com.korgs.framework.restful.ListResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@RestController
@RequestMapping("/api/user")
public class UserController {
@Value("${server.port}")
private String serverPort;
@SentinelResource(value = "userInfo", blockHandler = "exceptionHandler")
@GetMapping("/userinfo/{uuid}")
public BaseResponse<String> userInfo(@PathVariable String uuid){
String str = LogGenerator.trackLog()
+ " uuid=" + uuid + " I am busy to handle userInfo."
+ " serverPort=" + serverPort;
log.info( str );
return BaseResponse.success(str);
}
@SentinelResource(value = "userOrder")
@GetMapping("/userorderlist/{uuid}")
public ListResponse<List<String>> userOrder(@PathVariable String uuid){
String str = LogGenerator.trackLog()
+ " uuid=" + uuid + " I am busy to handle userInfo."
+ " serverPort=" + serverPort;
log.info( str );
List<String> userOrders = new ArrayList<>();
userOrders.add("order1");
userOrders.add("order2");
userOrders.add("order3");
userOrders.add("order4");
return ListResponse.success(userOrders);
}
@SentinelResource(value = "userStatus")
@GetMapping("/userstatus/{uuid}")
public BaseResponse<String> userStatus(@PathVariable String uuid){
String str = LogGenerator.trackLog()
+ " uuid=" + uuid + " I am busy to handle userStatus."
+ " serverPort=" + serverPort;
return BaseResponse.success(str);
}
public BaseResponse<String> exceptionHandler(long s, BlockException ex) {
ex.printStackTrace();
return BaseResponse.error(s+"");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
详细使用参考:https://korgs.blog.csdn.net/article/details/138541169 总体而言,限流和降级作为微服务架构中的重要机制,尽管在实现上可能有多种方式,但它们都着眼于保护服务提供者和消费者,在面对异常情况时确保系统稳定运行。限流关注于保护服务提供者,控制请求流量;而降级则关注于服务消费者,确保在服务不可用或异常情况下提供基本的功能。 - `限流`是一种针对服务提供者的策略,用于控制对特定服务接口或服务实例的访问量。其目的在于保护服务提供者免受过大请求流量的影响,确保服务稳定性。**限流措施可以在服务提供者或服务消费者两端实现,通过设定流量阈值并采取排队、拒绝请求或返回错误信息等方式来控制流量,从而保护服务**。 - `降级`是针对服务消费者的应对策略,在服务出现异常或限流时,通过对服务调用进行降级处理,确保消费者端能够在异常情况下正常工作。降级的目的在于转变为弱依赖状态,使系统能够在服务不可用时提供基本的功能或数据。这种策略可以在服务消费者端实施,通过返回默认值、提供备用数据或简化功能等方式来保证系统的可用性。 - `断路器`:一个自动中断
资源推荐
资源详情
资源评论
收起资源包目录
Alibaba SpringCloud集成Nacos、Sentinel实现服务治理.zip (53个子文件)
alibaba-sentinel-openFeign-client
pom.xml 1KB
src
test
java
main
resources
application.properties 501B
log4j2.xml 2KB
application-dev.properties 782B
java
com
korgs
biz
service
LoadService.java 491B
LoadServiceFallback.java 354B
LoadBalanceController.java 660B
framework
OpenFeignConfig.java 291B
AlibabaSpringbootSentinelOpenFeignClientApplication.java 1KB
OpenAPIConfig.java 2KB
target
classes
application.properties 501B
log4j2.xml 2KB
application-dev.properties 782B
com
korgs
OpenAPIConfig$SwaggerProperties.class 5KB
AlibabaSpringbootSentinelOpenFeignClientApplication.class 2KB
biz
service
LoadService.class 760B
LoadServiceFallback.class 871B
LoadBalanceController.class 1KB
framework
OpenFeignConfig.class 681B
OpenAPIConfig.class 3KB
generated-sources
annotations
alibaba-sentinel-client
.DS_Store 6KB
pom.xml 1KB
src
test
java
main
resources
application.properties 434B
log4j2.xml 2KB
application-dev.properties 782B
java
com
korgs
biz
LoadUserController.java 1KB
framework
RibbonConfig.java 511B
OpenAPIConfig.java 2KB
AlibabaSpringbootSentinelClientApplication.java 1KB
target
classes
application.properties 434B
log4j2.xml 2KB
application-dev.properties 782B
com
korgs
OpenAPIConfig$SwaggerProperties.class 5KB
AlibabaSpringbootSentinelClientApplication.class 2KB
biz
LoadUserController.class 3KB
framework
RibbonConfig.class 775B
OpenAPIConfig.class 3KB
generated-sources
annotations
alibaba-sentinel-server
pom.xml 1KB
src
test
java
main
resources
application.properties 2KB
log4j2.xml 2KB
application-dev.properties 782B
java
com
korgs
biz
UserController.java 2KB
framework
SentinelExceptionUtil.java 474B
AlibabaSpringbootSentinelServerApplication.java 1KB
OpenAPIConfig.java 2KB
target
classes
application.properties 2KB
log4j2.xml 2KB
application-dev.properties 782B
com
korgs
OpenAPIConfig$SwaggerProperties.class 5KB
biz
UserController.class 4KB
framework
SentinelExceptionUtil.class 2KB
AlibabaSpringbootSentinelServerApplication.class 3KB
OpenAPIConfig.class 3KB
generated-sources
annotations
共 53 条
- 1
资源评论
korgs
- 粉丝: 7516
- 资源: 123
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于JavaScript和CSS的随寻订购网页设计源码 - web-order
- 基于MATLAB的声纹识别系统设计源码 - VoiceprintRecognition
- 基于Java的微服务插件集合设计源码 - wsy-plugins
- 基于Vue和微信小程序的监理日志系统设计源码 - supervisionLog
- 基于Java和LCN分布式事务框架的设计源码 - tx-lcn
- 基于Java和JavaScript的茶叶评级管理系统设计源码 - tea
- IMG_5680.JPG
- IMG_0437.jpg
- 基于Java的JAVA项目分析工具设计源码 - JAVAProjectAnalysis
- top888.json
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功