1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
@RestController @RequestMapping("/api/cache") public class CacheManagementController { @Autowired private MultiLevelCacheManager cacheManager; @Autowired private ServiceDegradationService degradationService; @Autowired private CircuitBreakerService circuitBreakerService;
@PostMapping("/clear") public ResponseEntity<Map<String, Object>> clearCache(@RequestParam String cacheName) { try { cacheManager.clear(cacheName); Map<String, Object> result = new HashMap<>(); result.put("success", true); result.put("message", "缓存清空成功"); result.put("cacheName", cacheName); return ResponseEntity.ok(result); } catch (Exception e) { log.error("清空缓存失败: cacheName={}", cacheName, e); Map<String, Object> result = new HashMap<>(); result.put("success", false); result.put("message", "缓存清空失败: " + e.getMessage()); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(result); } }
@PostMapping("/degradation") public ResponseEntity<Map<String, Object>> setServiceDegradation( @RequestParam String serviceName, @RequestParam boolean degraded, @RequestParam(defaultValue = "300") int expireSeconds) { try { degradationService.setServiceDegraded(serviceName, degraded, expireSeconds); Map<String, Object> result = new HashMap<>(); result.put("success", true); result.put("message", "服务降级状态设置成功"); result.put("serviceName", serviceName); result.put("degraded", degraded); result.put("expireSeconds", expireSeconds); return ResponseEntity.ok(result); } catch (Exception e) { log.error("设置服务降级状态失败: serviceName={}", serviceName, e); Map<String, Object> result = new HashMap<>(); result.put("success", false); result.put("message", "设置服务降级状态失败: " + e.getMessage()); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(result); } }
@PostMapping("/circuit-breaker/close") public ResponseEntity<Map<String, Object>> closeCircuitBreaker(@RequestParam String serviceName) { try { circuitBreakerService.closeCircuitBreaker(serviceName); Map<String, Object> result = new HashMap<>(); result.put("success", true); result.put("message", "熔断器关闭成功"); result.put("serviceName", serviceName); return ResponseEntity.ok(result); } catch (Exception e) { log.error("关闭熔断器失败: serviceName={}", serviceName, e); Map<String, Object> result = new HashMap<>(); result.put("success", false); result.put("message", "关闭熔断器失败: " + e.getMessage()); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(result); } }
@GetMapping("/circuit-breaker/state") public ResponseEntity<CircuitBreakerState> getCircuitBreakerState(@RequestParam String serviceName) { try { CircuitBreakerState state = circuitBreakerService.getCircuitBreakerState(serviceName); return ResponseEntity.ok(state); } catch (Exception e) { log.error("获取熔断器状态失败: serviceName={}", serviceName, e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null); } } }
|