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调用案例相关推荐
- spring boot + zookeeper 注册中心
依赖配置 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-b ...
- Spring Cloud -Eureka 注册中心配置
Spring Cloud简介 1.简介 Spring Cloud是Spring旗下的项目之一,官网地址:http://projects.spring.io/spring-cloud/ Spring最擅 ...
- Spring Cloud 服务注册中心Eureka
Eureka介绍 在Spring Cloud Netflix 整合技术栈中,Eureka既可以作为服务注册中心也可以用于服务发现对整个微服务架构起着最核心的整合作用. Eureka是基于REST(Re ...
- Spring Cloud的注册中心和服务者,消费者的构建
注册中心Eureka: 新建项目stu-eureka: StuEurekaApplication: package com.demo.stueureka;import org.springframew ...
- Spring cloud nacos注册中心 seata分布式事务
准备环境的软件 seata 官网地址为 Seata 是什么 基本介绍 ,一下是一些大企业在使用 下载资源 GitHub - seata/seata: Seata is an easy-to-use, ...
- 【065】Spring Cloud服务注册中心双节点集群,使用Eureka实现,以IP方式配置,基于Spring Cloud的Camden SR5版本
Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现.Eureka 采用了 C-S 的设计架构.Eureka Server 作为服务注册功能的服务器,它 ...
- Spring Cloud ---02-- Eureka注册中心
Eureka 注册中心 作用:服务注册和发现 提供者(Provider) 向注册中心注册自己的地址 消费者(Consumer) 从注册中心发现其他服务 eureka的运行机制 注册 - 一次次反复连接 ...
- 什么是Vant? Spring Cloud Nacos注册中心
文章目录 Vant 什么是Vant Vant的优势 Vant特性 第一个Vant程序 创建Vue项目 添加\安装Vant支持 添加Vant引用 按钮组件 表单页面 area省市区选择 商品列表 服务器 ...
- spring cloud Euraka注册中心实例Dalston
1.介绍:注册中心eureka是spring cloud微服务架构的基石,所有服务比如网关.配置中心等等都需要依赖于网关服务.当然你也可以使用zokkeeper来替代.两者最主要区别是zk有leade ...
最新文章
- 程序员被质疑跳槽频繁不稳定,随后的一番话令HR哑口无言!
- PHP 简单的数字过滤函数
- 包含 PHP和nginx的镜像 supervisord.conf Dockerfile 案例
- flutter系列InheritedWidget介绍
- 通过Athens搭建go私服
- 配置多个git账号_docker随手笔记第七节 jenkins通过git部署java微服务插件安装
- 版本控制软件Visual Source safe使用小结 (配合上文)
- 针对于lvs分发mysql的监控
- Java面试知识点(零)Java零碎知识点
- Can't create pdf file with font calibri bold 错误解决方案
- 2018C语言自考答案,2018年中考语文试题解析
- 递归合并PDF按文件夹和文件名生成目录
- DELPHI窗体属性介绍
- 域策略设置计算机睡眠,win10专业版中如何使用组策略跳过从睡眠中恢复的密码提示...
- oracle统计日均,oracle效率优化实战——计算3个月的平均值
- Linux 服务器一键测速脚本工具:GreenBench
- Kotlin使用泛型搭建一个MVP最简单实例
- java quartz 动态执行,浅谈SpringBoot集成Quartz动态定时任务
- Android-MianShi
- Android png转vector svg 图片
热门文章
- centos7.2 mysql集群_Centos7.2下安装mysql-group-replication数据库集群
- 前端基础之JavaScript_1(一)
- LeetCode最大子序和 (动态规划)python
- VTK:Kochanek样条用法实战
- OpenCASCADE: CMake 工具构建OCCT
- wxWidgets:wxListBox类用法
- wxWidgets:日期和时间
- boost::system::system_error相关的测试程序
- boost::remove相关的测试程序
- boost::hana::metafunction用法的测试程序