linux下安裝
1.下載下傳
wget https://releases.hashicorp.com/consul/1.7.3/consul_1.7.3_linux_amd64.zip
2.解壓
unzip consul_1.7.3_linux_amd64.zip
3.移動到全局變量
mv consul /usr/local/bin/consul
4.檢視
consul --version
5.啟動(使用開發模式啟動)
1)consul agent -dev //localhost通路
2)consul agent -dev -client 0.0.0.0 -ui //IP通路
6.通路
netstat -nptl //檢視端口8500
ps -ef|grep consul //檢視程序編号
kill -15 程序号 //殺死程序
windows下
下載下傳完解壓就可以看到consul.exe了
輕按兩下運作。進入指令行視窗
檢視版本 consul --version
開發者模式啟動 consul agent -dev
通路 http;//localhost:8500
提供者 cs-provider-payment8004
1.pom修改
<dependencies>
<!-- consul -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<!--公共子產品:通用工具包-->
<dependency>
<groupId>cn.chen.demo</groupId>
<artifactId>api-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2.yml
server:
port: 8004
spring:
application:
name: consul-provider-payment
cloud:
consul:
host: localhost
port: 8500
discovery:
service-name: ${spring.application.name}
3.主啟動
package cn.chen;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* @version demo2020-1.0
* @Title: CsPaymentApplication
* @Description:
* @Company:
* @package: cn.chen
* @author: chenlf
* @date: 2020/6/2
*/
@SpringBootApplication
@EnableDiscoveryClient
public class CsPaymentApplication {
public static void main(String[] args) {
SpringApplication.run(CsPaymentApplication.class,args);
}
}
4.業務類
package cn.chen.web;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.UUID;
/**
* @version demo2020-1.0
* @Title: PaymentController
* @Description:
* @Company:
* @package: cn.chen.web
* @author: chenlf
* @date: 2020/6/2
*/
@RestController
@RequestMapping("/payment")
public class PaymentController {
@Value("${server.port}")
private String serverPort;
@GetMapping(value = "/consul")
public String paymentConsul(){
return "consul port: "+serverPort+"\t"+ UUID.randomUUID().toString();
}
}
消費者
1.建立module:cs-consumer-order80
2.pom.xml修改
<dependencies>
<!-- consul -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<!--公共子產品:通用工具包-->
<dependency>
<groupId>cn.chen.demo</groupId>
<artifactId>api-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
3.yml
server:
port: 80
spring:
application:
name: consul-consumer-order
cloud:
consul:
host: localhost
port: 8500
discovery:
service-name: ${spring.application.name}
cs:
server:
url: http://consul-provider-payment
4.主啟動
package cn.chen;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* @version demo2020-1.0
* @Title: CsOrderApplication
* @Description:
* @Company:
* @package: cn.chen
* @author: chenlf
* @date: 2020/6/2
*/
@SpringBootApplication
@EnableDiscoveryClient
public class CsOrderApplication {
public static void main(String[] args) {
SpringApplication.run(CsOrderApplication.class,args);
}
}
5.業務類
package cn.chen.web;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
/**
* @version demo2020-1.0
* @Title: OrderController
* @Description:
* @Company:
* @package: cn.chen.web
* @author: chenlf
* @date: 2020/6/2
*/
@RestController
public class OrderController {
@Value("${cs.server.url}")
private String csUrl;
@Resource
private RestTemplate restTemplate;
@GetMapping("/consumer/payment/consul")
public String payment() {
String result = restTemplate.getForObject(csUrl + "/payment/consul", String.class);
return result;
}
}
springcloud學習系列目錄