cgf*_*cgf 7 java circuit-breaker spring-boot resilience4j
使用Spring Boot为外部调用(例如HTTP)提供断路器是一种很容易实施的常见模式,例如使用resilience4j。
我找不到任何有关通过resilience4j 或其他常见模式对数据库调用执行相同操作的信息,这对我来说是出乎意料的。
假设我们有一个服务,通过简单的 JDBC 连接到传统的 SQL 数据库。如果数据库因任何原因发生故障,我希望能够在控制器级别停止对服务的所有传入请求,直到连接恢复。有没有一种方法可以为通过数据库连接发生的所有事务实现本质上的断路器功能?
是的,这是可能的。《Spring Microservices in Action》一书的第 7 章给出了一个这样的例子。实际上,您可以像对待 HTTP 调用一样对待 SQL 调用:
\n@CircuitBreaker(name = "entityService") \xe2\x9d\xb6\npublic List<Entity> getEntity(String entityId) {\n return entityRepository.findByEntityId(entityId);\n}\n
Run Code Online (Sandbox Code Playgroud)\n您将需要以下依赖项:
\nio.github.resilience4j:resilience4j-spring-boot2\nio.github.resilience4j:resilience4j-circuitbreaker\nio.github.resilience4j:resilience4j-timelimiter\norg.springframework.boot:spring-boot-starter-aop\n
Run Code Online (Sandbox Code Playgroud)\n这是使用 AOP 模式向现有代码添加新行为,而无需修改代码本身。
\n 归档时间: |
|
查看次数: |
3218 次 |
最近记录: |