使用Consul服务注册和发现

news/2024/9/28 23:26:50

2.1服务注册

2.1.1引入依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

2.1.2编写配置文件

server:port: 80
spring:application:name: cloud-consumer-servicecloud:consul:host: localhostport: 8500discovery:service-name: ${spring.application.name}

2.1.3 启动类增加注解

@SpringBootApplication
@EnableDiscoveryClient // 服务注册
@RefreshScope
public class Main8001 {public static void main(String[] args) {SpringApplication.run(Main8001.class,args);}
}

2.1.4启动服务,查看服务是否正常


2.2服务使用

2.2.1引入依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

2.2.2 调用服务

我们这里基于RestTemplate来调用服务

private static final String PRE_SERVER = "http://cloud-payment-service";

完整Controller

@RestController
@RequestMapping("/consumer/pay")
@Tag(name = "订单模块", description = "订单相关接口")
public class ConsumerController {@Resourceprivate RestTemplate restTemplate;private static final String PRE_SERVER = "http://cloud-payment-service";@Operation(summary = "新增支付订单信息")@PostMappingpublic ResponseResult saveOrder(@RequestBody PayDTO payDTO){return restTemplate.postForObject(PRE_SERVER+"/pay",payDTO,ResponseResult.class);}@GetMapping("/{id}")@Operation(summary = "根据ID查询订单信息")public ResponseResult getOrderById(@PathVariable Integer id){return restTemplate.getForObject(PRE_SERVER + "/pay/" + id, ResponseResult.class, id);}@DeleteMapping("/{id}")@Operation(summary = "删除订单信息")public ResponseResult deleteOrderById(@PathVariable Integer id){restTemplate.delete(PRE_SERVER+"/pay/" +id);return ResponseResult.success();}@PutMapping@Operation(summary = "更新订单信息")public ResponseResult updateOrderById(@RequestBody PayDTO payDTO){restTemplate.put(PRE_SERVER + "/pay", payDTO);return ResponseResult.success();}
}

2.2.3 增加配置文件

@Configuration
public class RestConfig {@Bean@LoadBalanced  // 负载均衡一定要添加public RestTemplate restTemplate(){return new RestTemplate();}
}

2.2.4 测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/30164.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

在win10右下角显示时间秒

1、首先按组合键“win+r”打开运行窗口,在窗口中输入regedit,按回车键进入注册表编辑器或者按组合键“win+x”在PowerShell中执行命令regedit(效果相同)进入注册表编辑器之后依次找到:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersio\Explorer\Advanced,新建D…

Consul安装

1.1 Win安装选择我们想要下载的版本点击下载,如果芯片是AMD选择右边下载。 解压下载的文件进入解压之后的文件查看是否成功安装consul agent -dev -dev表示开发模式运行,另外还有-server表示服务模式运行前端查看:1.2 CentOS安装 1.查看系统芯片架构: arch2.安装解压工具un…

图机器学习入门:基本概念介绍

图机器学习(Graph Machine Learning,简称Graph ML)是机器学习的一个分支,专注于利用图形结构的数据。在图形结构中,数据以图的形式表示,其中的节点(或顶点)表示实体,边(或链接)表示实体之间的关系。 本篇文章将从基础开始介绍什么是图,我们如何描述和表示它们,以及…

得物 ZooKeeper SLA 也可以 99.99%

在本文中,作者探讨了ZooKeeper(ZK)的一个内存占用问题,特别是当有大量的Watcher和ZNode时,导致的内存消耗。1. 背景 ZooKeeper(ZK)是一个诞生于 2007 年的分布式应用程序协调服务。尽管出于一些特殊的历史原因,许多业务场景仍然不得不依赖它。比如,Kafka、任务调度等。…

祝贺!触想获评第二十一届“深圳知名品牌”

5月9日,第八届“深圳(湾区)国际品牌周”活动盛大开幕,会上公布并表彰了一批具有高创新力和竞争力的品牌名单。作为工控物联领域优秀品牌代表,触想智能与各级政府领导、国内外品牌界权威专家、知名企业领袖和企业代表同台共庆,并收获“深圳知名品牌”、“湾区知名品牌”两项…

工作疑难问题解决4例

记录一下工作上疑难问题解决:一,方便的页面监控 前几天早上,负责的kettle抽取数据表的任务又报错了,早上看手机有4个未接报警电话,一看是人员表,原来昨天报表系统有个大的查询一直未查询完成,导致truncate这个人员表,无法活动meta的锁,后续执行抽取和计算的都报错。为…

如何批量删除多个不同路径的文件但又保留文件夹呢

首先,需要用到的这个工具:度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z1、我准备了三个文件夹(实际操作的时候可能是上百个文件夹,无所谓),里面都放了两个图片2、然后打开工具,使用文件批量复制的模块,勾选“复制时先清空…”的选项,注意,第一栏“要复制的文件和文件夹…

Java异常处理的最佳实践

本文是关于 Exception 处理的一篇不错的文章,从 Java Exception 的概念介绍起,依次讲解了 Exception 的类型(Checked/Unchecked),Exception 处理的最佳实现: 选择 Checked 还是 Unchecked 的几个经典依据 Exception 的封装问题 如无必要不要创建自己的 Exception 不要用 Ex…