1.下载安装consul
下载地址: https://www.consul.io/downloads 解压安装...
附:https://blog.youkuaiyun.com/a312586670/article/details/105337943 一篇比较好的博客(个人感觉)
2.我用的是dev参数启动的:
附脚本: ./consul agent -dev # ( start.sh )
3.建项目
生产者:
yml:
server:
port: 8006
spring:
application:
name: consul-payment-service8006
cloud:
consul:
discovery:
service-name: ${spring.application.name}
host: 127.0.0.1
port: 8500
pom:
<dependencies>
<!-- consul -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<!-- common -->
<dependency>
<groupId>org.example</groupId>
<artifactId>common</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
启动类:
@RestController
@Slf4j
public class ConsulController {
@Value("${server.port}")
private String servicePort;
@RequestMapping(value = "/payment/consul")
public String payment(){
//http://localhost:8006/payment/consul
return servicePort + UUID.randomUUID().toString();
}
}
消费者:
yml:
server:
port: 8081
spring:
application:
name: consul-order-service8081
cloud:
consul:
discovery:
service-name: ${spring.application.name}
instance-id: ${spring.application.name}:${server.port}
host: 127.0.0.1
port: 8500
pom:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<!-- common -->
<dependency>
<groupId>org.example</groupId>
<artifactId>common</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
主启动类:
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
@EnableDiscoveryClient
public class Application8081 {
public static void main(String[] args) {
SpringApplication.run(Application8081.class, args);
}
}
consul 小demo: