<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                OpenFeign是在客戶端進行負載均衡,所以服務端不需要任何關于OpenFeign的相關依賴。 <br/> 下面演示消費端模塊 cloud-comsumer-feign-order80 通過Feign封裝的接口來調用下面兩個服務端的服務。 ``` cloud-provider-payment8001 cloud-provider-payment8002 ``` <br/> 構建步驟如下: **1. 構建消費端模塊:cloud-comsumer-feign-order80** **2. 在當前模塊的`pom.xml`中添加 openfeign 依賴** ```xml <dependencies> <!-- openfeign不進行負載均衡時,是可以不需要eureka等這類注冊服務的 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> ... </dependencies> ``` **3. 當前模塊的`resources/application.yml`** ```yml server: port: 80 spring: application: name: cloud-comsumer-order main: #允許存在多個同名的feign接口 allow-bean-definition-overriding: true eureka: client: service-url: #將當前模塊注冊到三個注冊中心中 defaultZone: http://www.eureka7001.com:7001/eureka/,http://www.eureka7002.com:7002/eureka/,http://www.eureka7003.com:7003/eureka/ ####openfeign#### ribbon: #建立連接所用的時間,單位ms ReadTimeout: 5000 #建立連接后從服務器讀取到可用資源所用的時間,單位ms ConnectTimeout: 5000 #要訪問的微服務名,就是服務端 spring.application.name 的配置 provider: payment: name: cloud-payment-service ``` **4. 在當前模塊封裝Feign接口** ```java /** * value: 要調用的微服務名,服務端 spring.application.name 配置。 */ @Component @FeignClient(value = "${provider.payment.name}") public interface PaymentFeignService { /** * 注意:在接口這個地方,openfeign方法編寫規則如下: * 1. 只能有一個注解@RequestBody標注的實體參數(即只允許有一個實體參數) * 但可以有無數個@RequestParam,或者@PathVariable標注的參數。 * 2. 使用注解@RequestParam,或者@PathVariable時必須指定name屬性。 * 3. 方法返回值要與服務端的返回值一樣,即使是返回值的父類也不可以。 */ @RequestMapping(value = "/payment/name", method = RequestMethod.GET) String getName(@RequestParam("name") String name); } ``` **5. 在當前模塊的啟動類上添加注解`@EnableFeignClients`** ```java @SpringBootApplication @EnableFeignClients public class OrderFeignMain80 { public static void main(String[] args) { SpringApplication.run(OrderFeignMain80.class,args); } } ``` **6. 在當前模塊調用封裝的Feign接口訪問服務** ```java @RestController @RequestMapping("/order") public class OrderFeignController { @Autowired private PaymentFeignService paymentFeignService; @GetMapping("/name") public String getName(@RequestParam("name") String name) { return paymentFeignService.getName(name); } } ``` **7. 驗證效果** (1)啟動三個Eureka注冊中心。 ``` cloud-eureka-server7001 cloud-eureka-server7002 cloud-eureka-server7003 ``` (2)啟動2個服務端。 ``` cloud-provider-payment8001 cloud-provider-payment8002 ``` (3)啟動當前模塊。 ``` cloud-comsumer-feign-order80 ``` 不斷刷新當前模塊的地址 http://localhost:80/order/name?name=zhangsan ,其效果是消費端按照<mark>輪詢</mark>的方式調用兩個服務端。 ![](https://img.kancloud.cn/f6/42/f64236869dbec1c9a8eb480b1ebd38cf_1207x172.gif)
                  <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>

                              哎呀哎呀视频在线观看