mcpField
J
java-microservices

java-microservices

github.com/pluginagentmarketplace開発41499 回インストール42 週間前に更新
リポジトリ

java-microservices について

Spring Cloud と分散システムのパターンを扱う、Java マイクロサービス開発向けのスキルです。サービス間通信、耐障害性、メッセージング、可観測性の実装とトラブルシューティングを支援します。

主な機能

  1. 01Spring Cloud のサービス検出とゲートウェイ
  2. 02Resilience4j による耐障害性パターン
  3. 03Kafka とイベント駆動アーキテクチャ
  4. 04分散トレーシング、メトリクス、ログ相関
  5. 05実装例とトラブルシューティング

活用シーン

  1. 01Spring Cloud マイクロサービスの設計
  2. 02サービスへのサーキットブレーカーとリトライの追加
  3. 03Kafka を使ったイベント駆動フローの構築
  4. 04リクエスト追跡とサービス障害の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pluginagentmarketplace/custom-plugin-java --skill java-microservices

インストール後、Claude Code で/java-microservicesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
config.yaml
microservices-checklist.yaml
schema.json
references/
GUIDE.md
PATTERNS.md
scripts/
validate.py

詳細

Java マイクロサービススキル

Spring Cloud と分散システムのパターンを使用して、本番環境向けのマイクロサービスを構築します。

概要

このスキルでは、サービスディスカバリー、API ゲートウェイ、サーキットブレーカー、イベント駆動型通信、分散トレーシングなど、Spring Cloud を使用したマイクロサービスアーキテクチャを扱います。

このスキルを使用する場面

次のことが必要な場合に使用してください。

  • マイクロサービスアーキテクチャを設計する
  • サービス間通信を実装する
  • レジリエンスパターンを設定する
  • イベント駆動型メッセージングをセットアップする
  • 分散トレーシングを追加する

対象トピック

Spring Cloud のコンポーネント
  • Config Server(集中管理された設定)
  • Service Discovery(Eureka、Consul)
  • API Gateway(Spring Cloud Gateway)
  • Load Balancing(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 を追加する
メッセージの消失ack がない手動 ack を有効にする
データの不整合補償処理がない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 Cloud
  • java-docker - コンテナ化

コメント