关于 java-microservices
面向 Java 开发者的微服务技能,涵盖 Spring Cloud 与分布式系统模式,并提供实现和排障参考。内容涉及服务通信、韧性、消息处理及可观测性。
主要功能
- 01Spring Cloud 服务发现与网关
- 02使用 Resilience4j 实现韧性模式
- 03Kafka 与事件驱动架构
- 04分布式追踪、指标和日志关联
- 05排障说明与实现示例
适用场景
- 01设计 Spring Cloud 微服务架构
- 02为服务添加熔断器和重试
- 03使用 Kafka 构建事件驱动流程
- 04追踪请求并调查服务故障
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pluginagentmarketplace/ custom-plugin-java --skill java-microservices安装后在 Claude Code 中输入/java-microservices确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/config.yamlmicroservices-checklist.yamlschema.jsonreferences/GUIDE.mdPATTERNS.mdscripts/validate.py详细介绍
Java 微服务技能
使用 Spring Cloud 和分布式系统模式构建可用于生产环境的微服务。
概述
此技能涵盖 Spring Cloud 微服务架构,包括服务发现、API 网关、熔断器、事件驱动通信和分布式追踪。
何时使用此技能
在需要以下操作时使用:
- 设计微服务架构
- 实现服务间通信
- 配置弹性模式
- 设置事件驱动消息传递
- 添加分布式追踪
涵盖主题
Spring Cloud 组件
- Config Server(集中式配置)
- 服务发现(Eureka、Consul)
- API 网关(Spring Cloud Gateway)
- 负载均衡(Spring Cloud LoadBalancer)
弹性模式
- 熔断器(Resilience4j)
- 带退避策略的重试
- 舱壁隔离
- 速率限制
事件驱动架构
- Apache Kafka 集成
- Spring Cloud Stream
- Saga 模式
- 事件溯源基础
可观测性
- 分布式追踪(Micrometer)
- 指标(Prometheus)
- 日志关联
快速参考
// Saga with Choreography
@Component
public class OrderSagaListener {
@KafkaListener(topics = "order.created")
public void handleOrderCreated(OrderCreatedEvent event) {
inventoryService.reserve(event.getItems());
}
@KafkaListener(topics = "payment.failed")
public void handlePaymentFailed(PaymentFailedEvent event) {
// Compensating transaction
inventoryService.release(event.getOrderId());
orderService.cancel(event.getOrderId());
}
}
// Circuit Breaker Configuration
@Configuration
public class ResilienceConfig {
@Bean
public Customizer<Resilience4JCircuitBreakerFactory> cbCustomizer() {
return factory -> factory.configureDefault(id ->
new Resilience4JConfigBuilder(id)
.circuitBreakerConfig(CircuitBreakerConfig.custom()
.failureRateThreshold(50)
.waitDurationInOpenState(Duration.ofSeconds(30))
.slidingWindowSize(10)
.build())
.build());
}
}
// API Gateway Routes
@Configuration
public class GatewayConfig {
@Bean
public RouteLocator routes(RouteLocatorBuilder builder) {
return builder.routes()
.route("orders", r -> r
.path("/api/orders/**")
.filters(f -> f
.stripPrefix(1)
.circuitBreaker(c -> c.setName("order-cb"))
.retry(retry -> retry.setRetries(3)))
.uri("lb://order-service"))
.build();
}
}
可观测性配置
management:
tracing:
sampling:
probability: 1.0
endpoints:
web:
exposure:
include: health,info,metrics,prometheus
logging:
pattern:
level: "%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]"
常见模式
Saga 模式
Order → Inventory → Payment → (Success | Compensate)
熔断器状态
CLOSED → (failures exceed threshold) → OPEN
OPEN → (wait duration) → HALF_OPEN
HALF_OPEN → (success) → CLOSED
HALF_OPEN → (failure) → OPEN
故障排除
常见问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 级联故障 | 没有熔断器 | 添加 Resilience4j |
| 消息丢失 | 没有确认 | 启用手动确认 |
| 数据不一致 | 没有补偿机制 | 实现 Saga |
| 找不到服务 | 服务发现延迟 | 调整心跳设置 |
调试清单
□ Trace request (traceId)
□ Check circuit breaker state
□ Verify Kafka consumer lag
□ Review gateway routes
□ Monitor retry counts
用法
Skill("java-microservices")
相关技能
java-spring-boot- Spring Cloudjava-docker- 容器化
评论
支持 Markdown