日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3.spring cloud + zookeeper注册中心 + Feign调用案例

發布時間:2024/9/27 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.spring cloud + zookeeper注册中心 + Feign调用案例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

3.spring cloud + zookeeper注冊中心 + Feign調用案例

3.1.pom.xml定義

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.7.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.xxx.xxxxxxx</groupId><artifactId>feign-test</artifactId><version>3.7.1</version><name>feign-test</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><spring-cloud.version>Finchley.SR2</spring-cloud.version><zookeeper.version>3.4.6</zookeeper.version><curator.version>4.0.0</curator.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zookeeper-discovery</artifactId><!--<version>2.2.0.RELEASE</version>--></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><!--<version>2.2.1.RELEASE</version>--></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>${curator.version}</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>${curator.version}</version></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>${zookeeper.version}</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.8</version><!--<scope>provided</scope>--></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url></repository><repository><id>mvnrepository</id><name>mvnrepository</name><url>https://mvnrepository.com/artifact/</url></repository><repository><id>maven</id><name>maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></repository></repositories> </project>

3.1.1.resources中定義application.yml

server:port: 9988spring:application:name: feign-testcloud:zookeeper:connect-string: xxx-test2.dg.xxx:2181discovery:register: trueenabled: trueinstance-id: 1root: /xxxxx/dist/services

3.1.2.啟動類編寫

package com.xxx;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients;@SpringBootApplication @EnableDiscoveryClient @EnableFeignClients public class FeignTestMain {private static final Logger LOG = LoggerFactory.getLogger(FeignTestMain.class);public static void main(String[] args) {LOG.info("starting collector ......"); // new SpringApplicationBuilder().sources(FeignTestMain.class).run(args);SpringApplication.run(FeignTestMain.class,args);}}

3.1.3.編寫Feign的接口(調用別的工程時)

package com.xxx.xxxxxxx.collector.client;import com.xxx.xxxxxxx.collector.domain.HttpResult; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam;/*** @author tuzuoquan* @date 2021/8/31 18:46*/ @FeignClient("zk-collector-provider") public interface CollectorApi {@PostMapping("/api/v1/collector/alarm/meta/job/{jobId}/init")HttpResult<String> initAlarmMeta(@PathVariable(name = "jobId") String jobId,@RequestParam String userId);}

3.1.4.編寫Controller

package com.xxx.xxxxxxx.collector.controller;import com.xxx.xxxxxxx.collector.client.CollectorApi; import com.xxx.xxxxxxx.collector.domain.HttpResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;@RestController @RequestMapping("/test") public class TestController {private static final Logger LOG = LoggerFactory.getLogger(TestController.class);@AutowiredCollectorApi collectorApi;@GetMapping("/welcome")public String welcome(String jobId, String userId) {LOG.info("collectorApi.initAlarmMeta start ..... ");HttpResult<String> result = collectorApi.initAlarmMeta(jobId, userId);LOG.info("collectorApi.initAlarmMeta end ..... ");return "code:" + result.getCode() + ", msg:" + result.getMsg();}}

3.1.5.編寫HttpResult

package com.xxx.xxxxxxx.collector.domain;import lombok.AllArgsConstructor; import lombok.Data;@Data @AllArgsConstructor public class HttpResult<T> {private int code;private String msg;private T result;public boolean isSuccess(){return code == 200;}public static <T> HttpResult<T> success(T data){return new HttpResult<>(200, null, data);} }

3.1.6.啟動時使用外部配置application.yml,命令:

java -jar feign-test-3.7.1.jar --spring.config.location=application.yml

后臺靜默執行方式:

nohup java -jar feign-test-3.7.1.jar --spring.config.location=application.yml > feign-test.log 2>&1 &

3.1.7.使用curl做請求

Get 請求案例

curl -X GET 'http://127.0.0.1:9988/test/welcome?jobId=10252&userId=admin.mammut@163.com'

Post請求案例

curl -H "Content-Type:application/json" -X POST --data '{"monitorDBUrl":"xxx-tsdb0.dg.xxx:8091","type":0}' http://xxxxx-dev.bdms.xxx.com/web/v2/xxx/bootstrap/item/cluster/monitor/config?isDevelop=true

總結

以上是生活随笔為你收集整理的3.spring cloud + zookeeper注册中心 + Feign调用案例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。