欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > SpringCloud-Consul

SpringCloud-Consul

2025/11/10 20:55:25 来源:https://blog.csdn.net/qq_39007838/article/details/142907275  浏览:    关键词:SpringCloud-Consul

为什么引入

Consul 简介以及安装

控制台 localhost:8500

服务注册与发现

服务端

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions>
</dependency>
spring:application:name: cloud-payment-servicecloud:consul:host: localhostport: 8500discovery:service-name: ${spring.application.name}
@SpringBootApplication
@MapperScan("org.zhouzhou.cloud.mapper")
@EnableDiscoveryClient // 添加注解
public class Main8001 {public static void main(String[] args) {SpringApplication.run(Main8001.class, args);}
}

客户端

前面步骤相同,但还需要修改一个位置,注入 <font style="color:#DF2A3F;">RedisTemplate</font>的时候,需要添加 <font style="color:#DF2A3F;">@LoadBalance</font>注解,因为如果使用服务名来调用的话,默认会开启负载均衡

@Bean
@LoadBalanced
public RestTemplate restTemplate() {return new RestTemplate();
}

我们修改之前写死的ip

//    private static final String serverURL = "http://localhost:8001";
private static final String serverURL = "http://cloud-payment-service:8001";@GetMapping("/consumer/pay/get/{id}")
public Result<PayDTO> getPayByOrderNo(@PathVariable("id") Integer id) {return restTemplate.getForObject(serverURL + "/pay/get/" + id, Result.class, id);
}

注册中心异同点

服务配置与刷新

<!-- bootstrap -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<!-- consul config -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>

新增配置文件 bootstrap.yml,bootstrap.yml优先加载

配置规范

spring:application:name: cloud-payment-servicecloud:consul:host: localhostport: 8500discovery:service-name: ${spring.application.name}config:profile-separator: '-'format: yaml
@GetMapping("/getInfo")public Result<String> getInfo(@Value("${atguigu.info}") String info) {return Result.success("port: " + port + "\t Info: " + info);}

测试

配置刷新

  1. 主启动类配置 @RefreshScope
  2. 仅为演示,调低演示方便查看效果
spring:cloud:consul:config:watch:wait-time: 1

修改 data,为 version 2,保存

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词