一、下载部署consul
1. docker部署consul2.官网下载 二、SpringCloud向consul中注册服务
1.引入库2.完整pom文件内容3.yml相关配置4.使用@EnableDiscoveryClient注解声明main方法5.RestTemplate配置6.测试方法1.运行截图 总结
一、下载部署consul 1. docker部署consul- 部署命令
docker run -d --name consul -p 8500:8500 consul查看是否部署成功,查询consul版本
docker exec -it consul consul -version
软件安装包下载
二、SpringCloud向consul中注册服务 1.引入库
org.springframework.cloud
spring-cloud-starter-consul-discovery
org.springframework.boot
spring-boot-starter-actuator
2.完整pom文件内容
3.yml相关配置4.0.0 org.springframework.boot spring-boot-starter-parent 2.6.5 com.example consul-servant2020 0.0.1-SNAPSHOT consul-servant2020 Demo project for Spring Boot 1.8 2021.0.1 org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-consul-discovery org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-devtools runtime true org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-maven-plugin org.projectlombok lombok
server:
port: 2021
spring:
application:
name: consul-consumer2021
#consul注册中心地址
cloud:
consul:
host: 192.168.87.128
port: 8500
discovery:
service-name: ${spring.application.name}
prefer-ip-address: true # 表示注册时使用IP而不是hostname
4.使用@EnableDiscoveryClient注解声明main方法
@SpringBootApplication
@EnableDiscoveryClient
public class ConsulServant2020Application {
public static void main(String[] args) {
SpringApplication.run(ConsulServant2020Application.class, args);
}
}
5.RestTemplate配置
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
}
6.测试方法
@RestController
@RequestMapping("consulServantController")
public class ConsulServantController {
@Value("${server.port}")
String port;
@Resource
private RestTemplate restTemplate;
@RequestMapping("sendMessage")
public String sendMessage(){
return port + ":" + UUID.randomUUID();
}
private static final String INVOKE_URL = "http://consul-consumer2021";
@GetMapping(value = "getMessage")
public String getMessage() {
return restTemplate.getForObject(INVOKE_URL + "/consulConsumerController/sendMessage", String.class);
}
}
1.运行截图
- 运行项目查询consul的UI界面
consul-servant2020服务调用consul-consumer2021中方法
- 引入jar包配置consul服务调用方法
项目地址



