<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ## Hystrix簡介 ![](https://box.kancloud.cn/3c34a4f64f3e40745b0d7575d5dffbbb_640x225.png) * hystrix對應的中文名字是“豪豬”,豪豬周身長滿了刺,能保護自己不受天敵的傷害,代表了一種防御機制。 * 這與hystrix本身的功能不謀而合,因此Netflix團隊將該框架命名為Hystrix,并使用了對應的卡通形象做作為logo。 * 在一個分布式系統里,許多依賴不可避免的會調用失敗,比如超時、異常等,如何能夠保證在一個依賴出問題的情況下,不會導致整體服務失敗,這個就是Hystrix需要做的事情。 * Hystrix提供了熔斷、隔離、Fallback、cache、監控等功能,能夠在一個、或多個依賴同時出現問題時保證系統依然可用。 ## 代碼示例 1. 在`blade-demo-api`中新建Hystrix類,命名為`BlogClientFallback` ![](https://box.kancloud.cn/004b41fca3902b7041690b4b692a7f9c_373x247.png) 2. 同樣實現`BlogClient`接口,只是此時只需返回對應數據即可,不需要再定義為`Controller` 3. 代碼如下 ~~~ package org.springblade.demo.feign; import org.springblade.core.tool.api.R; import org.springblade.demo.entity.Blog; import java.time.LocalDateTime; public class BlogClientFallback implements BlogClient { @Override public R<Blog> detail(Integer id) { Blog blog = new Blog(); blog.setBlogTitle("Hystrix"); blog.setBlogContent("FallBack Success"); blog.setBlogDate(LocalDateTime.now()); blog.setIsDeleted(0); return R.data(blog); } } ~~~ 4. 修改BlogClient,增加Hystrix配置 ~~~ @FeignClient( //定義Feign指向的service-id value = CommonConstant.APPLICATION_DEMO_NAME, //定義hystrix配置類 fallback = BlogClientFallback.class ) public interface BlogClient { /** * 接口前綴 */ String API_PREFIX = "/api/blog"; /** * 獲取詳情 * * @param id 主鍵 * @return */ @GetMapping(API_PREFIX + "/detail") R<Blog> detail(@RequestParam("id") Integer id); } ~~~ 5. 增加`FallBack`自動配置(**不新建配置,直接在BlogClientFallback類上加@Component注解也可以**) ![](https://box.kancloud.cn/4bd25f430fbd78168159895117418650_1023x442.png) 6. 這時我們去`blade-demo`的`BlogClientImpl`模擬異常 ~~~ @RestController @AllArgsConstructor public class BlogClientImpl implements BlogClient { private BlogService service; @Override @GetMapping(API_PREFIX + "/detail") public R<Blog> detail(Integer id) { int cnt = 100 / 0; return R.data(service.getById(id)); } } ~~~ 7. 使用Postman調用API查看,發現Hystrix配置生效 ![](https://box.kancloud.cn/e56a180715bede960ee6e1ce653d9f1d_656x607.png) ## 結束語 * 開發初探的教程就到這兒了,想必有一些開發經驗的小伙伴會很容易上手,掌握了這些基礎核心,日后勤看文檔,多深入學習,相信大家都能很輕松的完成絕大部分開發任務了。 * 下面一章,讓我們來學習 `開發進階`,會逐步講一些架構級別的知識點或一些高級用法。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看