SentinelTestController.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package anyi.space.memberServer.controller;
  2. import org.springframework.web.bind.annotation.GetMapping;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5. /**
  6. * @ProjectName: distributedSystemLearn
  7. * @FileName: SentinelTestController
  8. * @Author: 杨逸
  9. * @Data:2025/9/16 14:36
  10. * @Description: 测试Sentinel流控规则的控制器
  11. */
  12. @RestController
  13. @RequestMapping("/sentinel")
  14. public class SentinelTestController {
  15. private int number = 1;
  16. /**
  17. * t1和t2为测试Sentinel直接限流和关联限流的测试接口
  18. * @return
  19. */
  20. @GetMapping("/t1")
  21. public String t1(){
  22. String msg = "t1被执行";
  23. System.out.println(msg);
  24. return msg;
  25. }
  26. @GetMapping("/t2")
  27. public String t2(){
  28. String msg = "t2被执行";
  29. System.out.println(msg);
  30. return msg;
  31. }
  32. /**
  33. * t3为测试Sentinel基于慢调用比例熔断策略的测试接口
  34. * @return
  35. */
  36. @GetMapping("/t3")
  37. public String t3(){
  38. String msg = "t3被执行";
  39. try {
  40. Thread.sleep(300);
  41. } catch (InterruptedException e) {
  42. e.printStackTrace();
  43. }
  44. System.out.println(msg);
  45. return msg;
  46. }
  47. /**
  48. * t4为测试Sentinel基于异常比例熔断策略的测试接口
  49. * @return
  50. */
  51. @GetMapping("/t4")
  52. public String t4(){
  53. String msg = "t4被执行";
  54. //制造一个异常
  55. number++;
  56. int r = number/(number%2);
  57. System.out.println(msg);
  58. return msg;
  59. }
  60. }