当前位置: 首页 > news >正文

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,保存

http://www.lryc.cn/news/459845.html

相关文章:

  • nginx搭建负载均衡
  • 灵当CRM data/pdf.php 任意文件读取漏洞复现
  • Python 批量转换 Shapefile 为 GeoJSON
  • 软考《信息系统运行管理员》- 4.1信息系统软件运维概述
  • Leetcode 3319. K-th Largest Perfect Subtree Size in Binary Tree
  • 从秒级到小时级:TikTok等发布首篇面向长视频理解的多模态大语言模型全面综述
  • 【CTF】敏感信息泄露 GIT SVN VIM
  • EMQX服务器的搭建,实现本地机和虚拟机之间的MQTT通信(详细教程)
  • cordova的使用
  • 三种Transformer模型中的注意力机制介绍及Pytorch实现:从自注意力到因果自注意力
  • 《使用Gin框架构建分布式应用》阅读笔记:p20-p31
  • 如何修改MacOS的终端的配色和linux一样
  • 基于百度智能体开发爱情三十六计
  • 计算机网络:计算机网络概述 —— 描述计算机网络的参数
  • Windows 11系统选项卡详解:从新手到专家的操作指南
  • 乐鑫ESP32-S3无线方案,AI大模型中控屏智能升级,提升智能家居用户体验
  • postman变量,断言,参数化
  • Nginx实战指南:基础知识、配置详解及最佳实践全攻略
  • 百度搜索引擎(SEO)优化师的未来将何去何从?
  • 如何在UE5中创建加载屏幕(开场动画)?
  • 【WebGIS】Cesium:地形加载
  • 前端程序员策略:使用框架还是纯JavaScript?
  • npm 配置淘宝镜像
  • C++ include头文件的顺序以及双引号““和尖括号<>的区别
  • Flutter鸿蒙版本灵活使用方法间的回调处理复杂化的逻辑
  • 视频号直播自动回复与循环发送话术-自动化插件
  • springcloud之服务集群注册与发现 Eureka
  • C++:模拟实现list
  • 解锁5 大无水印热门短视频素材库
  • 【电商购物管理系统】Python+Django网页界面平台+商品管理+数据库