2.2. 构建并运行 Circuit Breaker booster


Netflix/Hystrix 电路断路器组件使分布式应用程序能够应对对网络服务的网络连接和临时不可用的问题。断路器模式的基本理念是,会自动检测到相依服务的丢失,如果后端服务暂时不可用,可以编程替代行为。

Fuse 断路器提升程序由两个相关服务组成:

  • 名称服务,它将返回名称到 greet
  • greeting s 服务,它调用 name 服务以获取名称,然后返回字符串 Hello, NAME

在本次演示中,Hystrix 断路器在问候服务与名称服务之间插入。如果名称服务不可用,则 greetings 服务可以回退到替代行为,并立即响应客户端,而不必在等待 name 服务重启时阻止或超时。

先决条件

流程

按照以下步骤构建并运行 Circuit breaker booster 项目:

  1. 使用 Maven 打开 shell 提示符并从命令行构建项目:

    cd PROJECT_DIR
    mvn clean package
    Copy to Clipboard Toggle word wrap
  2. 打开一个新 shell 提示符并启动名称服务,如下所示:

    cd name-service
    mvn spring-boot:run -DskipTests -Dserver.port=8081
    Copy to Clipboard Toggle word wrap

    在 Spring Boot 启动时,您应该看到如下一些输出:

    ...
    2017-12-08 15:44:24.223  INFO 22758 --- [           main] o.a.camel.spring.SpringCamelContext      : Total 1 routes, of which 1 are started
    2017-12-08 15:44:24.227  INFO 22758 --- [           main] o.a.camel.spring.SpringCamelContext      : Apache Camel 2.20.0 (CamelContext: camel-1) started in 0.776 seconds
    2017-12-08 15:44:24.234  INFO 22758 --- [           main] org.jboss.fuse.boosters.cb.Application   : Started Application in 4.137 seconds (JVM running for 4.744)
    Copy to Clipboard Toggle word wrap
  3. 打开一个新 shell 提示符并启动问候服务,如下所示:

    cd greetings-service
    mvn spring-boot:run -DskipTests
    Copy to Clipboard Toggle word wrap

    在 Spring Boot 启动时,您应该看到如下一些输出:

    ...
    2017-12-08 15:46:58.521  INFO 22887 --- [           main] o.a.c.c.s.CamelHttpTransportServlet      : Initialized CamelHttpTransportServlet[name=CamelServlet, contextPath=]
    2017-12-08 15:46:58.524  INFO 22887 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
    2017-12-08 15:46:58.536  INFO 22887 --- [           main] org.jboss.fuse.boosters.cb.Application   : Started Application in 6.263 seconds (JVM running for 6.819)
    Copy to Clipboard Toggle word wrap

    问候服务在 URL http://localhost:8080/camel/greetings 上公开 REST 端点。

  4. 进入 http://localhost:8080

    当您打开此页面时,它会调用 Greeting Service:

    此页面也提供到 Hystrix 仪表板的链接,它可监控断路器的状态。

  5. 要演示 Camel Hystrix 提供的断路器功能,可在运行名称服务的 shell 提示符窗口中按 Ctrl+C 来终止后端服务。

    现在名称服务不可用,断路器在启动后启动,以防止在调用时导致 greetings 服务挂起。

  6. 观察 Hystrix Monitor 仪表板和 Greeting Service 输出中的更改:

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat