首页 > 其他分享 >使用Consul服务注册和发现

使用Consul服务注册和发现

时间:2024-05-11 12:52:05浏览次数:14  
标签:PRE 服务 Consul ResponseResult id 注册 SERVER public cloud

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-service
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        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 {
    @Resource
    private RestTemplate restTemplate;

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

    @Operation(summary = "新增支付订单信息")
    @PostMapping
    public 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 测试

标签:PRE,服务,Consul,ResponseResult,id,注册,SERVER,public,cloud
From: https://www.cnblogs.com/wyzstudy/p/18186281

相关文章

  • Consul安装
    1.1Win安装选择我们想要下载的版本点击下载,如果芯片是AMD选择右边下载。解压下载的文件进入解压之后的文件查看是否成功安装consulagent-dev-dev表示开发模式运行,另外还有-server表示服务模式运行前端查看:1.2CentOS安装1.查看系统芯片架构:arch2.安装解压......
  • RustDesk 自建服务器部署和使用教程
    RustDesk是一个强大的开源远程桌面软件,是中国开发者的作品,它使用Rust编程语言构建,提供安全、高效、跨平台的远程访问体验。可以说是目前全球最火的开源远程桌面软件了,GitHub星星数量达到了惊人的64k!与TeamViewer、ToDesk等专有远程访问解决方案相比,RustDesk作为一个开源......
  • 通过内网穿透实现外网访问苍穹服务
    目录内网穿透使用教程外网访问苍穹服务内网穿透个人使用的内网穿透工具是OpenFrp使用教程注册网站进入主页后点击创建隧道,选一个能用的节点,填写具体参数。除了图中的参数外,其他参数随机或者留空就行。如图,我的苍穹服务地址是127.0.0.1,端口是8080在个人中心进行实名......
  • 中电金信:谋“新”重“质” —— 能碳数字化服务平台
    近日,中电金信园区(企业)能碳数字化服务平台解决方案以其创新性和实效性在参选的60家答辩入围企业中脱颖而出,成功入选湖南省工业和信息化厅《2024年湖南省数字化碳管理优秀解决方案名单》,这是对中电金信能碳数字化专业能力的重要认可,也是中电金信培育和发展新质生产力,谋“新”重“质......
  • 在Linux中,如何设计一个高性能的Web服务器?
    设计一个高性能的Web服务器需要考虑多个方面,包括硬件选择、操作系统优化、Web服务器软件配置、数据库优化、以及使用负载均衡和缓存策略等。以下是一些设计高性能Web服务器的步骤和建议:1.硬件选择CPU:选择快速的多核处理器,以便处理大量的并发请求。内存:足够的内存可以提高处理......
  • 如何在AlmaLinux服务器中安装 VirtualBox 7.0
    https://www.a5idc.net/helpview_1331.html目前由Oracle拥有和维护的OracleVMVirtualBox是世界上最受欢迎的开源虚拟化平台,它使用户能够从底层计算机硬件创建虚拟机。VirtualBox是第2类管理程序,这意味着它安装在现有操作系统(如Windows或Linux)之上,以创建模拟CPU、RAM......
  • 通过tftp或SSH中scp命令在linux服务器和linux开发板之间传输文件
    V1.02024年5月11日发布于博客园目录传送文件tftp协议★SSH协议scp命令SSH在Linux中连接另一个Linux配置开发板初始配置网络配置DNS文件配置脚本文件参考文档传送文件tftp协议#从电脑的TFTP主目录传送文件(比如a.txt)到开发板参数-g获取-r指定文件名tftp-g<......
  • 一三云服务器配置教程:要开放哪些端口?如何设置宝塔端口更安全?
    布署宝塔面板云服务器需要开放哪些端口?1、以一三云服务器为例,如需完整使用宝塔的所有功能,需要放行如下防火墙规则:20/21————–(FTP主动模式端口)39000-40000——(FTP被动模式-Linux 系统)3000-4000———(FTP被动模式– Windows系统)22——————(SSH远程登录)80—————(网站)4......
  • 一三云服务器宝塔面板FTP上传需要开放哪些端口
    在服务器的配置和维护中,FTP(文件传输协议)是一个常见的协议,用于在客户端和服务器之间传输文件。当涉及到FTP上传时,确保正确的端口已经开放是至关重要的。本文将详细讨论在FTP上传过程中需要开放的端口,并解释这些端口的作用和配置方法。首先,FTP主要使用两个类型的端口:控制连接端口和......
  • Windows防火墙的注册表清理 ,可能需要清理的与Windows防火墙相关的注册表项及其路径:
    针对Windows防火墙的注册表清理的底层原理涉及到Windows操作系统中的注册表和防火墙配置:注册表:Windows操作系统中的注册表是一个重要的系统数据库,用于存储系统和应用程序的配置信息。在注册表中,包含了各种设置和选项,包括网络和防火墙配置。Windows防火墙:Windows操作系统......